gpt4 book ai didi

c++ - 在 C++ 中使用 MPI_Scatter - 分散在不同的通信器上

转载 作者:行者123 更新时间:2023-11-30 01:10:58 24 4
gpt4 key购买 nike

在 C++ 中,使用 MPI_Scatter 的示例是:

MPI::COMM_WORLD.Scatter(sendbuf, 100, MPI::INT, recvarr, 100,MPI::INT, root);

这会将 sendbuff 的内容分散到 100 个单独的进程中,以便在每个进程上生成 recvarr但仅在 MPI World 通信器中.

与 C 中的 MPI_Scatter 不同,C++ 版本没有用于通信器的输入。我如何修改此示例以适用于任何通信器,而不仅仅是 MPI_COMM_WORLD?

例如,假设我的通讯器名为comm。我如何在 comm 通信组而不是 MPI_COMM_WORLD 中分散 sendbuff

最佳答案

comm.Scatter(sendbuf, 100, MPI::INT, recvarr, 100,MPI::INT, root);

. 左侧的对象是 MPI 通信器参数。 MPI::COMM_WORLD 恰好是 MPI 通信器的预定义实例,对应于 C 绑定(bind)的预定义 MPI_COMM_WORLD

请注意,MPI C++ 绑定(bind)已在 MPI-3.0 中删除,因为它们没有得到充分利用,难以维护,并且存在像这样的笨拙的误解。

关于c++ - 在 C++ 中使用 MPI_Scatter - 分散在不同的通信器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36753195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com