我已经在具有8个内核的Ubuntu 10.10服务器上安装了Sun Grid Engine(版本6.2u5)。 为了能够保留多个插槽,我有一个并行环境(PE)设置如下:
pe_name serial slots 999 user_lists NONE xuser_lists NONE start_proc_args /bin/true stop_proc_args /bin/true allocation_rule $pe_slots control_slaves FALSE job_is_first_task TRUE urgency_slots min accounting_summary FALSE
这与相关服务器上的all.q相关联(让我们称之为服务器A)。 但是,当我提交一个使用4个线程的作业,例如qsub -q all.q@A -pe serial 4 mycmd.sh,它永远不会被调度,我从qstat得到以下推理:
不能运行PE“串行”,因为它只提供0个插槽
为什么SGE说“serial”只提供0个插槽,因为我指定的服务器上有8个插槽可用(服务器A)?
有问题的队列是这样configuration的(服务器名称已更改):
qname all.q hostlist @allhosts seq_no 0 load_thresholds np_load_avg=1.75 suspend_thresholds NONE nsuspend 1 suspend_interval 00:05:00 priority 0 min_cpu_interval 00:05:00 processors UNDEFINED qtype BATCH INTERACTIVE ckpt_list NONE pe_list make orte serial rerun FALSE slots 1,[D=32],[C=8], \ [B=30],[A=8] tmpdir /tmp shell /bin/sh prolog NONE epilog NONE shell_start_mode posix_compliant starter_method NONE suspend_method NONE resume_method NONE terminate_method NONE notify 00:00:60 owner_list NONE user_lists NONE xuser_lists NONE subordinate_list NONE complex_values NONE projects NONE xprojects NONE calendar NONE initial_state default s_rt INFINITY h_rt 08:00:00 s_cpu INFINITY h_cpu INFINITY s_fsize INFINITY h_fsize INFINITY s_data INFINITY h_data INFINITY s_stack INFINITY h_stack INFINITY s_core INFINITY h_core INFINITY s_rss INFINITY h_rss INFINITY s_vmem INFINITY h_vmem INFINITY,[A=30g], \ [B=5g]
分配规则$pe_slots要求您提交与任何计算机上的核心数量大小完全相同的作业。 将分配规则更改为$fill_up或尝试提交需要$fill_up或32个内核的作业。
我不知道答案,但是可以通过运行qalter -wp和qalter -wv来获得更多关于为什么Grid Engine没有安排任务的qalter -wv 。 唯一需要注意的是,至less在某些版本中, qalter -wv并不会忽略独占资源。