【发布时间】:2019-03-06 02:45:45
【问题描述】:
我是分布式操作系统的新手。而且我需要用超级计算机训练多种机器学习模型。我需要多次运行相同的训练脚本,并且每次运行都使用不同的命令行参数传递脚本。我可以通过使用 mpiexec 来实现这一点,以便我可以使用不同的输入并行训练多个模型吗?
我找到了mpi的单程序多数据模型,但是不知道对应的命令。
我想在集群中的计算节点之间并行运行以下行。
python train.py arg > log.out # arg is the argument that differs for each node
但是,如果我正在使用:
mpiexec train.py arg >log.out
它只会使用相同的命令行参数运行 train.py:arg 并行多次。
有人可以指出正确的方法吗?谢谢!
【问题讨论】:
-
谢谢,我们当前的解决方案是使用 shell 脚本在 while 循环中提交所有类似的作业,并将不同的参数传递给作业的每个可执行文件。这有点类似于后台进程在这篇文章中所做的。
-
您是否需要将来自
train.py进程的任何数据与任何其他train.py进程共享,还是它们都完全独立,只有arg 不同? -
@EdSmith 每个节点共享部分训练数据。但是每个节点的处理结果之间没有依赖关系。