1. About openmpi

要说openmpi,首先要说MPI,mpi不是一门新的语言,可以认为是一个函数库,实际上,他是运行处理器之间交流通信的应用接口,这也是他名字的来源,Message Passing Interface。

一般来说,MPI是为,computer clusters,机群服务的,为机群中不同计算机节点提供信息传递接口。但是,鉴于它的本质是帮助不同处理器之间的通信,因此对目前越来越常见的单机多核PC也是适用的,当然个人感觉配置比较麻烦。而openmpi,就是一个高性能MPI库,可以方便的解决单机多核中MPI应用问题。

2. install openmpi

openmpi需要依赖C或者F编译器,因此安装之前请确保编译器已经正常安装。

2.1 install GNU compiler

目前gcc已经更新到6.2,对于sierra用户,推荐安装最新版本的gcc(包含gfortran),gcc-6.2-bin.tar。如果仅仅只想安装gfortran,可以选择 gfortran-6.2-bin.tar

安装过程非常简单,解压之后安装;gcc安装不会覆盖老版本的gcc,但是会更新环境变量。如果想继续使用老版本的gcc,请为老版本的gcc添加环境变量。


sudo tar -xvf gcc-6.2-bin.tar -C /.

以上命令会解压并安装gcc,默认会安装在/usr/local/libexec/gcc路径下,如果有老版本的gcc,默认情况下,也会在该路径之下。

2.2 installifort compiler

之前一直使用GCC,但是对于intel处理器的MacbookPro而言,GCC并不是最好的编译器,ifort或者icc才更适合,但是intel c/f并不免费,所以…。

对于想尝试ifort的用户而言,可以参考上一篇博文《install ifort on mac Sierra》

2.3 install openmpi

官网下载安装源文件,目前最新版本是openmpi-2.0.1.tar.gz

openmpi的安装很简单,解压、配置安装文件、make编译、make安装。

tar zxvf openmpi-2.0.1.tar.gz
./configure F77=ifort FC=ifort --prefix=/usr/local
make all
sudo make install

对于多编译器的用户,可以通过以上./configure指定编译器类型,比如intel编译器用户可以指定CC=icc CXX=icpc F77=ifort FC=ifort,GNU编译器用户可以指定CC=gcc CXX=gcc F77=gfortran FC=gfortran。当然,也可以像上述语句一样只指定部分编译器类型,因为我安装了gcc(gfortran)和ifort,但是没有安装icc。

以上安装过程,./configuremake过程配置检查以及文件编译过程相对漫长,请耐心等待。

2.4 温馨提示

在OSX环境下安装编译器及编译相关开源代码,多数必须要依赖Xcode,因此及时更新Xcode及其相应命令行工具是必要的。

  • 通过App Store安装Xcode,并升级所有更新;
  • 终端安装Xcode命令行工具

> xcode-select --install