31 lines
2.2 KiB
TeX
31 lines
2.2 KiB
TeX
\section{Introduction}
|
|
|
|
La parallélisation automatique permet au développeur de ne pas se préoccuper du tout de la
|
|
problématique de parallélisation au sein de son programme.
|
|
En contrepartie, il perd une partie du contrôle dont il pourrait disposer sur sa parallélisation.
|
|
Ce chapitre traite d'une solution de parallélisation assistée utilisant le concept de squelettes
|
|
algorithmiques~\autocite{ref:cole1989}.
|
|
|
|
L'objectif principal est de proposer une bibliothèque
|
|
active\footnote{\url{https://phd.pereda.fr/dev/alsk}} permettant à un développeur de décrire ses
|
|
algorithmes en spécifiant lui-même quelles parties peuvent être exécutées en parallèles, et de
|
|
quelle manière elles doivent l'être en assemblant un ensemble de motifs d'exécution fournis.
|
|
|
|
Ce chapitre présente d'abord la recherche existante autour des squelettes algorithmiques puis
|
|
introduit un ensemble d'outils classiques de \gls{RO} ainsi qu'un problème de \gls{RO}.
|
|
Ceux-ci sont utilisés comme application aux travaux présentés dans ce chapitre car ils ont des
|
|
propriétés intéressantes pour mettre en évidence des problématiques liées à la parallélisation et
|
|
donc les solutions proposées, notamment pour le problème de la répétabilité.
|
|
Ce chapitre se poursuit avec la présentation de notre conception des squelettes algorithmiques, en
|
|
détaillant en particulier leur structure et la possibilité de décrire les transmissions de données
|
|
entre les différentes parties de l'algorithmique représenté.
|
|
Ensuite, le chapitre explique comment se fait la répartition des tâches de l'algorithme afin de le
|
|
rendre parallèle et expose différentes stratégies pour ce faire.
|
|
Après cela, nous abordons le problème de la répétabilité, notamment pour le cas de l'utilisation de
|
|
nombres pseudo-aléatoires, et des méthodes pour optimiser la procédure initiale en tenant compte de
|
|
la stratégie de répartition des tâches adoptée et du degré de parallélisation.
|
|
Ce chapitre introduit ensuite un \gls{EDSL} servant d'interface pour simplifier l'utilisation de la
|
|
bibliothèque.
|
|
Enfin, il se termine sur une étude des performances obtenues en utilisant la bibliothèque en la
|
|
confrontant à des codes écrits sans l'utiliser.
|