是否有一个适用于Torque/PBS的DRMAA Java库?

是否有一个适用于Torque/PBS的DRMAA Java库?,java,cluster-computing,pbs,grid-computing,drmaa,Java,Cluster Computing,Pbs,Grid Computing,Drmaa,是否有人知道DRMAA-API的Java实现,该实现已知可用于PBS/Torque群集软件 这背后的背景:我想使用符合DRMAA的API从Java向新设置的linux集群提交作业。群集由管理。Torque包括Torque/PBS的PBS DRMAA 1.0库,该库包含DRMA-C绑定,并在libdrmaa.so和.a二进制文件中提供。我知道Sun grid引擎包含一个drmaa.jar,提供Java drmaa API。事实上,我选择使用SGE,但决定先试用PBS 该决定背后的理论是: “DRM

是否有人知道DRMAA-API的Java实现,该实现已知可用于PBS/Torque群集软件

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

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

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

结论:它不是那样工作的!经过一些搜索,我只看到以下几个选项:

  • 在Globus的顶部安装GridWay 工具箱。安装在PBS的顶部, GridWay声称将在2015年提供DRMAA JAVA对我来说太复杂了 背景
  • 报废DRMAA,提交给PBS 调用系统命令qsub,qstat, 等等,来自Java。简单但并非如此 很好
  • 自己实现一个drmaa绑定。 太复杂了

  • 切换到网格引擎。在我的 意见比PBS更重要 关于语言绑定


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

    再搜索一段时间后,看来我得自己写点东西了。目前似乎还没有最佳答案,但它可以作为对那些尝试同样方法的人的警告

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

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

    关于提及的选项:

  • 使用GridWay/Globus工具包: 优点:Gridway是一个元调度器,支持许多资源管理系统(SGE、PBS等)。目前,让DRMAA接口与PBS协同工作的唯一方法可能是。 缺点:这似乎是层次和复杂性的膨胀。我没有这方面的经验

  • 使用系统命令qsub、qstat、qdel。 优点:快速破解 缺点:肮脏的黑客,需要为输出实现解析器,可能不会注意到是否出现问题,传递来自stdin/stdout/stderr的消息,不可移植

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

  • 切换到另一个网格引擎。也许,我们以前应该做过这种分析。然而,我们已经有了另一个扭矩组,并且有这方面的经验。操作两个将创建更异构的基础设施

  • 从其他供应商处更改现有drmaa库。不知道这是否可行。。。我们也将对此进行调查


  • 你决定怎么处理这个了吗?您是否设法使Java DRMAA绑定与Torque/PBS一起工作?我想让一些Java DRMAA代码在Torque/PBS系统上运行,如果您已经完成了这项艰巨的工作,我很想偷它

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

    我甚至就我的经历写了一篇简短的博文(包括指向一般说明的链接):

    我也有这个问题。 这是一个创建面向对象C++和java DRMAA绑定的项目,用于PBS/Trime.<

    缺点是必须加载从C++代码创建的库,因此它不是一个纯java实现,只能作为.jar文件分发,期望最终用户提供“LBDRMAA。” 不管它值多少钱,这里是:


    不得不接受我自己的正确答案可能会令人沮丧;)您好,很抱歉,我们最终决定切换到(Oracle/sun)开源版本GridEngine。事实证明这是一个更完整的系统,有道理。我移植的代码是针对Sun Grid引擎的(可能很快就会成为Oracle的封闭源代码),这就是Java绑定的起源。我将继续推进Torque/PBS绑定,并在工作时/如果工作正常,将其发布到此处。