运行 HPC 上的 NetLogo headless,如何增加 CPU 使用率?

Running NetLogo headless on HPC, how to increase CPU usage?

我在使用行为空间的 HPC 上 运行 NetLogo 毫无头绪。 HPC 上的一些非 NetLogo 其他用户向我抱怨说我没有在很小程度上利用 CPU 核心,应该增加。我不知道该怎么做,请帮忙。我猜 renice 不会有任何帮助。

代码:

#!/bin/bash
#$ -N NewPara3-d
#$ -q all.q
#$ -pe mpi 30
/home/abhishekb/netlogo/netlogo-5.1.0/netlogo-headless.sh \
    --model /home/abhishekb/models/Test_results3-d.nlogo \
    --experiment 3-d \
    --table /home/abhishekb/csvresults/Test_results3-d.csv 

我不是专家,但 OpenMole 似乎支持 cluser 上的调度程序。

OpenMole 是 Embed your NetLogo model 在许多环境中透明的很好的解决方案。它可以解决...

在评论中,您 尝试使用 linux 进程优先级来使作业 运行 更快/使用更多 CPU

那你问

CQLOAD (what does it mean too?)

这方面的文档很难找到,但是您 link to the spec of your cluster, which tells us that the scheduling engine for it is Sun's *Grid Engine". Man pages are here(您也可以在本地访问它们 - 特别是键入 man qstat

如果您搜索 qstat -g c,您将看到所描述的输出。特别是,第二列 (CQLOAD) 描述为:

OUTPUT FORMATS

...

an average of the normalized load average of all queue hosts. In order to reflect each hosts different signifi- cance the number of configured slots is used as a weight- ing factor when determining cluster queue load. Please note that only hosts with a np_load_value are considered for this value. When queue selection is applied only data about selected queues is considered in this formula. If the load value is not available at any of the hosts '- NA-' is printed instead of the value from the complex attribute definition.

这意味着 CQLOAD 指示队列中处理器的利用率。 all.q 中处理器的平均负载为 84%。这似乎并不太低。

您说您的同事抱怨您的流程使用不足 CPU。我不确定这是基于什么,但我想知道这是否只是因为您使用了很多节点(即使只是很短的时间)。

您可能想尝试使用更少的节点(除非您的结果非常慢)- 这可以通过更改行 #$ -pe mpi 30 来实现 - 也许可以减少数字 30。您可以通过计算 1 个模型 运行 在您的计算机上花费的时间然后使用

来计算出您需要多少个节点(粗略)
N = (time to run 1 job) * number of runs in experiment) / time you want the run to take