- 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/
如何请求查看用户当前提交的职位总数?这可能是正在运行的作业、排队的作业或两者。最好是,我希望看到我当前拥有的所有作业(正在运行和排队)。 最佳答案 这是一个可以完成这项工作的快速单行代码。 qstat
使用 qsub 提交批处理作业时,有没有办法排除某个节点(按主机名)? 类似的东西 # this is just a pseudo command: qsub myscript.sh --exclud
命令 'qstat -a' 输出许多已完成作业的信息行,所有作业都具有状态 'C'。似乎他们会永远留下来。由于这些工作已经“完成”,如何清理这些不需要的工作信息?谢谢! 最佳答案 这由 qmgr 参数
所有节点在新扭矩安装后注册为关闭。我不知道为什么 [root@rbx-1 6.0.1]# pbsnodes -a rbx-1 state = down power_state =
任何人都可以提供每个 ORM 的详细优点和缺点吗?首先,我对 Hibernate 提供的东西感兴趣,而 Torquay 不感兴趣。 最佳答案 hibernate : 年长且稳定 实现 JPA(包括 J
我有已完成作业的 ID。如何查看其详细信息,例如执行时间、分配的节点等?我记得 SGE 有一个命令(qacct?)。但我找不到 PBS 或 Torque。谢谢。 最佳答案 由于作业统计需要 root
我第一次想做一些并行计算,但我不知道到底应该从哪里开始。 问题是我有一个巨大的文件列表(大约 7000 个 csv 文件),我想处理它并从数据中获取单个文件。对于此任务,我想使用与 Torque PB
我希望能够通过脚本轻松更改提交给 qsub 的 nodes、ppn 等数量。也就是说,我想运行这样的东西: qsub script.sh --name=test_job --nodes=2 --ppn
我已经使用这个 guide 安装了 Torque . 作者说对于 submit_hosts 应该使用 SERVER(简称)而不是 SERVER@DOMAIN(FQDN)。但这对我没有帮助。我该如何解决
当我在 InfiniBand 上运行 MPI 作业时,出现以下磨损。我们使用扭矩管理器。 -------------------------------------------------------
http://www.adaptivecomputing.com/products/open-source/torque/ https://research.cs.wisc.edu/htcondor/
我正在扭矩集群上运行 .jar 文件。他们将运行未知的时间。 我想在作业运行时检查作业的进度。我该怎么做呢?显然 system.out.println 不起作用,如果在本地运行,我通常会使用它。 我使
我正在尝试在 Win7 上安装 OBDSim,但遇到了一些麻烦。我的最终目标是将 OBDSim 作为蓝牙 ELM327 OBDII 模拟器运行,并使用我的 Android 设备上的 Torque 应用
我正在寻求关于如何在Drake中安装力/扭矩传感器的指导。我的目标是在德雷克的一个固定气缸内安装一个传感器,使其能够检测外力和扭矩。随后,我的目标是模拟另一个物体与这个圆柱体的碰撞。然而,目前的焊接接
任何人都知道哪个资源管理器适合 PVM?或者我不应该使用 PVM 而是依赖 MPI(或它的任何版本,例如 MPICH-2 [还有其他更好的吗?])。使用 PVM 的主要原因是因为我之前开始这个项目的人
我编写了一个基于 MPI 的 C 代码,用于并行执行数值模拟。由于我的设计不佳,我在代码中内置了一些固有的 MPI 依赖项(数组结构、MPI-IO)。这意味着如果我想串行运行我的代码,我必须调用 mp
我正在编写一个 python 脚本,它为数百个作业准备输入文件(比如 job.id = 1 到 job.id = 1000,其中 job.id 是一个自分配的 id),然后将它们提交到集群上以供执行。
我在 Ubuntu 16.04 工作站上安装了 Torque 6.1.0,但是安装似乎无法识别有多少内核和线程机有。我设置的唯一节点显示状态为“state=down”并且任何工作都会触发一个错误,说“
我正在尝试通过蓝牙将 odbsim 连接到我的 Samsung S4。将我的设备与 ubuntu 成功配对后,我的结果从未发生过将 obdsim 与手机连接。 每当我尝试运行命令 obdsim -b
有人知道已知可与 PBS/Torque 集群软件一起使用的 DRMAA-API 的 Java 实现吗? 这背后的背景:我想使用符合 DRMAA 的 API 从 Java 向新设置的 linux 集群提
我是一名优秀的程序员,十分优秀!