随着超算产业的兴起,MPI已然成为了CAE求解器开发的主要并行技术。MPICH是MPI标准的一种最重要的实现,MPICH的开发与MPI规范的制订是同步进行的,最能反映MPI的变化和发展。因此,非常有必要对MPICH为代表的MPI实现原理予以研究。
另外,国内外虽然有不少书籍讲解MPI编程相关技术,但大多仅局限于MPI编程模型等方面,鲜有书籍对MPI(特别是主流MPI实现)实现原理进行深入分析,这也是笔者撰写此文的另一个原因。
本文旨在通过分析MPICH源代码来强化对MPI的概念、原理、使用等方面的理解。
注1:限于笔者研究水平,难免有误,敬请批评指正。
注2:文章内容会不定期更新。
在GitHub上,下载MPICH
- git clone --recurse-submodules https://github.com/pmodels/mpich.git
- gti checkout -b v4.0 v4.0
(注:由于最新版本mpi-v4.1a1已经不再维护smpd进程管理器,本文选择mpi-v3.0.0版本 。)
进入mpich目录,运行以下命令完成编译安装,
- ./autogen.sh
- ./configure --prefix=/home/youquan/mpich-install
- make -j8
- make install