【问题标题】:Dividing work using MPI使用 MPI 划分工作
【发布时间】:2013-12-09 04:48:19
【问题描述】:

我坚持使用 MPI 将多个文件划分到多个节点的方法。

方法1
假设我有 5 个文件和 5 个节点,所有文件都存在于一个节点上。现在,有什么方法可以引导节点读取我想要的文件而不发送或接收任何数据?
例如,
File1 -> 由 node1 读取(此节点包含所有数据)
File2-> 由 node2 读取
File3-> 由 node3 读取
File4-> 由 node4 读取
File5-> 由 node5 读取
(node2,3,4,5从node1读取数据)

方法2
我的替代方法是读取 node1 上的所有文件,然后开始向 node2、3、4 和 5 发送数据。

如果我应该遵循任何其他好的方法,请告诉我。
提前致谢。

【问题讨论】:

    标签: c++ mpi


    【解决方案1】:

    两者都是可能的,这取决于您的需要。在不了解有关您尝试做什么的大量信息的情况下,您需要问自己的问题是所有文件都适合一个节点上的内存吗?如果是,则使用方法 2 可能有意义,如果您无法将内存中的所有数据都放在单个节点上,则使用方法 1。

    方法 1 看起来像

    if(rank == 1){
    //load file1 
    }
    

    【讨论】:

    • 感谢您的回复。我在任何节点上都有足够的内存来读取所有数据,但如果你能指导我如何使用一个小的 sn-p 代码来实现这一点,那将是非常有帮助的。
    • 确定在初始化 mpi 时需要使用分配给每个节点的int rank
    • 谢谢我也在考虑这个方向和最后一个问题:如果node2想从node1读取数据我应该使用“MPI_FILE_READ”?
    • 谢谢!我得到了关于 MPI IO 的很好的教程,通过它我遵循了第一种方法,它现在正在工作。我接受你的回答,因为它暗示了方法 1 是可行的 :)
    猜你喜欢
    • 1970-01-01
    • 2016-12-28
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 2016-11-12
    • 2014-10-12
    • 1970-01-01
    相关资源
    最近更新 更多