在ASC19大赛中,楼主负责优化CESM(全球气候系统模型)性能(十年跑不完,提交两行泪)。其中MPI库的选择尤其重要,这种大型系统都需要分布式(多进程)计算,充分调动CPU资源来提高CESM的运行效率。
MPI(message passing interface):在分布式内存之间实现信息通讯的一种规范/标准/协议。它是一个库,不是一门语言。可以被fortran,c,c++等调用。MPI 允许静态任务调度,提供了良好的性能和移植性,用 MPI 编写的程序可直接在多核集群上运行。在集群系统中,集群的各节点之间可以采用 MPI 编程模型进行程序设计,每个节点都有自己的内存,可以对本地的指令和数据直接进行访问,各节点之间通过互联网络进行消息传递,这样设计具有很好的可移植性,完备的异步通信功能,较强的可扩展性等优点。
本来楼主想要使用IntelMPI来运行CESM(众多资料显示其在使用Intel芯片的服务器上有最强分布式计算性能),但在调用IntelMPI时,系统显示其是使用gnu编译的,与当前编译器不能(Intel)兼容运行,加上还有其他bug。由于时间紧迫,我们来不及修改。在比较多个可以运行CESM的MPI库(mpich,openmpi等)后,我们最后采用OpenMPI4.0版本(也是目前最新版本)。
在安装MPI库时要注意:CC,FC必须指定为你要运行CESM的编译器。比如我用的是Intel编译器,那么在configure时要加上“CC=icc,FC=ifort”。建议安装在个人目录下,通过修改.bashrc文件,方便以后调用不同的MPI库。
以下是自定义安装过程:
OpenMPI4.0下载官网:
https://www.open-mpi.org/software/ompi/v4.0/
1.将openmpi-4.0.0.tar.gz文件移动到你要储存的目录
2.解压文件:$tar -zxvf openmpi-4.0.0.tar.gz
3.进入解压后的目录:$cd openmpi-4.0.0
4.安装openmpi4.0.0
<