最近,由于老师要求设计并行IO接口,所以开始着手学习MPI-IO的相关技术.

一、在介绍MPICH安装配置之前,先简单介绍几点基础内容:

1、MPICH与MPI的关系:MPICH是MPI的一种高效便携式实现标准,通过安装MPICH构建MPI编程环境,从而进行并行程序的开发。MPICH是MPI(Message-Passing Interface)的一个应用实现,支持最新的MPI-2接口标准(现在好像已经有MPI-3了),是用于并行运算的工具。

2、MPI2与MPI-IO的关系:1994年IBM's Watson 实验室为了给MPI提供并行IO支持,开发了MPI-IO;在1996年,被NASA采用了;同年,MPI论坛决定将MPI-IO融入到MPI-2中,并在1997年发布了包含MPI-IO特性的MPI-2。

二、介绍一下自己的安装配置环境

1、ubuntu版本:Linux ubuntu-pc 3.11.0-15-generic(命令:uname -a);

2、C/C++编译器:gcc version 4.6.3

3、MPICH版本:mpich_3.2.orig.tar.gz
     下载地址:http://www.mpich.org/downloads/(简单看一下英文介绍,就知道怎么下载)

三、MPICH 配置与安装

1、解压下载的mpich的tar文件,并切换到解压后的文件夹目录下。

       (1)解压文件:tar xzf mpich-3.2.tar.gz
       (2)切换路径:cd mpich-3.2

2、指定MPICH安装路径

       (1)~$ ./configure --disable-fortran --prefix=/usr/local/mpich-3.2-install

   注意:在自己没有安装Fortran 语言编译器的情况下,最好在命令行语句中加上“--disable-               fortran”,以免出现错误提示,导致安装失败!

3、搭建MPICH

                ~$ make 2>&1 | tee m.txt

   注意:“2>&1 | tee m.txt”主要是将安装过程中的细节记录在m.txt文件中;对于安装中的错误,会 

             打印输出。

4、 安装MPICH

                 ~$ make install 2>&1 | tee mi.txt

5、环境参数配置,让程序在编译与执行的过程中,准确找到所需文件。

                  ~$ PATH=/usr/local/mpich-3.2-install/bin:$PATH ; export PATH

    注意: 当准确相关参数后,mpicc、mpiexec等命令才能够准确执行。                

6、参数配置结果检查

             (1) ~$ which mpiexec

结果显示:/usr/local/mpich-3.2-install/bin/mpiexec,如图1,

wKioL1f7nz2xRyddAAA2KD4cano396.png             (2)~$ which mpicc

结果显示:/usr/local/mpich-3.2-install/bin/mpicc

       提示:mpicc 是编译命令;mpiexec是执行命令。

四、知识补充

 1、在  解压文件下,有一个examples目录,其中有些demo,如hellow.c(简单的helloworld程序)、cpi(并行计算求π的值)

       (1) ~$  mpicc -o hellow hellow.c  编译文件

       (2) ~$  mpiexec -n 4 ./hellow       执行文件

结果显示如图2:

  wKioL1f7oYCCqLcVAABKDH90SII330.png

2、如何正确的运用mpiexec命令

     (1)在本地机器上创建多个线程:mpiexec -n <number> ./helloworld

                 实例:~$ mpiexec -n 4 ./hellow

              即在本地创建了四个线程执行“./hellow”,如图2.

     (2)在多个节点中创建多线程:mpiexec -f machinefile -n <number> ./helloworld

          注意: <number>即为创建线程的个数。


           以上只是MPICH的基础中的基础,后面我会不断更新自己在学习中的体会,欢迎大家一起交流,有不对之处望指正。