【问题标题】:Is there a DRMAA Java library that works with Torque/PBS?是否有适用于 Torque/PBS 的 DRMAA Java 库?
【发布时间】:2010-04-26 16:51:13
【问题描述】:

有谁知道已知可与 PBS/Torque 集群软件一起使用的 DRMAA-API 的 Java 实现?

这背后的背景:我想使用符合 DRMAA 的 API 从 Java 向新设置的 linux 集群提交作业。集群由PBS/Torque 管理。 Torque 包括用于 Torque/PBS 的 PBS DRMAA 1.0 库,其中包含 DRMA-C 绑定并在 libdrmaa.so 和 .a 二进制文件中提供。我知道 Sun Grid Engine 包含一个提供 Java-DRMAA API 的 drmaa.jar。事实上,我选择使用 SGE,但决定先尝试 PBS。

该决定背后的理论是:
“DRMAA 是一种标准,因此 Java API 只需要符合标准的 drmaa-c 绑定。”但是,我找不到这样的“通用 DRMAA-C-java API”,现在假设这个假设是错误的,并且 Java 库是特定于引擎的。

编辑: 我刚刚尝试了来自 sun Grid Engine 包的 drmaa.jar,并尝试将它与 pbs libdrmaa.so 交叉使用。毫不奇怪,那失败了(JNI unsatisfied link error)。

结论:这样不行!经过一番搜索,我只看到以下几个选项:

  1. 在 Globus 上安装 GridWay 工具包。安装在 PBS 之上, GridWay 声称在 爪哇。对我来说看起来太复杂了 设置。
  2. 报废 DRMAA,通过以下方式提交给 PBS 调用系统命令 qsub, qstat, 等来自Java。简单但并非如此 好的。
  3. 自己实现一个 drmaa 绑定。 太复杂了……

  4. 切换到 Grid Engine。我的通用电气 意见优于 PBS 关于语言绑定。

我倾向于选择选项 2。或 4。有什么建议吗?

【问题讨论】:

  • 不得不接受我自己的答案作为正确答案可能会令人沮丧;)

标签: java cluster-computing pbs grid-computing drmaa


【解决方案1】:

经过一番搜索,看来我必须自己写一些东西。似乎还没有最佳答案,但它可以作为那些尝试相同的人的警告。

问这些问题的最佳地点可能是 Torque 邮件列表:www.clusterresources.com/resources/mailing-lists.php

首先,您不能只使用任何 DRMAA-Java 库并将其与任何 DRMAA-C 实现一起使用的原因是: DRMAA 描述了资源控制的接口,而不是它是如何实现的。供应商可以使用 DRMAA-C 实现并仅使用这些功能,但他们不必这样做。它可以使用引擎中的任何东西。因此,一条重要信息是:如果您需要某些语言绑定,请确保它们适用于所有所需的语言。

关于提到的选项:

  1. 使用 GridWay/Globus 工具包:http://www.gridway.org/doku.php?id=start 优点:Gridway 是一个元调度器,支持许多资源管理系统(SGE、PBS、...)。可能是目前让 DRMAA 界面与 PBS 一起工作的唯一方法。 缺点:这似乎是层级和复杂性的膨胀。没有这方面的经验。

  2. 使用系统命令、qsub、qstat、qdel。 优点:快速破解 缺点:肮脏的 hack,需要为输出实现解析器,如果出现问题可能不会注意到,从 stdin/stdout/stderr 传递消息,不可移植

  3. 使用 JNI 应该可以为 drmaa.c 中的每个 c 函数创建一个绑定 优势:将提供完整的 drmaa 实现(希望如此) 缺点:涉及编译代码,大量手动包装 C 函数(也许这可以自动化)

  4. 切换到另一个网格引擎。可能,我们之前应该进行过这种分析。但是,我们已经有另一个 Torque 集群,并且有这方面的经验。运营两个将创建更多异构的基础架构。

  5. 更改来自不同供应商的现有 drmaa 库。不知道这是否可行……我们也会研究一下。

【讨论】:

    【解决方案2】:

    我也有这个问题。 这是一个为 PBS/Torque 创建面向对象的 C++ 和 Java DRMAA 绑定的项目。

    缺点是您必须能够加载从 C++ 代码创建的库,因此它不是只能作为 .jar 文件分发的“纯 Java”实现,期望最终用户提供“ libdrmaa.so" 本身。

    对于它的价值,这里是: https://github.com/bryan-lunt/PBSJavaDRMAA/

    【讨论】:

      【解决方案3】:

      你有没有决定如何处理这个?您是否设法让 Java DRMAA 绑定与 Torque/PBS 一起使用?我正在寻找一些在 Torque/PBS 系统上运行的 Java DRMAA 代码,如果你已经完成了艰苦的工作,我很乐意窃取它。

      但是,如果你没有,做一些 Java 绑定应该不会太糟糕,如果没有其他人做,我会做。几年前,我成功地修改了 SGE 的 DRMAA Java 绑定,以使用 Xgrid 的新 DRMAA 实现(现在已经过时,但可能很快就会恢复)。

      我什至写了一篇关于我的经历的简短博客文章(包括一般说明的链接):

      http://edbaskerville.com/2006/07/11/java-bindings-working/

      【讨论】:

      • 您好,很抱歉,我们最终决定切换到(Oracle/sun)开源版本的 GridEngine。它只是被证明是更完整的系统。
      • 有道理。我要移植的代码是用于 Sun Grid Engine(可能很快将成为 Oracle 闭源代码),它是 Java 绑定的起源。我将继续使用 Torque/PBS 绑定,并在/如果我让它们工作时在此处发布。
      猜你喜欢
      • 2023-03-28
      • 2015-04-19
      • 1970-01-01
      • 2012-03-08
      • 2019-08-11
      • 2011-05-08
      • 2011-12-17
      • 1970-01-01
      相关资源
      最近更新 更多