- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
有人知道已知可与 PBS/Torque 集群软件一起使用的 DRMAA-API 的 Java 实现吗?
这背后的背景:我想使用符合 DRMAA 的 API 从 Java 向新设置的 linux 集群提交作业。集群由 PBS/Torque 管理. Torque 包括用于 Torque/PBS 的 PBS DRMAA 1.0 库,它包含 DRMA-C 绑定(bind)并在 libdrmaa.so 和 .a 二进制文件中提供。我知道 Sun 网格引擎包含一个提供 Java-DRMAA API 的 drmaa.jar。事实上,我选择使用 SGE,但决定先尝试 PBS。
该决定背后的理论是:
“DRMAA 是一个标准,因此 Java API 只需要符合标准的 drmaa-c 绑定(bind)。”但是,我找不到这样的“通用 DRMAA-C-java API”,现在假设这个假设是错误的,并且 Java 库是特定于引擎的。
编辑:我刚刚试验了 sun grid 引擎包中的 drmaa.jar,并尝试将它与 pbs libdrmaa.so 交叉使用。毫不奇怪,失败了(JNI 不满意的链接错误)。
结论:这样不行!经过一番搜索后,我只看到这几个选项:
对自己实现 drmaa 绑定(bind)。太复杂了……
切换到 Grid Engine。通用电气在我意见优于PBS关于语言绑定(bind)。
我倾向于选择选项 2 或 4。有什么建议吗?
最佳答案
经过更多搜索,看来我必须自己写点东西了。似乎还没有最佳答案,但它可以作为那些尝试相同的人的警告。
提出这些问题的最佳地点可能是 Torque 邮件列表:www.clusterresources.com/resources/mailing-lists.php
首先,您不能只使用任何 DRMAA-Java 库并将其与任何 DRMAA-C 实现一起使用的原因是:DRMAA 描述了资源控制的接口(interface),而不是它是如何实现的。供应商可以使用 DRMAA-C 实现并仅使用这些功能,但他们不必这样做。它可以使用引擎中的任何东西。因此,一条重要信息是:如果您需要某些语言绑定(bind),请确保它们适用于所有需要的语言。
关于提到的选项:
使用 GridWay/Globus 工具包:http://www.gridway.org/doku.php?id=start优点:Gridway 是一个元调度器,支持许多资源管理系统(SGE、PBS 等)。可能是目前获得 DRMAA 接口(interface)以与 PBS 一起工作的唯一方法。缺点:这似乎是层次和复杂性的膨胀。没有这方面的经验。
使用系统命令,qsub、qstat、qdel。优势:快速破解缺点:肮脏的 hack,需要为输出实现解析器,如果出现问题可能不会注意到,从 stdin/stdout/stderr 传递消息,不可移植
使用 JNI 应该可以为 drmaa.c 中的每个 c 函数创建一个绑定(bind)优势:将提供完整的 drmaa 实现(希望如此)缺点:涉及编译代码,大量手动包装 C 函数(也许这可以自动化)
切换到另一个网格引擎。可能,我们之前应该进行过这种分析。然而,我们已经有了另一个 Torque 集群,并且有这方面的经验。运营两个将创建更多异构基础架构。
更改来自不同供应商的现有 drmaa 库。不知道这是否可行……我们也会对此进行调查。
关于java - 是否有适用于 Torque/PBS 的 DRMAA Java 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2715243/
我写了一个小的 c 文件来测试 DRMAA,但它一直告诉我我使用的 DRMAA 函数没有定义。我在 C 代码中包含了 drmaa.h 文件。当我使用 -idrmaa 时出现此错误: [mkatouzi
我正在使用drmaa-python向 SGE (Sun Grid Engine) 提交和监控来自 SGE (Sun Grid Engine) 的作业。我在 GUI 中有以下状态 队列中的事件作业 正在
我正在使用snakemake v. 5.7.0。当在本地启动或通过 snakemake --drmaa 提交给 SLURM 时,管道可以正确运行: 作业被提交,一切都按预期进行。但是,在后一种情况下,
我想等待外部提交的作业完成。 我的第一个想法是通过调用 qstat 获取 jobID,然后执行 session.wait(jobID, Session.TIMEOUT_WAIT_FOREVER);。但
有人知道已知可与 PBS/Torque 集群软件一起使用的 DRMAA-API 的 Java 实现吗? 这背后的背景:我想使用符合 DRMAA 的 API 从 Java 向新设置的 linux 集群提
DRMAA 如何运作?使用 DRMAA 的本地 Java 程序是否可以通过 SSH 在远程集群上启 Action 业(这样就不需要在服务器端安装任何内容)? 背景:我正在 Java/Eclipse R
我是一名优秀的程序员,十分优秀!