有人知道已知可与 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)。
结论:这样不行!经过一番搜索,我只看到以下几个选项:
- 在 Globus 工具包上安装 GridWay。安装在 PBS 之上的 GridWay 声称以 Java 提供 DRMAA。对于我的设置来说,看起来太复杂了。
- 报废 DRMAA,通过从 Java 调用系统命令 qsub、qstat 等提交给 PBS。简单但不是很好。
自己实现一个 drmaa 绑定。太复杂了...
切换到网格引擎。在我看来,GE 在语言绑定方面优于 PBS。
我倾向于选择选项 2。或 4。有什么建议吗?