Communication inter-cœurs optimisée pour le parallélisme de flux
Institution:
Paris 6Disciplines:
Directors:
Abstract EN:
Parmi les différents paradigmes de programmation parallèle, le parallélisme deflux présente l'avantage de conserver la séquentialité des algorithmes et d'êtreainsi applicable en présence de dépendances de données. De plus, l'extension decalcul par flux pour OpenMP proposée par Pop et Cohen permet de mettre en œuvrecette forme de parallélisme sans requérir de réécriture complète du code, en yajoutant simplement des annotations. Cependant, en raison de l'importance de lacommunication nécessaire entre les cœurs de calcul, les performances obtenues ensuivant ce paradigme sont très dépendantes de l'algorithme de communicationutilisé. Or l'algorithme de communication utilisé dans cette extension reposesur des files gérant plusieurs producteurs et consommateurs alors que lesapplications mettant en œuvre le parallélisme de flux fonctionnentprincipalement avec des chaînes de communication linéaires. Afin d'améliorer les performances du parallélisme de flux mis en œuvre parl'extension de calcul par flux pour OpenMP, cette thèse propose d'utiliser,lorsque cela est possible, un algorithme de communication plus spécialisé nomméBatchQueue. En ne gérant que le cas particulier d'une communication avec un seulproducteur et un seul consommateur, BatchQueue atteint des débits jusqu'à deuxfois supérieurs à ceux des algorithmes existants. De plus, une fois intégré àl'extension de calcul par flux pour OpenMP, l'évaluation montre que BatchQueuepermet d'améliorer l'accélération des applications jusqu'à un facteur 2également. L'étude montre ainsi qu'utiliser des algorithmes de communicationspécialisés plus efficaces peut avoir un impact significatif sur lesperformances générales des applications mettant en œuvre le parallélisme de flux.
Abstract FR:
Among the various paradigms of parallelization, pipeline parallelism has theadvantage of maintaining sequentiality of algorithms, thus being applicable incase of data dependencies. More over, the stream-computing extension for OpenMPproposed by Pop and Cohen allows to apply this form of parallelization withoutneeding a complete rewrite of the code, by simply adding annotations to it. However, due to the *importance* of the communication needed between the cores,the performances obtained by following this paradigm depends very much on thecommunication algorithm used. Yet, the communication algorithm used in thisextension relies on queues that can handle several producers and consumers whileapplications using pipeline parallelism mainly works with linear communication chains. To improve the performances of pipeline parallelism implemented by thestream-computing extension for OpenMP, this thesis propose to use, wheneverpossible, a more specialized communication algorithme called BatchQueue. Byonly handling the special case of a communication with one producer and oneconsumer, BatchQueue can reach throughput up to two time faster than existingalgorithms. Furthermore, once integrated to the stream-computing extension forOpenMP, the evaluation shows that BatchQueue can improve speedup of applicationup to a factor 2 as well. The study thus shows that using a more efficientspecialized communication algorithm can have a significant impact on overall performances of application implementing pipeline parallelism.