0

我根据我的 CPU 配置设置了一个本地 Matlab (R2015b) 工作人员池(四核、多线程 => 总共 8 个工作人员。)

我有持续 24 小时的模拟,但我希望能够同时使用我的计算机。因此,我将自己限制为每天 4 次模拟(通过批处理发送),以便我可以同时继续工作。

我的问题是:我怎样才能在不吃掉 8 名工人的情况下排队几份工作?另一个相关的问题是,如果我将池的大小减少到 4 个工人,我还能顺利运行 Matlab 吗?

非常感谢您的回答。

4

1 回答 1

1

我想说解决您的问题的最佳方法是通过 bash 而不是 matlab 来完成。在 bash 中,您有一个名为nice的命令,它允许您降低模拟的优先级。这意味着,如果您使用计算机,您将获得动力,如果您不使用计算机,则动力用于计算。

关于你问题的第二部分。将所有作业排队的最简单方法是制作一个 bash 脚本,如下所示:

for f in $(find . -name name_of_matlab_script*)
do
nice -n 10 matlab -nodisplay <$f
done

其中 matlab 脚本的名称将被称为具有相同基础的东西,然后 start 将处理其余部分。然后它将一个接一个地运行脚本,但优先考虑您使用计算机的目的。

如果您想要更高级的调度软件,我通常使用Slurm

关于 4 名工人而不是 8 名,然后正如 Ander Biguri 在评论中所说,尽可能少,只要你不增加太多额外的时间。

于 2016-06-06T10:34:49.677 回答