我编写了一个多线程java代码,在运行时会创建8个线程并继续在这些线程上进行计算。我想将此作业提交给SGE群集,但我不确定应该选择哪个并行环境(pe
)?或者我应该创建一个?我是SGE的新手。简单的方法是以串行模式运行它,但效率很低。
关于创建pe
,需要在哪里创建? SGE守护神还应该有这个pe
吗?当我提交一份名为pe
的随机名称的作业时,我得到了
job rejected: the requested parallel environment "openmpi" does not exist
答案 0 :(得分:2)
线程应用程序必须在单个节点上获取所有插槽。这就是为什么您需要将allocation_rule
设置为$pe_slots
的并行环境。并行环境由SGE管理员使用qconf -ap PE_name
配置。作为用户,您只能使用qconf -spl
获取可用PE的列表,并且可以使用qconf -sp PE_name
查询特定PE的配置。您可以使用以下(ba)sh
脚本遍历所有PE并查看其分配规则:
for pe_name in `qconf -spl`; do
echo $pe_name
qconf -sp $pe_name | grep allocation_rule
done
但是你应该已经在和你的SGE管理员交谈,而不是试图在这里证明你的话题。