多节点SLURM纯Python解决方案

时间:2018-07-01 12:52:48

标签: python nodes slurm

我正在一个项目上执行SLURM群集上的多节点python脚本。解决方案应该是p2p。问题是我真的不知道从哪里开始。虽然,我应该先播放广播吗?找出为我的工作分配了哪些节点(4个节点),然后利用每个有1/4部分工作的节点(?)。每个节点都必须跟踪作业的哪一部分已经完成,对吗?我听说有人提到基于文件的解决方案,但我对此不太了解。希望你们能帮助我。另外,不应使用MPI或类似的东西。

(我应该提交的工作是读一个大文件,并处理该文件的每一行)

1 个答案:

答案 0 :(得分:0)

您说的总体任务是读取一个大文件并处理每一行。

首先,您需要一种策略来划分工作。如果磁盘速度很慢并且网络速度非常快,则只有一个进程可以读取整个文件,然后将其发送给其余文件,这很有意义,但是您更有可能希望划分读取任务。

您经常可以在没有进程之间显式通信的情况下执行这些操作。只需让第一个进程读取文件字节的前25%,然后继续读取,直到看到另一个换行符即可。第二个过程读取文件中的25%到50%,然后继续直到看到另一个换行符为止。依此类推。

这样,您要做的就是在启动时告诉进程三个事实:

  1. 文件路径。
  2. 将处理文件的进程数(N)。
  3. 每个特定进程的索引(0到N),以便可以推断要读取的部分。