我正在一个项目上执行SLURM群集上的多节点python脚本。解决方案应该是p2p。问题是我真的不知道从哪里开始。虽然,我应该先播放广播吗?找出为我的工作分配了哪些节点(4个节点),然后利用每个有1/4部分工作的节点(?)。每个节点都必须跟踪作业的哪一部分已经完成,对吗?我听说有人提到基于文件的解决方案,但我对此不太了解。希望你们能帮助我。另外,不应使用MPI或类似的东西。
(我应该提交的工作是读一个大文件,并处理该文件的每一行)
答案 0 :(得分:0)
您说的总体任务是读取一个大文件并处理每一行。
首先,您需要一种策略来划分工作。如果磁盘速度很慢并且网络速度非常快,则只有一个进程可以读取整个文件,然后将其发送给其余文件,这很有意义,但是您更有可能希望划分读取任务。
您经常可以在没有进程之间显式通信的情况下执行这些操作。只需让第一个进程读取文件字节的前25%,然后继续读取,直到看到另一个换行符即可。第二个过程读取文件中的25%到50%,然后继续直到看到另一个换行符为止。依此类推。
这样,您要做的就是在启动时告诉进程三个事实: