添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

两小时入门MPI与并行计算(二):MPI的安装与配置

MPI与OpenMPI和MPICH等的关系

MPI(Message Passing Interface),由其字面意思也可些许看出,是一个信息传递接口。可以理解为是一种独立于语言的信息传递标准。而OpenMPI和MPICH等是对这种标准的具体实现。也就是说,OpenMPI和MPICH这类库是具体用代码实现浏MPI标准。因此我们需要安装OpenMPI或者MPICH去实现我们所学的MPI的信息传递标准。

为了考虑到教程的完整性,所以单独用一篇文章来介绍一下MPI库的安装方法。安装方法千篇一律,网上随手一查就能查到一堆,我本人也写不出什么花样来。若你已经配置好了MPI环境,可以忽略本文,直接跳到下一章去学习。考虑到大部分人在实现并行编程都是在CPU集群上完成,而这些服务器几乎都是使用的Linux系统。因此下文采用Linux来作为讲解,为了使本文看起来稍微有点干货,我尽量在安装步骤中扩展一些我认为Linux初学者有必要知道的东西。相信初学者在用集群安装时会出现各种各样的问题,报一些对于初学者来说难以解决的问题。这对于初学者来说很打击积极性,如果学习的热情被安装时的报错信息消耗殆尽是很可惜的。各位在用集群安装时,因为没有root权限,可能会出现各种各样比如编译器过老,管理员安装的编译器路径地址不知道等问题,这些可能初学者难以解决。用虚拟机学习MPI的学习者可能就会好一些,因为有root权限,所需要的环境都可以自己装。初学者如果遇到安装时的报错解决不了的话,也可以私信或者评论区留言。

MPICH和OpenMPI等是采用MPI标准的通信协议。本文将选择MPICH的安装作为示范,一步一步讲解如何配置MPI的环境。 OpenMPI的按照方法也同理。

一、MPI的下载与安装

在开始安装之前,先检查一下是否已经安装好了相应的编译器。

which gcc 
which gfortran 

当显示了gcc和gfortran的路径,即可进行下一步的安装,若没有相应的编译器,请先安装编译器。 如何安装编译器可以自行使用搜索引擎查询。在linux中,which是用来查询环境变量的地址。而这里所指的环境变量,通俗一点讲就是在当前shell中,这些如gcc这一命令是指向哪个文件。比如你安装了两个版本的gcc编译器,你就需要去设置环境变量,告诉系统当你调用gcc的时候你到底想调用哪个版本的gcc,把你想调用的那个gcc的路径和gcc绑定起来。所以,当执行上述命令,得到了编译器地址,就可以进行下一步了。如果没有,要么是环境变量中没有指定编译器路径,要么是没有安装编译器,需自行判断。

当检查完编译器之后,去 mpich.org/downloads/ 选择合适的版本下载,对于没有图形界面的服务器,也可使用wget命令下载。 tar命令是解压文件的命令。MPI库通常采用的是源码安装,因此,需要使用cd命令进入到解压后的文件夹中,使用./configure进行安装前的设置与检查,由于我们只需要更改一下安装的路径,因此在--prefix这一参数中,设置你想要安装的路径即可。执行这一行之后,就会开始检查编译环境是否满足,此时报错多半是因为编译器安装的问题或者编译器版本不匹配的问题,一般通过安装最新的编译器能解决。这一步成功完成之后,即可使用make命令去执行编译。该路径下makefile文件已经写好了这些源代码的编译规则,因此输入make即可开始按照makefile的规则对源码进行编译。如果你做的工作和底层语言如Fortran、C或C++之类的,还是有必要学习一下makefile的写法,有助于之后的多文件编译工作。顺便一提,使用Linux学习底层语言是更有好处的,因为Windows初学编程语言通常是使用集成开发环境,在对代码进行编译时通常是一键操作,导致中间的几个过程会被下意识的忽略掉,这将导致一开始适应不了Linux环境下编译文件的命令。当make完成之后,就可以使用make install命令进行安装了。

wget http://www.mpich.org/static/downloads/3.3.2/mpich-3.3.2.tar.gz 
tar -zxvf mpich-3.3.2.tar.gz #解压下载的压缩包 
cd mpich-3.3.2 #进入解压后的文件夹内