VtkSMP: Task-based Parallel Operators for Accelerating VTK Filters
Abstract
NUMA nodes are potentially powerful but taking benefit of their capabilities is challenging due to their architecture (multiple computing cores, advanced memory hierarchy). They are nonetheless one of the key components to enable processing the ever growing amount of data produced by scientific simulations.
In this paper we study the parallelization of patterns commonly used in VTK algorithms and propose a new multi-threaded plugin for VTK that eases the development of parallel multi-core VTK filters. We specifically focus on task-based approaches and show that with a limited code refactoring effort we can take advantage of NUMA node capabilities. We experiment our patterns on a transform filter, base isosurface extraction filter and a min/max tree accelerated isosurface extraction. We support 3 programming environ- ments, OpenMP, Intel TBB and X-KAAPI, and propose different algorithmic refinements according to the capabilities of the target environment. Results show that we can speed execution up to 30 times on a 48-core machine.
Les architectures NUMA multicœurs sont potentiellement très puissantes, mais les exploiter pleinement reste difficile étant donné leur complexité (grand nombre de cœurs, hiérarchie mémoire profonde). Un usage efficace des ces ressources est cependant impératif pour pouvoir traiter la masse toujours plus importante de données produites par les simulations numériques.
Dans ce papier, nous étudions les différentes environnements de parallélisation qui ont été développés en visualisation scientifique, et tout particulièrement autour de la plateforme VTK. En complément des solutions existantes nous proposons une approche s’appuyant sur la programmation par tâches et le mécanisme d’équilibrage de charge par vol de tâches pour la parallélisation de filtres VTK. Nous expérimentons plusieurs schémas sur les filtres de transformation locale, d’extraction d’iso-surface directe et d’une version optimisée reposant sur une structure accélératrice arborescente de type min/max. Nous évaluons les performances avec 3 environnements, OpenMP, Intel TBB et X-KAAPI. Les résultats mon- trent que l’on peut obtenir des accélérations significatives sur une machine à 48 cœurs.
Origin | Files produced by the author(s) |
---|
Loading...