Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MPI如何决定其排名大小 我是MPI初学者,如果我在C++中编写这样的代码,系统会如何判定程序将有多少个等级? 这与我们在面向对象语言中遵循的逻辑不同,当您定义数组时,您可以精确地知道数组的大小。 他们在MPI中使用什么机制让系统决定有多少级别和整个大小? 它灵活吗?由机械力决定?或者只是在调用时自动生成 int main(int argc, char *argv[]){ MPI_Init(NULL, NULL); int size, rank; MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (rank == 4) master(); else slave(rank); MPI_Finalize(); return 0;}_C++_Mpi_Computer Science_Distributed System - Fatal编程技术网

MPI如何决定其排名大小 我是MPI初学者,如果我在C++中编写这样的代码,系统会如何判定程序将有多少个等级? 这与我们在面向对象语言中遵循的逻辑不同,当您定义数组时,您可以精确地知道数组的大小。 他们在MPI中使用什么机制让系统决定有多少级别和整个大小? 它灵活吗?由机械力决定?或者只是在调用时自动生成 int main(int argc, char *argv[]){ MPI_Init(NULL, NULL); int size, rank; MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (rank == 4) master(); else slave(rank); MPI_Finalize(); return 0;}

MPI如何决定其排名大小 我是MPI初学者,如果我在C++中编写这样的代码,系统会如何判定程序将有多少个等级? 这与我们在面向对象语言中遵循的逻辑不同,当您定义数组时,您可以精确地知道数组的大小。 他们在MPI中使用什么机制让系统决定有多少级别和整个大小? 它灵活吗?由机械力决定?或者只是在调用时自动生成 int main(int argc, char *argv[]){ MPI_Init(NULL, NULL); int size, rank; MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (rank == 4) master(); else slave(rank); MPI_Finalize(); return 0;},c++,mpi,computer-science,distributed-system,C++,Mpi,Computer Science,Distributed System,这里有一个很好的参考: 下面是一个教程: 这是一个相关的问题 回答你的问题: Rank是(逻辑)进程号(如线程id) Size是进程总数(已分配、并行) 当您使用MPI_Init时,请参见:观察如何设置进程数 mpirun -n 4 ./parhello 您可以使用“-n”构造argv[]数组,并为MPI_init调用指定世界大小 还可以使用环境变量设置世界大小 借用另一个问题/答案: MPI_Comm_size返回通信器的大小。在我们的例子中, MPI_COMM

这里有一个很好的参考:

下面是一个教程:

这是一个相关的问题

回答你的问题:

  • Rank是(逻辑)进程号(如线程id)

  • Size是进程总数(已分配、并行)

当您使用MPI_Init时,请参见:观察如何设置进程数

mpirun -n 4 ./parhello
您可以使用“-n”构造argv[]数组,并为MPI_init调用指定世界大小

还可以使用环境变量设置世界大小

借用另一个问题/答案:

MPI_Comm_size返回通信器的大小。在我们的例子中, MPI_COMM_WORLD(由MPI为我们构建)包含所有 作业中的进程,因此此调用应返回 为作业请求的进程

MPI_Comm_rank返回通信器中进程的级别。每个 通讯器内的进程被分配一个递增的等级 从零开始。流程的等级主要用于 发送和接收消息时的标识目的


秩用于区分进程之间的差异。您可能有一个“主”进程(秩=0),它向秩1-15上的“从”应用程序发送消息。或者您可以使用其他拓扑来划分工作负载。

这里有一个很好的参考:

下面是一个教程:

这是一个相关的问题

回答你的问题:

  • Rank是(逻辑)进程号(如线程id)

  • Size是进程总数(已分配、并行)

当您使用MPI_Init时,请参见:观察如何设置进程数

mpirun -n 4 ./parhello
您可以使用“-n”构造argv[]数组,并为MPI_init调用指定世界大小

还可以使用环境变量设置世界大小

借用另一个问题/答案:

MPI_Comm_size返回通信器的大小。在我们的例子中, MPI_COMM_WORLD(由MPI为我们构建)包含所有 作业中的进程,因此此调用应返回 为作业请求的进程

MPI_Comm_rank返回通信器中进程的级别。每个 通讯器内的进程被分配一个递增的等级 从零开始。流程的等级主要用于 发送和接收消息时的标识目的

秩用于区分进程之间的差异。您可能有一个“主”进程(秩=0),它向秩1-15上的“从”应用程序发送消息。或者您可以使用其他拓扑来划分工作负载。

请参阅此答案:请参阅此答案: