MPI在玛蒂尔达

概述

消息传递接口(MPI)应用程序被设计为允许产卵,和通信之间,跨多个节点使用分布式内存并行进程运行。在串行或多线程OpenMP应用程序,进程使用共享内存地址空间在单个节点上。当使用MPI产卵跨多个节点并行流程,每个单个节点的内存空间包含这些过程所使用的信息的一部分,因此,分布式内存地址空间。消息传递需要交换信息之间的分布式内存空间和处理核心控制他们,在某种程度上,让所有的并行任务协调/控制的方式有利于有序的完成任务。

为了利用MPI,必须重新编写应用程序的方式利用MPI库。代码添加到应用程序,利用选定的MPI库产生的各种特性,并行控制和终止过程。MPI库不仅供应功能,可以与应用程序代码在编译时,但他们也提供运行时“发射器”,以及运行时配置控制。

玛蒂尔达MPI功能

MPI库

玛蒂尔达目前提供了两种最常用的MPI库:

  • OpenMPI-一个开源的MPI standards-conforming实现MPI OpenMPI开发的项目,为高性能计算(HPC)和优化环境。

  • MPICH- MPI参考标准MPI的实现开发的MPI论坛

硬件

玛蒂尔达的硬件恭维与MPI的设计。重要特性包括Mellanox / NVIDIAInfiniband网络节点之间,DDN光泽并行文件系统(/划痕)。这个配置提供了远程直接内存访问(RDMA),它允许分布式内存空间在不同的节点之间的通信而不涉及操作系统。RDMA速度提供了重要的改进,可以大幅度减少cpu的负载,从而减少周期计算(而非I / O)的任务。

下图比较基于通信使用TCP, RDMA通信使用动词API:

附件:rdma_vs_tcp.jpg

*来源:teimori.net

MPI的技巧

更多信息的最佳实践的使用MPI在玛蒂尔达,请参考具体的玛蒂尔达文档OpenMPIMPICH


CategoryHPC