我通过以下代码使用headless NetLogo 将作业提交到HPC 服务器:
#!/bin/bash
#$ -N r20p
#$ -q all.q
#$ -pe mpi 24
/home/abhishekb/netlogo/netlogo-5.1.0/netlogo-headless.sh \
--model /home/abhishekb/models/corrected-rk4-20presults.nlogo \
--experiment test \
--table /home/abhishekb/csvresults/corrected-rk4-20presults.csv
下面是使用集群队列的快照:
qstat -g c
我想知道我能否为我的模拟增加 CQLOAD,它也意味着什么。我在网上找不到明确的解释。
CPU 使用情况检查:
qhost -u abhishekb
当我通过 gui 在我的 PC 上运行行为空间时,为任务分配高优先级使其使用近 99% 的 CPU,从而使其运行速度更快。它使用更大百分比的 CPU 处理器。我希望在这里完成同样的事情。
编辑:
编辑 2;
最佳答案
典型的 HPC 环境设计为每个 CPU 内核仅运行一个 MPI 进程(或 OpenMP 线程),因此可以访问 100% 的 CPU 时间,并且不能进一步增加。相比之下,在经典的桌面/服务器机器上,许多进程竞争 CPU 时间,确实可以通过使用 nice
设置适当的优先级来提高其中一个的性能。
CQLOAD 似乎是该计算队列的平均负载。如果您没有使用其中的所有 CPU 内核,则它不是一个有用的指标。此外,即使是您运行的每个内核的平均负载也只能转化为该 HPC 集群上代码的效率。例如,每个核心 0.7 的值意味着代码将 70% 的时间用于计算,而剩余的 30% 可能用于等待与其他计算节点通信(这也是必要的)。
归根结底,提高 HPC 集群上 CPU 使用百分比的唯一方法是优化代码。不过通常情况下,人们更关心并行扩展(即求解时间如何随 CPU 内核数量而减少)而不是 CPU 使用百分比。
关于linux - Netlogo HPC CPU 使用百分比增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28628527/