Parallélisation autour de la méthode des stencils 1 Description de la
Transcription
Parallélisation autour de la méthode des stencils 1 Description de la
MMIS 3A Calcul sur GPU Grenoble INP Parallélisation autour de la méthode des stencils L’objectif de ce projet est de développer en parallèle un outils de simulation numérique qui utilise la méthode des stencils. Il est ensuite demander de d’optimiser son exécution pour un problème donné. Le travail peut-être réalisé en binôme. 1 Description de la méthode Afin d’illustrer la méthode, nous allons considérer un problème classique de simulation numérique qui est la résolution de l’équation de la chaleur par la méthode des différences finies. L’équation de la chaleur modélise l’évolution de la chaleur dans une région donnée au cours du temps. Soient (t, x), la chaleur en un point x ∈ Ω ⊂ Rd , où d est la dimension de l’espace et 0 (x) = (0, x) la distribution initiale de la chaleur. Le modèle le plus simple décrit une diffusion homogène au cours du temps de la chaleur ∂(t, x) ∂t = κ∇2 (t, x) avec κ le coefficient de diffusivité thermique. Soit une grille cartésienne dans Rd , d ∈ {1, 2, 3} telle que dans chaque direction, le découpage de la grille soit défini par les points , ∈ J1, n K si d = 1, ( , yj ), (, j) ∈ J0, n K × J0, ny K si d = 2, et ( , yj , zk ), (, j, k) ∈ J0, n K × J0, ny K × J0, nz K si d = 3. Afin de simplifier les notations, on considèrera dans la suite un domaine carré Ω ∈ [0, 1] d . Pour les grilles rectangulaires, il suffit de multiplier la direction concernée par un scalaire. On note le contour de Ω et T > 0 un temps de simulation positif. En dimension 2, on a x = (x, y). Ainsi, l’équation de la chaleur s’écrit 2 ∂ ∂2 ∂ −κ + =0 , x ∈ Ω, t ∈ (0, T] ∂t ∂2 ∂y 2 (1) (0, x) = 0 (, y) , x ∈ Ω (t, x) = Ψ(t, x) , x ∈ , t ∈ (0, T] avec 0 et Ψ des fonctions suffisamment régulières. On considère une discrétisation uniforme du domaine Ω. Soit d et dy les pas de discrétisations des directions et y et dt le pas de discrétisation en temps. On note Ωd,dy = {( , yj ) ∈ Ω| = d, yj = jdy}. L’équation discrétisée s’écrit k+1 − k,j ,j dt −κ k+1 k+1 + k+1 +1,j − 2,j −1,j d2 + k+1 k+1 + k+1 ,j+1 − 2,j ,j−1 dy 2 ! =0 (2) L’approximation donnée par l’équation 2 fait parti des calculs par stencils. Afin de calculer en un point (k + 1, , j) à l’itération n + 1 nous avons uniquement besoin de 5 valeurs de l’itération précédente n : (k, ± 1, j ± 1) et (k, , j). Le motif d’accès de points à l’itération n afin de déterminer la valeur en un point à l’itération n + 1 s’appelle un stencil. Dans la méthode des stencils, le calcul en un point (, j) à l’instant n nécessite uniquement les valeurs locales des points voisins de (, j) à des instants précédents. 1/3 MMIS 3A Calcul sur GPU Grenoble INP En pratique, différents schémas d’approximations peuvent être utilisés pour résoudre l’équation 1, en faisant appel par exemple à un schéma en temps d’ordre supérieur ou des approximations des dérivées spatiales d’ordres supérieures. Le recours à ces approximations différentes nécessitera d’élargir le stencil, sans pour autant modifier la méthodologie. Le stencil pour l’équation 2 discrétisée est donné par (i-1,j+1) (i-1,j) (i-1,j-1) (i,j+1) (i,j) (i,j-1) (i+1,j+1) (i+1,j) (i+1,j-1) Figure 1: Stencil pour l’équation 1 Ces méthodes peuvent notamment être utilisées pour la résolution d’équations aux dérivées partielles, l’analyse d’images ou les automates cellulaires. Une version séquentielle du code est accessible en téléchargement sur http://www-ljk. imag.fr/membres/Christophe.Picard/inprogress.php. 2 Travail demandé Le travail demandé se décompose en 2 parties. 2.1 Parallélisation du noyau Dans un premier temps, on considère le problème définit par l’équation 1 avec le paramètre κ = 0.5, dont le code vous ait fourni. Afin de réaliser la parallélisation du noyau de calcul, il est recommandé avant de réaliser la parallélisation, d’analyser le code, d’expérimenter avec différentes valeurs d’entrées et d’identifier les design patterns présents dans le code. Votre rapport devra contenir une justification de votre choix. Le rapport devra également contenir une partie analyse des performances en spécifiant le méthodologie utilisée. Il est demandé de faire particulièrement attention aux patterns d’accès mémoires et à la distribution des données sur la carte graphique. N’oubliez pas de commenter vos résultats. 2.2 Application et exploration Dans cette seconde partie, vous êtes libre d’explorer différentes extensions, modification ou adaptation du problème à base de stencil. Parmi les extensions proposées, vous pouvez 1. Remplacer le noyau de Jacobi par un noyau de type multigrille. 2. Utiliser et optimiser en parallèle le code pour réaliser la simulation complète de l’équation en s’appuyant sur [1]. 3. Utiliser et optimiser le code pour réaliser de la détection de contours [2]. 2/3 MMIS 3A Calcul sur GPU Grenoble INP 4. Appliquer vos développements à un modèle de cardiologie [3]. 5. Modifier l’ordre du schéma de discrétisation. 6. Ecrire le code en 3D. 7. Proposer vos propres extensions ou applications. Pour l’ensemble de ces extensions, vous justifier les approches parallèles, les modifications par rapport à la stratégie initiale, les optimisations possibles. Les articles sont disponibles sur la page du cours. 3 Evaluation du rendu Le travail sera évalué sur les points suivant 1. Qualité du code. 2. Performances du code 3. Analyse et pertinence des résultats 4. Initiative 5. Qualité du compte-rendu. La moitié des points seulement pourra être attribuée à la première partie. Le rendu devra contenir un rapport au format pdf de votre travail, le code commenté, la liste des tests réaliser ainsi que les scripts d’exécutions. N’oubliez pas de structurer votre travail. Le repertoire de rendu devra être de la forme Projet_NOM. Références [1] Shou hui Zhang and Wen qia Wang. A stencil of the finite-difference method for the 2d convection diffusion equation and its new iterative scheme. International Journal of Computer Mathematics, 87(11) :2588–2600, 2010. [2] Pascal Getreuer. Image Interpolation with Geometric Contour Stencils. Image Processing On Line, 2011. [3] Rubin R. Aliev and Alexander V. Panfilov. A simple two-variable model of cardiac excitation. Chaos, Solitons & Fractals, 7(3) :293 – 301, 1996. 3/3
Documents pareils
Méthodes des stencils sur carte graphique
La plupart des codes de différences finies, qui utilisent des grilles régulières, peuvent ainsi être formulées à l’aide de stencils. Ces méthodes peuvent également être utilisées l’analyse d’images...