12 research outputs found

    Adaptation des communications MPI intra-nœud aux architectures multicœurs modernes

    Get PDF
    National audienceL'émergence des processeurs multicœurs accroît les besoins en transferts de données entre les processus à l'intérieur des machines. Comme la plupart des implémentations portables de MPI, MPICH2 utilise un schéma de communication intra-nœud reposant sur plusieurs recopies mémoire. Ce modèle souffre d'une utilisation intensive des processeurs et d'une forte pollution de cache limitant significativement les performances. Grâce à l'interface de programmation Large Message Transfer de MPICH2, conçue pour supporter un vaste panel de mécanismes de transfert, il est cependant possible de modifier cette stratégie. La mise en place d'une stratégie de copie directe basée sur l'appel système vmsplice de Linux permet d'améliorer les performances dans certains cas. Nous présentons une seconde stratégie de copie directe, reposant sur un module noyau dédié nommé KNEM. Il tire profit des capacités matérielles de déport de copie mémoire, en les activant dynamiquement selon les caractéristiques physiques des caches et de la taille des messages. Cette nouvelle solution surpasse les méthodes de transfert habituelles et la stratégie vmsplice, lorsque les cœurs sur lesquels s'exécutent les processeurs ne partagent aucun cache, ou pour des transferts de très larges messages. Les opérations de communication collectives montrent quant à elles une amélioration spectaculaire, et le test NAS IS obtient une accélération de 25% et une meilleure utilisation des caches

    KNEM: a Generic and Scalable Kernel-Assisted Intra-node MPI Communication Framework

    Get PDF
    International audienceThe multiplication of cores in today's architectures raises the importance of intra-node communication in modern clusters and their impact on the overall parallel application performance. Although several proposals focused on this issue in the past, there is still a need for a portable and hardware-independent solution that addresses the requirements of both point-to-point and collective MPI operations inside shared-memory computing nodes. This paper presents the KNEM module for the Linux kernel that provides MPI implementations with a flexible and scalable interface for performing kernel-assisted single-copy data transfers between local processes. It enables high-performance communication within most existing MPI implementations and brings significant application performance improvements thanks to more efficient point-to-point and collective operations

    Impact of NUMA Effects on High-Speed Networking with Multi-Opteron Machines

    Get PDF
    International audienceThe ever-growing level of parallelism within the multi-core and multi-processor nodes in clusters leads to the generalization of distributed memory banks and busses with non-uniform access costs. These NUMA effects have been mostly studied in the context of threads scheduling and are known to have an influence on high-performance networking in clusters. We present an evaluation of their impact on communication performance in multi-Opteron machines. NUMA effects exhibit a strong and asymmetric impact on high-bandwidth communications while the impact on latency remains low. We then describe the implementation of an automatic NUMA-aware placement strategy which achieves as good communication performance as a careful manual placement, and thus ensures performance portability by gathering hardware topology information and placing communicating tasks accordingly

    Mouvement de données et placement des tâches pour les communications haute performance sur machines hiérarchiques

    No full text
    The emergence of multicore processors led to an increasing complexity inside the modern servers, with many cores, distributed memory banks and multiple Input/Output buses. The execution time of parallel applications depends on the efficiency of the communications between computing tasks. On recent architectures, the communication cost is largely impacted by hardware characteristics such as NUMA or cache effects. In this thesis, we propose to study and optimize high performance communication on hierarchical architectures. We first evaluate the impact of the hardware affinities on data movement, inside servers or across high-speed networks, and for multiple transfer strategies, technologies and platforms. We then propose to consider affinities between hardware and communicating tasks inside the communication libraries to improve performance and ensure their portability. To do so, we suggest to adapt the tasks binding according to the transfer method and the topology, or to adjust the data transfer strategies to a defined task distribution. Our approaches have been integrated in some main MPI implementations. They significantly reduce the communication costs and improve the overall application performance. These results highlight the importance of considering hardware topology for nowadays servers.Les architectures des machines de calcul sont de plus en plus complexes et hiérarchiques, avec des processeurs multicœurs, des bancs mémoire distribués, et de multiples bus d'entrées-sorties. Dans le cadre du calcul haute performance, l'efficacité de l'exécution des applications parallèles dépend du coût de communication entre les tâches participantes qui est impacté par l'organisation des ressources, en particulier par les effets NUMA ou de cache. Les travaux de cette thèse visent à l'étude et à l'optimisation des communications haute performance sur les architectures hiérarchiques modernes. Ils consistent tout d'abord en l'évaluation de l'impact de la topologie matérielle sur les performances des mouvements de données, internes aux calculateurs ou au travers de réseaux rapides, et pour différentes stratégies de transfert, types de matériel et plateformes. Dans une optique d'amélioration et de portabilité des performances, nous proposons ensuite de prendre en compte les affinités entre les communications et le matériel au sein des bibliothèques de communication. Ces recherches s'articulent autour de l'adaptation du placement des tâches en fonction des schémas de transfert et de la topologie des calculateurs, ou au contraire autour de l'adaptation des stratégies de mouvement de données à une répartition définie des tâches. Ce travail, intégré aux principales bibliothèques MPI, permet de réduire de façon significative le coût des communications et d'améliorer ainsi les performances applicatives. Les résultats obtenus témoignent de la nécessité de prendre en compte les caractéristiques matérielles des machines modernes pour en exploiter la quintessence

    Optimizing MPI Communication within large Multicore nodes with Kernel assistance

    Get PDF
    Abstract—As the number of cores per node increases in modern clusters, intra-node communication efficiency becomes critical to application performance. We present a study of the traditional double-copy model in MPICH2 and a kernelassisted single-copy strategy with KNEM on different sharedmemory hosts with up to 96 cores. We show that KNEM suffers less from process placement on these complex architectures. It improves throughput up to a factor of 2 for large messages for both point-to-point and collective operations, and significantly improves NPB execution time. We detail when to switch from one strategy to the other depending on the communication pattern and we show that I/OAT copy offload only appears to be an interesting solution for older architectures. I
    corecore