怎样利用服务器并行计算

怎样利用服务器并行计算,第1张

windows 跟 linux都需要不同的配置,windows你网上找找如何配置MSMPI 或者 MPICH2;Linux你查一下如何配置RSH 和 SSH。 两个配通了以后,用软件的相关命令就可以了。

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用来标识相应进程组中有多少个进程。

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

22 编译hello_worldf90为hello_world,并用ls查看内容:

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

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

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

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

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

来运行程序。

>从原理上来说,你现有的环境为多计算机(multi-computer),而你想要的是共享内存式的共享模式,这是很难做到的。共享内存模式一般对应于多处理器(multi-processor)的结构,其与多计算机是MIMD的两个实例。多计算机一般使用消息传递共享模式,经典的是MPI。你的需求其实很早就有人提出来了,类似于DSM模型,即distributed shared memory,不过那个绝不是靠普通PC机搭出来的,也绝不是走网线的,一定是大厂商定制开发的,所以这个你就别想了。另一种解决方案是靠高层抽象,将消息传递抽象成共享存储,但效率比较低,不过貌似大规模分布式系统已采用这种方案,对小型系统没啥优势的。
综上所述,用于并行计算的多计算机使用共享内存模式很难办到。


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

原文地址:https://www.54852.com/zz/12895075.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-28
下一篇2025-08-28

发表评论

登录后才能评论

评论列表(0条)

    保存