質問

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

この背景には次のようなものがあります。DRMAA 準拠の API を使用して、Java から新しくセットアップした Linux クラスターにジョブを送信したいと考えています。クラスターを管理しているのは、 PBS/トルク. 。Torque には、DRMA-C バインディングを含み、libdrmaa.so および .a バイナリで提供される Torque/PBS 用の PBS DRMAA 1.0 ライブラリが含まれています。Sun Grid Engine には、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は、DRMAAを ジャワ。私には複雑すぎるように見えます 設定。
  2. DRMAAを廃棄し、PBSに提出します。 システムコマンド qsub, qstat, 等。ジャワから。シンプルですが、そうではありません ナイス。
  3. 自分で drmaa バインディングを実装します。複雑すぎます...

  4. グリッド エンジンに切り替えます。私のGEの 意見はPBSよりも優れています 言語バインディングに関して。

私はオプション 2 を好む傾向があります。または4。何かお勧めはありますか?

役に立ちましたか?

解決

もう少し調べてみると、自分で何かを書く必要があるようです。最適な答えはまだないようですが、同じことを試みている人にとっては警告として役立ちます。

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

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

言及されているオプションについては、次のとおりです。

  1. GridWay/Globus ツールキットの使用: 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実装を提供します(うまくいけば) Disadvanteges:コンパイルされたコード、C 関数の手動ラッピングが多数含まれます (これは自動化できるかもしれません)

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

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

他のヒント

私もこの問題を抱えていました。これは、PBS/トルクのためにオブジェクト指向のC ++およびJava DRMAA結合を作成するプロジェクトです。

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

それが価値があることのために、ここにあります:https://github.com/bryan-lunt/pbsjavadrmaa/

これをどうするか決めたことはありますか?トルク/PBSを使用してJava Drmaa Bindingsを使用することができましたか?トルク/PBSシステムで作業しているJava Drmaaコードを取得したいと思っています。すでに努力をしている場合は、盗みたいと思っています。

しかし、もしそうでない場合は、Java Bindingsを作るのはそれほど悪くないはずです。数年前、私はSGEのためのDrmaa Java Bindingsを修正して、Xgridの新しいDRMAA実装(現在は古くなっていますが、おそらくすぐに復活する)で作業することに成功しました。

私は自分の経験に関する簡単なブログ投稿を書きました(一般的な指示へのリンクを含む):

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top