Optimization and parallelization of Emedge3D on shared memory architecture - Ecole Nationale du Génie de l'Eau et de l'Environnement de Strasbourg Accéder directement au contenu
Communication Dans Un Congrès Année : 2013

Optimization and parallelization of Emedge3D on shared memory architecture

Résumé

This report presents a study of techniques used to speedup a scientific simulation code. The techniques include sequential optimizations as well as the parallelization with OpenMP. This work is carried out on two different multicore shared memory architectures, namely a cutting edge 8x8 core CPU and a more common 2x6 core board. Our target application is representative of many memory bound codes, and the techniques we present show how to overcome the burden of the memory bandwidth limit, which is quickly reached on multi-core or many-core with shared memory architectures. To achieve efficient speedups, strategies are applied to lower the computation costs, and to maximize the use of processors caches. Optimizations are: minimizing memory accesses, simplifying and reordering computations, and tiling loops. On 12 cores processor Intel X5675, aggregation of these optimizations results in an execution time 21.6 faster, compared to the original version on one core.
Ce rapport présente des stratégies pour la réduction du temps d'exécution d'un code de simulation numérique. Ces stratégies interviennent autant au niveau optimisation séquentielle qu'au niveau de la parallélisation OpenMP. Cette étude a été menée sur deux architectures à mémoire partagée : une carte à la pointe de la technologie comprenant 8x8 coeurs et une autre plus commune intégrant un processeur de 2x6 coeurs. Comme pour beaucoup d'applications du même type, les performances de la parallélisation du code numérique cible sont limitées par la bande passante mémoire. Les techniques que nous présentons dans ce document montrent comment contourner cette limitation. Afin d'obtenir des accélérations efficaces, différentes stratégies sont mises en oeuvre au niveau des calculs, mais aussi au niveau de l'accès aux données. Les optimisations en question sont la minimisation du nombre d'accès à la mémoire, la simplification et le ré-ordonnancement des calculs et le tiling pour maximiser l'utilisation des caches mémoire. Sur le processeur Intel X5675 (12 coeurs), l'accumulation de ces optimisations et la parallélisation permet d'obtenir un code 21.6 fois plus rapide par rapport à la version initiale sur un seul coeur.
Fichier principal
Vignette du fichier
RR-8336.pdf (474.69 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-00848869 , version 1 (29-07-2013)

Identifiants

Citer

Matthieu Kuhn, Guillaume Latu, Stéphane Genaud, Nicolas Crouseilles. Optimization and parallelization of Emedge3D on shared memory architecture. IEEE, Sep 2013, timisoara, Romania. pp.503-510, ⟨10.1109/SYNASC2013.72⟩. ⟨hal-00848869⟩
347 Consultations
390 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More