VtkSMP: Task-based Parallel Operators for VTK Filters
Abstract
Scientific simulations produce more and more memory consuming datasets. The required processing resources need to keep pace with this increase. Though parallel visualization algorithms with strong performance gains have been developed, there is a need for a parallel programming environment tailored for scientific visualization algorithms that would help application programmers move to multi-core programming. Facing the challenge of genericity, standard solutions like Pthreads, MPI, OpenCL or OpenMP often fail to offer environments that are both easy to handle and lead to efficient executions. In this paper, we study the parallelization of patterns commonly used in VTK algorithms and propose a new multi-threaded plugin for VTK that ease development of parallel algorithms. Focusing on code reusability, we provide tools that implements these patterns in a generic way. With little code modification, we experiment these patterns with a transform filter, brute force isosurface extraction filter and a min/max tree accelerated isosurface extraction. Results show that we can speed execution up to 30 times on a 48-core machine.
De nos jours, les simulations scientifiques produisent des jeux de données de plus en plus volumineux. Leur traitement nécessite donc des ressources adaptées. Et même si des algorithmes de visualisation des données fournissent de très bonnes performances en parallèle, une uniformisation de ces travaux reste nécessaire. Un environnement de programmation parallèle adapté à la visualisation scientifique aiderait les progammeurs à passer à une écriture d'applications à destination des architectures multi-cœurs. Dans un contexte où une approche générique serait un atout, les solutions standard telles que Pthreads, MPI, OpenMP ou encore OpenCL réunissent rarement la facilité d'utilisation et les performances facilement accessibles. Dans ce papier, nous étudions la parallélisation de schémas d'accès aux données présent dans la bibliothèque de visualisation scientifique VTK. Nous proposons un nouveau module pour VTK qui facilite l'écriture d'algorithmes parallèles. Ciblant la réutilisation du code existant, nous proposons des outils génériques qui implémentent ces schémas en parallèle. Suite à de faibles modification de leur code, nous avons étudié nos outils sur un filtre transform, une extraction d'isosurface simple et une accélérée par un arbre de recherche min/max. Nos résultats montrent qu'une accélération d'un facteur 30 est obtenu sur une machine possédant 48 cœurs.
Origin | Files produced by the author(s) |
---|