High-Performance Communication Primitives and Data Structures on Message-Passing Manycores:Broadcast and Map

Omid Shahmirzadi
2014
The constant increase in single core frequency reached a plateau during recent years. This is due to a physical phenomenon, known as power wall, where the produced heat inside the chip is so high that cannot be cooled down by existing technologies. An alternative to harvest more computational power per die is to fabricate more number of cores into a single chip. Therefore manycore chips with more than thousand cores are expected by the end of the decade. These environments provide a high level
more » ... f parallel processing power while their energy consumption is considerably lower than their multi-chip counterparts. Although shared-memory programming is the classical paradigm to program these environments, there are numerous claims that taking into account the full life cycle of software, the message-passing programming model have numerous advantages. The direct architectural consequence of applying a message-passing programming model is to support message passing between the processing entities directly in the hardware. Therefore manycore architectures with hardware support for message passing are becoming more and more visible. These platforms can be seen in two ways: (i) as a High Performance Computing (HPC) cluster programmed by highly trained scientists using Message Passing Interface (MPI) libraries; or (ii) as a mainstream computing platform requiring a global operating system to abstract away the architectural complexities from the ordinary programmer. In the first view, performance of communication primitives is an important bottleneck for MPI applications. In the second view, kernel data structures have been shown to be a limiting factor. In this thesis (i) we overview existing state-of-the-art techniques to circumvent the mentioned bottlenecks; and (ii) we study high-performance broadcast communication primitive and map data structure on modern manycore architectures, with message-passing support in hardware, in two different chapters respectively. In one chapter, we study how to make use of the hardware features to implement an efficient broadcast primitive. We consider the Intel Single-chip Cloud Computer (SCC) as our target platform which offers the ability to move data between on-chip Message Passing Buffers (MPB) using Remote Memory Access (RMA). We propose OC-Bcast (On-Chip Broadcast), a pipelined k-ary tree algorithm tailored to exploit the parallelism provided by on-chip RMA. Experimental results show that OC-Bcast attains considerably better performance in terms of latency and throughput compared to state-of-the-art solutions. This performance improvement highlights the benefits of exploiting hardware features of the target platform: Our broadcast algorithm takes direct advantage of RMA, unlike the other broadcast solutions which are based on a higher-level send/receive interface. In the other chapter, we study the implementation of high-throughput concurrent maps in v message-passing manycores. Partitioning and replication are the two approaches to achieve high throughput in a message-passing system. This chapter presents and compares different strongly-consistent map algorithms based on partitioning and replication. To assess the performance of these algorithms independently of architecture-specific features, we propose a communication model of message-passing manycores to express the throughput of each algorithm. The model is validated through experiments on a 36-core TILE-Gx8036 processor. Evaluations show that replication outperforms partitioning only in a narrow domain. Résumé La fréquence des coeurs de calcul a arrêté d'augmenter depuis quelques années. Ceci est lié au phénomène physique appelé "power wall", qui fait que, avec l'augmentation de la fréquence, la chaleur dissipée par le processeur devient trop importante par rapport aux capacités des systèmes de refroidissement. Pour continuer à améliorer les performances des processeurs, une alternative est alors d'augmenter le nombre de coeurs par processeur. Donc des processeurs manycore incluant des centaines de coeurs sont attendus pour la fin de la décennie. Ces environnements offrent un haut niveau de puissance de calcul parallèle alors que leur consommation énergétique est considérablement plus faible que celle des environnements multi-processeurs. Bien que la programmation par mémoire partagée soit le paradigme classique pour programmer ces environnements, plusieurs personnes estiment qu'en tenant compte du cycle de vie complet d'un logiciel, la programmation par échange de messages à de nombreux avantages. La conséquence directe de l'utilisation du modèle de programmation par échange de messages est l'émergence d'architectures supportant la transmission de messages entre les entités de calcul au niveau matériel. Ces plateformes peuvent être utilisées de deux manières : (i) un cluster de calcul haute performance programmé par des scientifiques hautement qualifiés utilisant, par exemple, une bibliothèque MPI (Message Passing Interface) pour les communications ; (ii) une plateforme ordinaire nécessitant un système d'exploitation permettant au programmeur de s'affranchir de la complexité matérielle. Dans le premier cas, les performances des primitives de communication sont déterminantes pour les applications MPI. Dans le second cas, ce sont les performances des structures de données du noyau qui sont un facteur limitant. Dans cette thèse, (i) nous présentons les solutions de l'état de l'art pour traiter ces deux problèmes, puis (ii) nous consacrons deux chapitres à l'étude de primitives de broadcast (diffusion de type un-vers-tous) et à l'étude de structures de données de type tableau associatif, sur des architectures manycore modernes fournissant un support pour l'échange de messages au niveau matériel. Dans le premier chapitre, nous étudions comment utiliser les fonctionnalités matérielles pour mettre en oeuvre la diffusion un-vers-tous de manière efficace. Nous considérons la puce Single Chip Cloud (SCC) d'Intel comme plateforme cible. Cette plateforme offre la possibilité de déplacer des données sur la puce entre les tampons de transmission de messages (Message-Passing Buffer -MPB) des différents coeurs par accès mémoire distants (Remote Memory Acces -RMA). Nous proposons un algorithme de diffusion en arbre pipeliné d'arité k, appelé OC-Bcast, conçu pour exploiter le parallélisme offert par les accès mémoire distants. Les résultats expérimentaux montrent qu'OC-Bcast atteint des performances nettement supérieures aux vii algorithmes de l'état de l'art en termes de latence et de débit. Ces résultats mettent en évidence les avantages d'exploiter les fonctionnalités matérielles de la plateforme cible. Nos algorithmes de diffusion profitent directement des avantages des accès mémoire distants contrairement aux autres algorithmes qui sont fondés sur une interface de type émission/réception de plus haut niveau. Dans le second chapitre, nous étudions la mise en oeuvre de tableaux associatifs efficaces dans les architectures manycore à échange de messages. Partitionner et répliquer une structure de donnée sont les deux approches pour en améliorer le débit dans un système à échange de messages. Ce chapitre présente et compare différents algorithmes de tableau associatif avec une cohérence forte, fondés sur le partitionnement et la réplication. Pour évaluer les performances de ces algorithmes indépendamment des caractéristiques propres à une architecture spécifique, nous proposons un modèle des communications par échange de messages au sein des processeurs manycore pour exprimer le débit de chaque algorithme. Le modèle a été validé grâce à des expériences réalisées sur un processeur TILE-Gx8036 incluant 36 coeurs. Les résultats montrent que la réplication surpasse le partitionnement uniquement dans un petit sous-ensemble de cas.
doi:10.5075/epfl-thesis-6328 fatcat:76iqgireuzh2vem6ceakpsmazy