0

我是 slurm 集群上的用户,该集群被配置为考虑每个物理内核都有两个 CPU 进行分配。默认情况下,Matlab 每个物理内核最多生成一个线程,因为 Mathworks 已确定 Matlab 使用超线程没有任何好处。那么我是否适合为每个任务/parpool 工作程序请求两个 CPU,即使我只会生成一半的线程数?例如,如果我有一份需要 10 名工人的工作,我会说-c 20

4

1 回答 1

0

你可以这样做。但是如果你的集群配置正确,它应该知道每个核心有两个硬件线程,并且输出

$ sinfo -e -o "%N %z"

应该

nodename x:x:2

如果是这种情况,那么另一种方法是使用

--ntasks=10
--ntasks-per-core=1
--nnodes=1-1

这样,脚本更便携;它可以在其他集群上使用而无需更改。

于 2014-11-14T11:55:19.423 回答