20 research outputs found
Efficient shared memory message passing for inter-VM communications
Thanks to recent advances in virtualization technologies, it is now possible to beneïŹt from the ïŹexibility brought by virtual machines at little cost in terms of CPU performance. However on HPC clusters some overheads remain which prevent widespread usage of virtualization. In this article, we tackle the issue of inter-VM MPI communications when VMs are located on the same physical machine. To achieve this we introduce a virtual device which provides a simple message passing API to the guest OS. This interface can then be used to implement an efficient MPI library for virtual machines. The use of a virtual device makes our solution easily portable across multiple guest operating systems since it only requires a small driver to be written for this device. We present an implementation based on Linux, the KVM hypervisor and Qemu as its userspace device emulator. Our implementation achieves near native performance in terms of MPI latency and bandwidth
MPI Application Binary Interface Standardization
MPI is the most widely used interface for high-performance computing (HPC)
workloads. Its success lies in its embrace of libraries and ability to evolve
while maintaining backward compatibility for older codes, enabling them to run
on new architectures for many years. In this paper, we propose a new level of
MPI compatibility: a standard Application Binary Interface (ABI). We review the
history of MPI implementation ABIs, identify the constraints from the MPI
standard and ISO C, and summarize recent efforts to develop a standard ABI for
MPI. We provide the current proposal from the MPI Forum's ABI working group,
which has been prototyped both within MPICH and as an independent abstraction
layer called Mukautuva. We also list several use cases that would benefit from
the definition of an ABI while outlining the remaining constraints
Vers des supports exĂ©cutifs et des outils de profilage adaptĂ©s aux architectures many/multi-cĆur dans le cadre du calcul hautes performances
Depuis un peu plus de dix ans, nous avons amorcĂ© un changement marquĂ© dans lâarchitecture des processeurs qui a eu un impact direct sur lâarchitecture des super-calculateurs. Avec la stagnation de la frĂ©quence des processeurs, nous avons assistĂ© Ă une explosion du nombre dâunitĂ©s de calcul, que ce soit au travers des architectures de type many/multi-cĆurs ou encore des architectures de types GPUs. Cette Ă©volution a mis une pression accrue sur les supports exĂ©cutifs.Les travaux que jâai rĂ©alisĂ©s au sein du support exĂ©cutif MPC ont pour but dâapporter une solution Ă ces problĂšmes. Pour mener Ă bien ces activitĂ©s, jâai fait Ă©voluer le support exĂ©cutif MPC. Cette Ă©volution avait pour objectif de faire de MPC un support exĂ©cutif de recherche qui permet aux doctorants du laboratoire de mettre en Ćuvre leurs contributions. Pour atteindre cet objectif, il Ă©tait nĂ©cessaire de rendre MPC Ă la fois modulaire et robuste. Ces Ă©volutions ont permis de mener Ă bien des travaux sur lâallocation mĂ©moire et la localitĂ© des donnĂ©es en contexte calcul hautes performances multithread ainsi que lâoptimisation des communications sur rĂ©seau rapide en contexte multithread.En marge des travaux sur les supports exĂ©cutifs eux-mĂȘmes, jâai menĂ© des Ă©tudes sur lâintĂ©gration de ces derniers dans un contexte machine virtuelle. En effet, la virtualisation est de plus en plus utilisĂ©e au sein des centres de calcul oĂč MPC est exĂ©cutĂ©. Jâai aussi menĂ© des travaux sur le profilage dâapplications Ă grande Ă©chelle pour permettre de caractĂ©riser lâapplication dans un contexte rĂ©el et ainsi optimiser les supports exĂ©cutifs
Vers des supports exĂ©cutifs et des outils de profilage adaptĂ©s aux architectures many/multi-cĆur dans le cadre du calcul hautes performances
Depuis un peu plus de dix ans, nous avons amorcĂ© un changement marquĂ© dans lâarchitecture des processeurs qui a eu un impact direct sur lâarchitecture des super-calculateurs. Avec la stagnation de la frĂ©quence des processeurs, nous avons assistĂ© Ă une explosion du nombre dâunitĂ©s de calcul, que ce soit au travers des architectures de type many/multi-cĆurs ou encore des architectures de types GPUs. Cette Ă©volution a mis une pression accrue sur les supports exĂ©cutifs.Les travaux que jâai rĂ©alisĂ©s au sein du support exĂ©cutif MPC ont pour but dâapporter une solution Ă ces problĂšmes. Pour mener Ă bien ces activitĂ©s, jâai fait Ă©voluer le support exĂ©cutif MPC. Cette Ă©volution avait pour objectif de faire de MPC un support exĂ©cutif de recherche qui permet aux doctorants du laboratoire de mettre en Ćuvre leurs contributions. Pour atteindre cet objectif, il Ă©tait nĂ©cessaire de rendre MPC Ă la fois modulaire et robuste. Ces Ă©volutions ont permis de mener Ă bien des travaux sur lâallocation mĂ©moire et la localitĂ© des donnĂ©es en contexte calcul hautes performances multithread ainsi que lâoptimisation des communications sur rĂ©seau rapide en contexte multithread.En marge des travaux sur les supports exĂ©cutifs eux-mĂȘmes, jâai menĂ© des Ă©tudes sur lâintĂ©gration de ces derniers dans un contexte machine virtuelle. En effet, la virtualisation est de plus en plus utilisĂ©e au sein des centres de calcul oĂč MPC est exĂ©cutĂ©. Jâai aussi menĂ© des travaux sur le profilage dâapplications Ă grande Ă©chelle pour permettre de caractĂ©riser lâapplication dans un contexte rĂ©el et ainsi optimiser les supports exĂ©cutifs
Introducing kernel-level page reuse for high performance computing
International audienc
Event Streaming for Online Performance Measurements Reduction
International audienc
Improving MPI communication overlap with collaborative polling
International audienc