CGM-based parallel solutions for a class of non-serial polyadic dynamic-programming problems
Solutions parallèles sur le modèle CGM pour une classe de problèmes de programmation dynamique de type polyadique non-serial
Résumé
We are interested in the parallelization of a class of non-serial polyadic dynamic-programming problems in this thesis. These problems are characterized by a strong dependency between subproblems. To design efficient and portable parallel solutions to solve these problems, the CGM (coarse-grained multicomputer) model is the suitable choice because of its simplicity and its compatibility with most supercomputers.
A CGM-based parallel algorithm is a succession of computation and communication rounds. The solutions proposed in the literature give the end-user the possibility of minimizing the number of communication rounds or balancing the load between processors because both objectives are conflicting. Moreover, their main drawback is to foster the latency time of processors, which accounts for most of the global communication time.
In this work, we propose an irregular partitioning technique of the dependency graph to tackle these conflicting objectives. It consists in subdividing the dependency graph into subgraphs (or blocks) of variable size. It ensures that the blocks of the first steps (or diagonals) are of large sizes to minimize the number of communication rounds. Thereafter, it decreases these sizes along the diagonals to increase the number of blocks in these diagonals and allow processors to stay active as long as possible. These blocks are fairly distributed among processors to minimize their idle time and balance the load between them. Nevertheless, this strategy induces a high latency time of processors. Indeed, varying the blocks' sizes does not enable them to start evaluating some blocks as soon as the data they need are available. To get over this shortcoming, we propose strategies to evaluate a block as a sequence of computation and communication steps of a set of small-size blocks. The experimental results obtained show a significant performance gain compared to the most efficient solutions proposed in the literature.
Nous nous intéressons à la parallélisation d'une classe de problèmes de programmation dynamique de type polyadique non-sérial dans cette thèse. Ces problèmes se caractérisent par une forte dépendance entre les sous-problèmes. Pour concevoir des solutions parallèles efficaces et portables à la classe de problèmes sus-citée, le modèle de calcul CGM (coarse-grained multicomputer) est le choix idéal en raison de sa simplicité et de sa compatibilité avec la plupart des superordinateurs.
Un algorithme CGM est une succession de rondes de calcul et de communication. Les solutions proposées dans la littérature donnent à l'utilisateur final le choix de minimiser le nombre de rondes de communication ou d'équilibrer la charge des calculs entre les processeurs car ces objectifs sont contradictoires. De plus, leur défaut majeur est de favoriser le temps de latence des processeurs, qui représente la plus grande partie du temps de communication global.
Dans ce travail, nous proposons une technique de partitionnement irrégulier du graphe de dépendances pour apporter une solution à ces objectifs contradictoires. Elle consiste à diviser le graphe de dépendances en sous-graphes (ou blocs) de tailles variables. Elle assure que les blocs des premières étapes (ou diagonales) sont de grandes tailles pour minimiser le nombre de rondes de communication. Ensuite, elle réduit leurs tailles le long des diagonales pour augmenter le nombre de blocs dans ces diagonales et permettre aux processeurs de rester actifs le plus longtemps possible. Ces blocs sont distribués de manière équitable sur les processeurs pour minimiser leur temps d'inactivité et équilibrer leurs charges de calcul. Cependant, cette stratégie induit un temps de latence élevé des processeurs. En effet, la variation de la taille des blocs ne leur permet pas de commencer l'évaluation de certains blocs aussitôt que les données dont ils ont besoin sont disponibles. Pour résoudre ce problème, nous proposons des stratégies consistant à évaluer un bloc comme une succession d'étapes de calcul et de communication d'un ensemble de blocs de petite taille. Les résultats expérimentaux obtenus montrent un gain de performance significatif comparé aux meilleures solutions proposées dans la littérature.
Origine | Fichiers produits par l'(les) auteur(s) |
---|---|
Licence |
Domaine public
|