4

PBS/Torque クラスタ ソフトウェアで動作することが知られている DRMAA-API の Java 実装を知っている人はいますか?

この背後にある背景: DRMAA 準拠の API を使用して、Java から新しくセットアップされた Linux クラスターにジョブを送信したいと考えています。クラスターはPBS/Torqueによって管理されます。Torque には、DRMA-C バインディングを含み、libdrmaa.so および .a バイナリで提供される Torque/PBS 用の PBS DRMAA 1.0 ライブラリが含まれています。Sun グリッド エンジンには、Java-DRMAA API を提供する drmaa.jar が含まれていることを知っています。実際、私は SGE を使用することにしましたが、最初に PBS を試すことにしました。

その決定の背後にある理論
は、「DRMAA は標準であるため、Java API は標準に準拠した drmaa-c バインディングのみを必要とする」というものでした。しかし、そのような「一般的な DRMAA-C-java API」を見つけることができなかったので、この仮定は間違っていて、Java ライブラリはエンジン固有のものであると仮定します。

編集: Sun Grid Engine パッケージの drmaa.jar を試し、pbs libdrmaa.so と併用しようとしました。驚くことではありませんが、これは失敗しました (JNI 未解決のリンク エラー)。

結論:そうはいきません!いくつかの検索の後、次のいくつかのオプションのみが表示されます。

  1. Globus ツールキットの上に GridWay をインストールします。PBS の上にインストールされた GridWay は、Java で DRMAA を提供すると主張しています。私の設定には複雑すぎるように見えます。
  2. DRMAA を破棄し、Java からシステム コマンド qsub、qstat などを呼び出して PBS に提出します。シンプルだけどあまりいいじゃない。
  3. drmaa バインディングを自分で実装します。複雑すぎる…

  4. Grid Engine に切り替えます。私の意見では、GE は言語バインディングに関して PBS よりも優れています。

オプション 2 または 4 を好む傾向があります。推奨事項はありますか?

4

3 に答える 3

3

さらに検索すると、自分で何かを書かなければならないようです。まだ最適な答えはないようですが、同じことを試みる人への警告として役立つ可能性があります。

これらの質問をするのに最適な場所は、おそらく Torque メーリング リストです: www.clusterresources.com/resources/mailing-lists.php

まず第一に、DRMAA-Java ライブラリーだけを使用して DRMAA-C 実装で使用することができない理由は、DRMAA はリソース制御のインターフェースを記述しており、それがどのように実装されているかではありません。ベンダーは、DRMAA-C 実装を使用して、これらの関数のみを使用できますが、そうする必要はありません。エンジンにあるものは何でも使用できます。したがって、1 つの重要なメッセージは次のとおりです。特定の言語バインディングが必要な場合は、必要なすべての言語に対応していることを確認してください。

言及されたオプションについて:

  1. GridWay/Globus Toolkit の使用: http://www.gridway.org/doku.php?id=start 利点: Gridway は、多くのリソース管理システム (SGE、PBS など) をサポートするメタ スケジューラです。おそらく、現時点で DRMAA インターフェースを PBS で動作させる唯一の方法です。短所: レイヤーと複雑さが膨らんでいるように見えます。その経験はありません。

  2. システム コマンド、qsub、qstat、qdel を使用します。利点: クイック ハック 欠点: 汚いハック、出力用のパーサーを実装する必要がある、何か問題が発生した場合に気付かない可能性がある、stdin/stdout/stderr からメッセージを渡す、移植性がない

  3. JNI を使用すると、drmaa.c 内の各 c 関数のバインディングを作成できるはずです。利点: 完全な drmaa 実装を提供します (うまくいけば)。 )

  4. 別のグリッド エンジンに切り替えます。おそらく、以前にこの分析を行うべきでした。ただし、すでに別の Torque クラスターがあり、これに関する経験があります。2 つを運用すると、より異種のインフラストラクチャが作成されます。

  5. 別のベンダーの既存の drmaa ライブラリを変更する。それが実現可能かどうかはわかりません...それも検討します。

于 2010-04-29T13:58:17.447 に答える
2

私もこの問題を抱えていました。これは、PBS/Torque 用のオブジェクト指向 C++ および Java DRMAA バインディングを作成するプロジェクトです。

欠点は、C++ コードから作成されたライブラリをロードできる必要があることです。そのため、エンド ユーザーが「libdrmaa.so」を提供することを期待して、.jar ファイルとしてのみ配布できる「純粋な Java」実装ではありません。 " 彼ら自身。

その価値については、 https ://github.com/bryan-lunt/PBSJavaDRMAA/ をご覧ください。

于 2013-06-07T03:58:30.523 に答える
1

これをどうするか決めたことがありますか?Torque/PBS で動作する Java DRMAA バインディングを取得できましたか? Torque/PBS システムで動作する Java DRMAA コードをいくつか取得しようとしています。すでに大変な作業を行っている場合は、盗みたいと思います。

ただし、Java バインディングを作成していない場合でも、Java バインディングを作成することは悪くありません。数年前、私は SGE 用の DRMAA Java バインディングを修正して、Xgrid 用の新しい DRMAA 実装で動作するようにしました (現在は古いですが、おそらくすぐに復活する予定です)。

私は自分の経験について簡単なブログ記事を書きました (一般的な手順へのリンクを含みます)。

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

于 2010-09-02T16:11:33.813 に答える