【Fortran并行科学计算】——Hello World程序

【Fortran并行科学计算】——Hello World程序,第1张

MPI(message passing interface),是一个消息传递接口。MPI的函数总共有287个。

想实现一个MPI并行计算的程序的话,只要掌握MPI的工作机理和6个简单的MPI函数便可以了,本文介绍4个简单MPI函数:MPI_INIT、MPI_COMM_RANK、MPI_COMM_SIZE和MPI_FINALIZE。

注意:以下调用格式为Fortran格式,大部分教程都是C语言的MPI介绍,这里以及以后的文章都是以Fortran为基础,尤其要注意Fortran不分大小写。

先给出一个最简单的Hello_world的Fortran + MPI的程序,在此基础上来分析MPI的4个最简单的函数——MPI_INIT、MPI_COMM_RANK、MPI_COMM_SIZE和MPI_FINALIZE。

MPI_Init用来初始化MPI执行环境,建立多个MPI进程之间的联系,为后续通信做准备。

MPI_Finalize则是结束MPI执行环境。

MPI_Comm_rank就是来标识各个MPI进程的,告诉调用该函数的进程“我是谁?”。

MPI_COMM_SIZE用来标识相应进程组中有多少个进程。

2.1. 将以上内容保存为hello_world.f90,上传到服务器的文件夹/home/xldeng/mpi里面:

2.2. 编译hello_world.f90为hello_world,并用ls查看内容:

2.3. 使用服务器里面的命令来调用不同的节点上面的核来计算:

3.1 . 注意程序中的一个小细节:

含义为调用mpi的库函数,因为使用的是Intel MPI + Fortran90,所以调用的方式为:use mpi。Fortran77可能需要 include "mpif.h"。

3.2 . 在2.2节中的mpiifort是ifort的并行使用方法,检验mpiifort的用法:which mpiifort或者是mpiifort -v。

3.3 . 在2.3节中的说明:本程序的运行平台为服务器上,所以使用的是 MPI使用指南 | 武汉大学超算中心 中提供的提交方法。如果在单台服务器上面,可以使用如下命令:

来运行程序。

首先,工欲善其事必先利其器——搭建Fortran的MPI并行的环境。

因为是使用的是学校服务器—— MPI使用指南 | 武汉大学超算中心 。

选用的是Intel提供的MPI服务。

1、修改环境变量:

注意 :在单个服务器上面的环境变量修改,记得按照默认的路径按照:

2、检验是否成功。

最后是调试时候能够正常使用。 MPI使用指南 | 武汉大学超算中心 提供的是C语言版本的使用方法,并且使用slurm调度系统进行提交。以后的文章会根据这上面的内容来调试相关的学习内容。

有以下可能:

1、mpif.h没有找到,这种情况编译器应该提示的。

2、mpif.h格式不正确

3、没有设置好链接库。

都志辉有一本MPI的书,他的主页上可以下载(自己搜索一下),然后看看怎么设置。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11322447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存