我编写了一个多线程的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管理员进行对话,而不是试图在此处证明您的题外问题。

09-11 17:33