【发布时间】:2023-04-09 13:13:01
【问题描述】:
我正在尝试使用 mpi_comm_spawn & scatter 实现以下场景:
1- Master 通过一个作业生成 2 个进程。
2- 他将一个数组分散到那些产生的进程中。
3- 生成的进程接收分散的数组排序,然后将其发回。
4- master 接收数组的排序部分。
我想知道如何执行第 2 步,到目前为止,我已经尝试过发送和接收,它们工作得很好,但我想使用 scatter 函数来完成。
编辑:这是我想在主代码中做的事情,我错过了从服务器中接收分散数组的部分
/*Master Here*/
MPI_Comm_spawn(slave, MPI_ARGV_NULL, 2, MPI_INFO_NULL,0, MPI_COMM_WORLD, &inter_comm, array_of_errcodes);
printf("MASTER Sending a message to slaves \n");
MPI_Send(message, 50, MPI_CHAR,0 , tag, inter_comm);
MPI_Scatter(array, 10, MPI_INT, &array_r, 10, MPI_INT, MPI_ROOT, inter_comm);
谢谢。
【问题讨论】:
-
你似乎误解了,我想将它们与 mpi_comm_spawn 一起使用,我没有找到任何有关如何执行的信息
-
愿意分享您的代码吗?
-
我添加了部分代码以帮助您了解我正在尝试做什么,当我生成从站的代码时,我不知道如何让他们接收我放入 MPI_Scatter 中的数据