现在运行MPI任务要么在单节点上,要么直接提交到集群,基本用不到自己部署多节点的MPI环境。正因为有十多年没折腾了,今天在内部多台电脑上自行部署和运行MPI程序,差点就翻车了。本文稍作记录。
帮同事在arm机器上编译OpenMPI环境,本文简要记录一下构建过程,其中所有道的bash命令适用于RHEL 8及衍生系统。
在旧的Macbook上,忽然发现无法开启MPI编译程序,运行CMake时会报如下错误:Could NOT find MPI_C (missing: MPI_C_WORKS)
最近下载了某开源软件的源码,其使用CMake构建。在使用VS Code浏览源码时,发现一个奇怪的现象:VS Code出现#include errors detected错误。
昨天在 天河二号 上运行MPI程序,迭代到某个步数后会被kill掉。因之前出现过运行中被莫名终止的现象,以为这次也是调度系统出意外。再次运行程序,执行相同步数后还是被kill。查看运行日志,提示内存耗尽被强制终止,所以问题原因是程序出现了内存泄漏。
在MPI程序的main函数中调用MPI_Finalize,程序没有预期退出而是hang住了。用top命令查看,所有MPI进程都在运行并且占用100%的cpu。有人说这是由于部分进程的通信未结束,于是MPI_Finalize卡住,程序也就不会退出。顺着这个线索查看MPI_Finalize的官方文档,确实有这个说法。