【发布时间】:2017-09-12 15:27:16
【问题描述】:
我有一个 Python 应用程序需要加载相同的大型 数组(~4 GB)并在 这个数组的块。数组开始保存到磁盘。
我通常在集群计算机上运行此应用程序 例如,10 个节点,每个节点有 8 个 计算核心和大约 32GB 的总 RAM。
最简单的方法(不起作用)是
n = 80 mpi4py。它不起作用的原因是
每个 MPI 核心将加载 4GB 映射,这将耗尽
32GB 的 RAM 导致 MemoryError。
另一种选择是 rank=0 是唯一加载的进程
4GB 阵列,并将阵列的块分配给其余部分
的 MPI 内核——但由于网络原因,这种方法很慢
带宽问题。
最好的方法是,每个节点中只加载 1 个核心
4GB 阵列,该阵列可用作共享内存
(通过multiprocessing?)每个上剩余的 7 个内核
节点。
我怎样才能做到这一点?如何让 MPI 知道节点
并使其与multiprocessing协调?
【问题讨论】:
标签: python multiprocessing mpi4py