在HPC上运行NetLogo无头,如何增加CPU使用率?

时间:2015-03-01 15:29:08

标签: netlogo hpc

我使用行为空间在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 

2 个答案:

答案 0 :(得分:2)

在评论中link your related question您尝试使用Linux进程优先级来使作业运行更快/使用更多CPU

你要求

  

CQLOAD(这又是什么意思?)

很难找到这方面的文档,但是你link to the spec of your cluster告诉我们,它的调度引擎是Sun的* Grid Engine"。 Man pages are here(您也可以在本地访问它们 - 特别是键入man qstat

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

  

输出格式

     

...

     

所有队列的标准化负载平均值的平均值           主机。为了反映每个主机不同的意义 -           取消配置的插槽数量用作重量 -           确定集群队列负载时的因素。请           请注意,只考虑具有np_load_value的主机           这个价值。当队列选择仅应用数据时           关于选定的队列在此公式中被考虑。如果           任何主机都无法提供负载值' -           NA - '打印而不是复杂的值           属性定义。

这意味着CQLOAD指示了处理器在队列中的使用情况。 Your output shows 0.84all.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 

答案 1 :(得分:0)

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

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