【问题标题】:SGE : Parallel Environment for a multithreaded java codeSGE:多线程 Java 代码的并行环境
【发布时间】:2012-06-22 11:12:39
【问题描述】:

我编写了一个多线程 java 代码,它在运行时创建 8 个线程,并且在这些线程上继续计算。我想将此作业提交到 SGE 集群,但我不确定我应该选择哪个并行环境 (pe)?还是我应该创建一个?我是 SGE 的新手。简单的方法是以串行模式运行它,但效率很低。

关于创建pe,需要在哪里创建? SGE 守护进程是否也需要这个 pe ?当我提交了一个随机名称为pe 的工作时,我得到了

 job rejected: the requested parallel environment "openmpi" does not exist

【问题讨论】:

  • Grid Engine 安装提供的并行环境是(非常)特定于安装的。你应该问你的系统管理员这个问题。
  • @HighPerformanceMark 我会问管理员,但还是哪种 pe,最适合多线程 java 代码?虽然我可能无法将其作为特定安装来获取。
  • 您需要一个具有allocation_rule$pe_slotsjob_is_first_taskTRUE 的PE。不过,这不是编程问题。

标签: java multithreading parallel-processing sungridengine


【解决方案1】:

线程应用程序必须在单个节点上获取所有插槽。这就是为什么您需要将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 管理员交谈,而不是试图在这里证明您的题外话是正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多