当前位置:  开发笔记 > 编程语言 > 正文

C / C ++ MPI:是否需要级联MPI_BCasts?

如何解决《C/C++MPI:是否需要级联MPI_BCasts?》经验,为你挑选了0个好方法。

我有一个关于级联MPI_Bcast调用的问题,我想知道在想要分配不同的数据块(将发送线程彼此立即更改为所有其他线程)分配时是否有什么需要牢记的问题。

试想像这样:

double buff=12345; // value is not important for this example
for (i=0; i i) {
        // do something that can need much more time on some threads than on others
    }
}

我希望这个示例代码可以解释这种情况。基本上,所有线程上都有一个for循环,并且在每次迭代中使用不同的发送线程,这里可能的问题是,每个线程花费不同的时间量才能再次到达MPI_Bcast。在某些接收线程可能仍在从最后一个发送者接收消息的同时,是否可以将发送线程准备就绪?我是否需要MPI_Barrier,或者可以很清楚地知道每个线程都可以到达每个调用一次,所以我可以级联任意多个Bcast吗?

编辑:当所有线程之间都没有循环,而是通过某种其他方式遍历发送线程列表时,怎么办呢?这样一来,可以连续多次使用相同的sendign线程?那么是否有可能混合使用某些东西,也许接收线程仅在等待ID为i的线程的信息时不区分该线程的第一个和第二个或以下Bcast中的一个?

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有