Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
C++ 在MPI通讯器之间复制数据_C++_C_Mpi - Fatal编程技术网

C++ 在MPI通讯器之间复制数据

C++ 在MPI通讯器之间复制数据,c++,c,mpi,C++,C,Mpi,我已经将MPI_COMM_WORLD拆分为两个子通讯器,我想将分布在MPI_COMM_WORLD上的一组数据传输到两个子通讯器。在MPI-1.1中实现这一点的最佳方法是什么 例如,有一个数组A=[1 2 3 4 5 6 7 8]分布在MPI通信世界中的四个MPI进程中,如下所示 rank 0: [1 2] rank 1: [3 4] rank 2: [5 6] rank 3: [7 8] 我将MPI_COMM_WORLD拆分为两个子通讯器,每个子通讯器包含两个MPI进程,并希望我的数据如

我已经将MPI_COMM_WORLD拆分为两个子通讯器,我想将分布在MPI_COMM_WORLD上的一组数据传输到两个子通讯器。在MPI-1.1中实现这一点的最佳方法是什么

例如,有一个数组
A=[1 2 3 4 5 6 7 8]
分布在MPI通信世界中的四个MPI进程中,如下所示

rank 0: [1 2] 
rank 1: [3 4] 
rank 2: [5 6] 
rank 3: [7 8]
我将MPI_COMM_WORLD拆分为两个子通讯器,每个子通讯器包含两个MPI进程,并希望我的数据如下所示:

subcommunicator1:

    rank 0: [1 2 3 4]
    rank 1: [5 6 7 8]

subcommunicator2:

    rank 0: [1 2 3 4]
    rank 1: [5 6 7 8]


没有一种方法可以将数据从一个通讯器发送到另一个通讯器。在MPI中,通讯器专门设计用于包含组内的通讯。在您的情况下,您需要在拆分
MPI\u COMM\u WORLD
之前分发数据。如何做到这一点将取决于您的数据和期望的分布。您可能需要查看
MPI\u分散
MPI\u聚集
,或者两者兼而有之。

没有一种方法可以将数据从一个通信器发送到另一个通信器。在MPI中,通讯器专门设计用于包含组内的通讯。在您的情况下,您需要在拆分
MPI\u COMM\u WORLD
之前分发数据。如何做到这一点将取决于您的数据和期望的分布。您可能需要查看
MPI\u分散
MPI\u聚集
,或者两者兼而有之。

没有一种方法可以将数据从一个通信器发送到另一个通信器。在MPI中,通讯器专门设计用于包含组内的通讯。在您的情况下,您需要在拆分
MPI\u COMM\u WORLD
之前分发数据。如何做到这一点将取决于您的数据和期望的分布。您可能需要查看
MPI\u分散
MPI\u聚集
,或者两者兼而有之。

没有一种方法可以将数据从一个通信器发送到另一个通信器。在MPI中,通讯器专门设计用于包含组内的通讯。在您的情况下,您需要在拆分
MPI\u COMM\u WORLD
之前分发数据。如何做到这一点将取决于您的数据和期望的分布。你可能需要看看
MPI_SCATTER
MPI_GATHER
,或者两者兼而有之。

有一个网站提供了一些非常好的教程:(虽然它是由“Wes”编写的,但它和我不一样)没有一种方法可以将数据从一个通讯器发送到另一个通讯器。当然,每个进程在
MPI\u COMM\u WORLD
中保留其成员资格(和等级),以便消息可以在不同(子)通信者的进程之间继续传递?还是我错过了什么?我很久没有使用团体和交流者了。当然,马克,你是对的。创建子通讯器后,可以继续在原始通讯器上发送数据。关键是,你必须在
MPI\u COMM\u WORLD
上进行这种数据传输,而不是在你创建的其他通讯器上。韦斯利,谢谢。我希望有一种半自动的方法。我来晚了,我想把MPI_COMM_WORLD和subcommunicator*和一个Intercommunicator(
MPI_intercomm_create
)链接起来可能会有帮助。有一个网站提供了一些非常好的教程:(虽然它是由“Wes”编写的,但它和我不一样)没有一种方法可以将数据从一个通讯器发送到另一个通讯器。当然,每个进程在
MPI\u COMM\u WORLD
中保留其成员资格(和等级),以便消息可以在不同(子)通信者的进程之间继续传递?还是我错过了什么?我很久没有使用团体和交流者了。当然,马克,你是对的。创建子通讯器后,可以继续在原始通讯器上发送数据。关键是,你必须在
MPI\u COMM\u WORLD
上进行这种数据传输,而不是在你创建的其他通讯器上。韦斯利,谢谢。我希望有一种半自动的方法。我来晚了,我想把MPI_COMM_WORLD和subcommunicator*和一个Intercommunicator(
MPI_intercomm_create
)链接起来可能会有帮助。有一个网站提供了一些非常好的教程:(虽然它是由“Wes”编写的,但它和我不一样)没有一种方法可以将数据从一个通讯器发送到另一个通讯器。当然,每个进程在
MPI\u COMM\u WORLD
中保留其成员资格(和等级),以便消息可以在不同(子)通信者的进程之间继续传递?还是我错过了什么?我很久没有使用团体和交流者了。当然,马克,你是对的。创建子通讯器后,可以继续在原始通讯器上发送数据。关键是,你必须在
MPI\u COMM\u WORLD
上进行这种数据传输,而不是在你创建的其他通讯器上。韦斯利,谢谢。我希望有一种半自动的方法。我来晚了,我想把MPI_COMM_WORLD和subcommunicator*和一个Intercommunicator(
MPI_intercomm_create
)链接起来可能会有帮助。有一个网站提供了一些非常好的教程:(虽然它是由“Wes”编写的,但它和我不一样)没有一种方法可以将数据从一个通讯器发送到另一个通讯器。当然,每个进程在
MPI\u COMM\u WORLD
中保留其成员资格(和等级),以便消息可以在不同(子)通信者的进程之间继续传递?还是我错过了什么?我很久没有使用团体和交流者了。当然,马克,你是对的。创建子通讯器后,可以继续在原始通讯器上发送数据。关键是,你必须在
MPI\u COMM\u WORLD
上进行这种数据传输,而不是在你创建的其他通讯器上。韦斯利,谢谢。我希望有一种半自动的方法。我迟到了,我想链接MPI_COMM_WO