我编写了一个多线程的Java代码,该代码在运行时会创建8个线程,并在这些线程上继续进行计算。我想将此作业提交到SGE群集,但是我不确定应该选择哪个并行环境(pe
)?还是我应该创建一个?我是SGE的新手。简单的方法是在串行模式下运行它,但是效率低下。
关于创建pe
,需要在哪里创建? SGE守护进程是否也需要此pe
?当我提交一个随机名称为pe
的工作时,我得到了
job rejected: the requested parallel environment "openmpi" does not exist
最佳答案
线程应用程序必须将所有插槽都放在单个节点上。因此,您需要将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管理员进行对话,而不是试图在此处证明您的题外问题。