MPI中的等级和流程有什么区别?
发布于 2011-03-22 23:50:01
Here是我学习MPI的资源,你可能会发现它很有用。
关于您的问题:进程是正在运行的程序的实际实例。MPI允许您创建进程的逻辑级,并且在每个组中,进程由其标识。这是0,N-1范围内的整数,其中N是组的大小。Communicator是处理进程间通信的对象。intra-communicator处理单个组内的进程,而inter-communicator处理两个不同组之间的通信。
默认情况下,您有一个包含所有进程的组,以及处理它们之间通信的intra-communicator MPI_COMM_WORLD
。这对大多数应用程序来说已经足够了,并且确实模糊了进程和排名之间的区别。要记住的主要事情是,进程的等级总是相对于组的。如果要将进程分成两组(例如,一组用于读取输入,另一组用于处理数据),则每个进程现在将具有两个级别:最初在MPI_COMM_WORLD
中的级别,以及在新组中的级别。
发布于 2015-09-06 16:19:40
属于通信器的每个进程都由其等级唯一标识。进程的等级是一个整数,范围从0到通信器的大小减1。进程可以通过使用MPI_Comm_rank
函数来确定其在通信器中的排名,该函数带有两个参数:通信器和整数变量rank:
int MPI_Comm_rank(MPI_Comm comm, int *rank)
参数rank
将存储进程的等级。
请注意,调用这些函数之一的每个进程都必须属于所提供的通信器,否则将发生错误。
发布于 2011-03-22 23:33:11
排名是对流程进行编号的一种逻辑方式。例如,您可能有16个并行进程在运行;如果您通过MPI_Comm_rank
查询当前进程的排名,您将得到0-15。
等级是用来区分进程的。在基本的应用程序中,你可能会有一个等级为0的“主”进程,它会将消息发送给等级为1-15的“次”进程。对于更高级的应用,您可以使用等级进一步划分工作负载(例如,0等级主进程,1-7执行功能A,8-15执行功能B)。
https://stackoverflow.com/questions/5399110
复制相似问题