2010-04-26 21 views
4

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

背景背景:我想使用符合DRMAA的API将作业提交给来自Java的新设置的Linux集群。该集群由PBS/Torque管理。转矩包括PBS DRMAA 1.0文库用于包含DRMA-C结合的转矩/ PBS,并提供libdrmaa.so和.a二进制文件。我知道Sun网格引擎包含一个提供Java-DRMAA API的drmaa.jar。事实上,我选择使用SGE,但它决定先尝试PBS。

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

编辑: 我刚刚从sun grid引擎包中尝试了drmaa.jar,并试图与pbs libdrmaa.so交叉使用它。毫不奇怪,这失败了(JNI不满意的链接错误)。

结论:它不会那样工作!经过一番搜索,我发现只有这几个选项:

  1. 安装GridWay on Globus 工具包。安装在PBS上, GridWay声称在 Java中提供DRMAA。看起来太复杂了,我的 设置。
  2. Scrap DRMAA,由PBS提交 从Java调用系统命令qsub,qstat, 等。简单但不是如此 不错。
  3. 自己实施drmaa绑定。 太复杂...

  4. 切换到网格引擎。在我的 意见中,GE在语言绑定方面优于PBS 。

我倾向于更喜欢选项2.或4.任何建议?

+0

不得不接受我自己的答案是正确的,可令人沮丧;) – Michael 2010-04-30 13:18:59

回答

3

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

问这些问题的最好的地方是可能的扭矩邮件列表: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。 优势:快速破解 缺点:肮脏的黑客,需要实现解析器的输出,可能不会注意到,如果出现错误,绕过从标准输入/输出/标准错误,不便于携带

  3. 使用JNI应该是可能的消息为drmaa.c中的每个c函数创建绑定 优点:将提供完整的drmaa实现(希望) Disadvanteges:涉及编译代码,很多C函数的手动打包(也许这可以自动化)

  4. 切换到另一个网格引擎。可能的话,我们之前应该做过这样的分析。但是,我们已经有另一个扭矩集群,并且有这方面的经验。经营两个将创建更多的异构基础设施。

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

1

你有没有决定该怎么做?您是否设法使用Torque/PBS的Java DRMAA绑定?我正在寻找一些Java DRMAA代码在Torque/PBS系统上工作,如果您已经完成了这项艰苦的工作,我很乐意去偷它。

但是,如果你还没有,那么制作一些Java绑定应该不会太坏,如果没有其他人做,我会这样做。几年前,我成功修改了DRMAA Java绑定,让SGE与Xgrid的新DRMAA实现一起工作(现在已过时,但可能很快就会恢复)。

我甚至写了一篇关于我的经验,一个简短的博客文章(包括链接到一般说明):

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

+0

你好,抱歉,我们终于决定改用(甲骨文/ Sun)开放源版本GridEngine。它变成了更完整的系统。 – Michael 2010-09-09 09:45:38

+0

有道理。我正在移植的代码是Sun Grid Engine(可能很快将成为Oracle闭源),这是Java绑定的起源。我会继续与Torque/PBS绑定,并在这里发帖/如果让他们工作。 – 2010-09-20 21:26:50

2

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

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

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

相关问题