是否有与Torque / PBS一起使用的DRMAA Java库?
作者:互联网
有人知道可以使用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引擎包含一个提供Java-DRMAA API的drmaa.jar.事实上我选择使用SGE,但决定先尝试使用PBS.
该决定背后的理论是:
‘DRMAA是标准,因此Java API只需要符合标准的drmaa-c绑定.但是,我找不到这样的’通用DRMAA-C-java API’,现在假设这个假设是错误的,并且Java库是引擎特定的.
编辑:
我刚刚试验了来自sun grid engine package的drmaa.jar,并试图与pbs libdrmaa.so交叉使用它.毫不奇怪,失败了(JNI不满意链接错误).
结论:它不起作用!经过一些搜索后,我只看到以下几个选项:
>在Globus上安装GridWay
工具包.安装在PBS上,
GridWay声称提供DRMAA
Java的.看起来对我来说太复杂了
设置.
> Scrap DRMAA,提交给PBS
调用系统命令qsub,qstat,
等来自Java.简单但不是这样
不错.
>自己实施drmaa绑定.
方式太复杂了……
>切换到Grid Engine. GE在我的
意见优于PBS
关于语言绑定.
我倾向于选择选项2.或4.任何建议?
解决方法:
经过一番搜索,看起来我必须自己写点东西.似乎还没有最佳答案,但它可以作为对那些尝试相同的人的警告.
提出这些问题的最佳地点可能是Torque邮件列表:www.clusterresources.com/resources/mailing-lists.php
首先,您不能仅使用任何DRMAA-Java库并将其与任何DRMAA-C实现一起使用的原因是:
DRMAA描述了资源控制的接口,而不是它的实现方式.供应商可以使用DRMAA-C实现并仅使用这些功能,但他们不必这样做.它可以使用引擎中的任何内容.因此,一条重要信息是:如果您需要某些语言绑定,请确保它们适用于所需的所有语言.
关于提到的选项:
>使用GridWay / Globus Toolkit:http://www.gridway.org/doku.php?id=start
优点:Gridway是一个元调度程序,支持许多资源管理系统(SGE,PBS,…).可能是目前使用DRMAA界面与PBS协同工作的唯一方法.
缺点:这似乎是层次和复杂性的膨胀.没有经验.
>使用系统命令,qsub,qstat,qdel.
优点:快速入侵
缺点:脏黑客,需要为输出实现解析器,如果出现问题可能不会注意到,从stdin / stdout / stderr传递消息,不可移植
>使用JNI,应该可以为drmaa.c中的每个c函数创建一个绑定
优势:将提供完整的drmaa实施(希望如此)
Disadvanteges:涉及编译代码,大量手动包装C函数(也许这可以自动化)
>切换到另一个网格引擎.可能我们之前应该做过这个分析.但是,我们已经拥有另一个Torque集群,并且有经验.运营两个将创建更多的异构基础架构.
>从其他供应商更改现有drmaa库.不知道这是否可行……我们也会研究这一点.
标签:java,cluster-computing,pbs,grid-computing,drmaa 来源: https://codeday.me/bug/20190606/1190981.html