并行程序设计基础——动态进程管理

       

目录

一、组间通信域

二、动态创建新的MPI进程

1、MPI_COMM_SPAWN

2、MPI_COMM_GET_PARENT

3、MPI_COMM_SPAWN_MULTIPLE

三、独立进程间的通信

1、MPI_OPEN_PORT

2、MPI_COMM_ACCEPT

3、MPI_CLOSE_PORT

4、MPI_COMM_CONNECT

5、MPI_COMM_DISCONNECT

6、MPI_PUBLISH_NAME

7、MPI_LOOKUP_NAME

8、MPI_UNPUBLISH_NAME

四、基于socket的通信

五、小结


        从本节我们开始介绍MPI-2的新特征,相比MPI-1,MPI-2增加了动态进程管理、远程存储访问和并行文件I/O。

         MPI-1版本中,一个MPI程序启动后,直到该MPI程序结束,进程的个数都是固定的,在程序运行过程中是不可能动态改变的。在MPI-2中,允许在程序运行过程中动态改变进程的数目,同时提供了动态进程创建和管理的各种调用。本节开始我们将介绍各种动态改变进程数目的方法和对动态进程的使用。

一、组间通信域

        在MPI-1中进程如何启动是在MPI程序之外定义的,当MPI_Init返回后进程个数是固定的。PVM的进程管理,一类重要的消息传递应用,如客户/服务系统和任务农场任务,需要对进程进行动态控制。这样的扩展可以用MPI自身来写并行计算环境。在MPI-1中虽然提出了组间通信域的概念,但真正使用组间通信域的地方,却是MPI-2提出的动态进程管理。

        在MPI-2中,对点到点通信和组通信,都给出了使用组间通信域时的确切含义。在语法上,不管是使用组内还是组间通信域,两者没有任何区别,但语义不同。

        对于构成组间通信域的两个进程组,调用进程把自己所在的组看作是本地组,而把另一个组看作远地组。使用组间通信域的一个特点是本地组进程发送的数据被远地组进程接收,而本地组接收的数据必然来自远地组。

        在使用组间通信域的点到点通信中,发送语句指定的目的进程是远地组中的进程编号,接收进程指出的源进程编号也是远地组的进程编号。

        对于组通信,如果使用组间通信域,则其含义分不同的形式而有所不同。对于多对多通信,本地进程组的所有进程向远地进程组的所有进程发送数据,同时本地进程组的所有进程从远地进程组的所有进程接收数据。

        对于组间通信域上的一对多操作,本地组的ROOT进程发送消息,远地组的所有进程都接收;反之,对于组间通信域上的多对一操作,本地组的ROOT进程接收消息,而远地组的所有进程都向本地组的ROOT进程发送消息。

        对于本地组的非ROOT进程,它们也要执行此组调用,不过不执行通信操作,本地组的ROOT进程和非ROOT进程是通过在指定ROOT进程时区别开来的,对于ROOT进程,在参数为ROOT进程标识号的位置上写上MPI_ROOT,对于非ROOT进程,在参数为ROOT进程标识号的位置写上MPI_PROC_NULL,对于远地组的进程,则写上本地组ROOT进程的标识号。这是和组内通信域的组通信不同的地方。

        利用组间通信域进行通信主要有三种方式:①通过动态创建新的进程,父进程和子进程形成的组间通信域上的通信;②两个没有父子关系的进程间建立组间通信域进行通信;③将socket通信转换为组间通信域上的通信。

二、动态创建新的MPI进程

        MPI-2的动态进程的创建是指从已经存在的一个组间通信域进程组的进程,派生出若干个进程,形成一个新的进程组,原来的进程组相对于新派生的进程组称为父进程组,而新派生的进程组相对于原来的进程组称为子进程组。父子进程组属于不同的通信域,它们直接的通信是通过父子进程组的通信域形成的组间通信域来进行的。

1、MPI_COMM_SPAWN

        MPI派生新的进程是通过调用MPI_COMM_SPAWN实现的。在MPI_COMM_SPAWN中需要指出将派生的进程对应的可执行程序的名字command,传递给可执行程序的参数argv,将要派生的进程的最大个数maxprocs,以及可能的运行时信息info。对于上述这些参数,不需要MPI每个进程都进行解释,只需要提供一个解释进程的标识号ROOT即可,由ROOT进程

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿核试Bug愁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值