高性能计算中的通信与并行编程优化
RCKMPI:英特尔单芯片云计算机的轻量级 MPI 实现
在高性能计算领域,消息传递接口(MPI)的高效实现至关重要。RCKMPI 作为英特尔单芯片云计算机(SCC)的轻量级 MPI 实现,在通信机制和性能优化方面有着独特的设计。
通信介质选择策略
在数据包传输时,由于难以预先确定哪种介质(如 MPB 或 DDR3)更快,因此需要在运行时做出决策。切换从 MPB 到基于 DDR3 的消息传递严格基于正在传输的 MPICH2 数据包的待发送字节数。这个切换的字节值在 MPI 作业启动时静态设置,它取决于 MPI 作业的大小(即进程数量)和二级缓存的大小。例如,对于 48 个进程的情况,当待发送字节数达到 5.6KB 时,切换到 DDR3 进行消息传递。
性能测试
为了探究 RCKMPI 的性能特点,对三种不同的通道(MPB、共享内存和双缓冲类型操作)进行了测试。测试在运行频率为 800MHz 的 Rocky Lake SCC 系统上进行,每个核心加载了实验性的 2.6.38.2 SCC Linux 镜像。RCKMPI 配置了 MPD 进程管理器并启用了所有优化,使用 GCC 编译器版本 4.5.2 编译库、应用程序和 Linux 内核。所有基准测试在 48 个进程和指定设置下运行(除非另有说明)。
在点对点操作中,如 MPI_Send 和 MPI_Recv 的乒乓测试,经过 1000 次操作并对每个进程对(共 47 对)的结果进行平均,结果表明切换策略是最优的。对于 MPI_Sendrecv 等其他点对点操作以及单边通信,在 2 到 48 个进程的 MPI 作业中也有类似的良好表现