問題タブ [sungridengine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gpu - Sun Grid Engine (SGE) を使用した GPU リソースのスケジューリング
それぞれ 4 つの GPU を備えたマシンのクラスターがあります。各ジョブは 1 ~ 4 個の GPU を要求できる必要があります。問題は次のとおりです。SGE が各ジョブにどのGPU を使用すべきかを伝えてほしいのです。CPU とは異なり、GPU は、一度に 1 つのプロセスのみがアクセスする場合に最適に機能します。だから私はしたい:
私が遭遇した問題は、SGE を使用すると、各ノードに 4 ユニットの GPU リソースを作成できますが、どの GPU を使用するかをジョブに明示的に通知しないことです (1、3、または 1 を取得するだけです)。なんでもいい)。
4 つのリソース ( gpu0, gpu1, gpu2, gpu3
) を作成することを考えましたが、-l
フラグが glob パターンを取るかどうかはわかりません。また、SGE がどの GPU リソースを受け取ったかをジョブに伝える方法もわかりません。何か案は?
sungridengine - オプション -sync yes を使用して SGE でジョブ終了コードを出力しないようにする
一連の配列ジョブを SGE に送信する Perl スクリプトがあります。時間を節約するためにすべてのジョブを並行して実行し、すべてのジョブが完了するまでスクリプトを待機させてから、すべての SGE 出力ファイルからの情報を統合して最終出力を生成する次の処理ステップに進みたいと考えています。
すべてのジョブをバックグラウンドに送信してから待機するために、Parallel::ForkManager とループを使用します。
ただし、「待機」部分が機能するためには、qsub オプションに「-sync yes」を追加する必要がありました。しかし、これの「副作用」として、SGE は各配列ジョブの各タスクの終了コードを出力します。多くのジョブがあり、単一のタスクは軽いため、基本的に、これらすべての割り込みメッセージが原因でシェルが使用できなくなります。 qsub ジョブが実行されています。
これらのメッセージを取り除くにはどうすればよいですか? どちらかといえば、ジョブのqsubの終了コードをチェックすることに興味があります(次のステップの前にすべてがうまくいったことを確認できます)が、タスクごとに1つの終了コードではありません(とにかくオプション-eを介してタスクのエラーを記録します必要な場合に備えて)。
c++ - SGE ジョブ用にライブラリを適切に構成する方法は?
クラスターにアクセスして、重いものや計算を実行しています (私は単なるユーザーであり、root ではありません)。
コンパイルして実行しているrnnlibというプログラムがあります。これは、フォルダー (/udd/$USER/local) にインストールした外部ライブラリを使用します。
ここで、SGE にジョブを送信しようとすると、次のようになります。
/udd/$USER/test_rnn_lib/ag_rnnlib/bin/rnnlib: 共有ライブラリの読み込み中にエラーが発生しました: libhdf5_hl.so.7: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません
/udd/$USER/test_rnn_lib/ag_rnnlib/bin/rnnlib: 共有ライブラリの読み込み中にエラーが発生しました: libhdf5.so.7: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません
rnnlib が使用するすべてのライブラリ (ldd にリストされている) をフローダー (/udd/$USER/local/libs_for_SGE/) にコピーしました。
それから私は仕事を提出しました、ここに私が得るものがあります:
/udd/$USER/test_rnn_lib/ag_rnnlib/bin/rnnlib: 再配置エラー: /udd/$USER/test_rnn_lib/local/libs_for_sge/libc.so.6: シンボル _dl_starting_up、バージョン GLIBC_PRIVATE がファイル ld-linux-x86- で定義されていません64.so.2 リンク時間参照あり
SGEにlibc.so.6をロードしようとしましたが、これが得られました:
/udd/$USER/test_rnn_lib/ag_rnnlib/bin/rnnlib: /usr/lib64/libstdc++.so.6: バージョン `GLIBCXX_3.4.15' が見つかりません (/udd/$USER/test_rnn_lib/ag_rnnlib/bin/rnnlib で必要)
python - ジョブの完了を効率的に待つ方法: python と drmaa
Pythonで使用しているdrmaa APIの「待機」機能についてお聞きしたかったのです。プログラムの実行が終了したかどうかを確認するために、一定のqstat(SGEで実行している場合)を実行しますか。
私たちの管理者は、スケジューラの余分な負荷のためにパフォーマンスが低下するため、一定の qstat を回避することを望んでいます。
一般に、wat は、スケジューラーをオーバーボーディングすることなく、DRMAA を介してジョブの状態を確認する効率的な方法です。
ありがとう!-アビ
sungridengine - SGE での番号とその名前によるノードのリクエスト
SGE でのジョブの送信中に、ノード (procs ではなく) の数を要求する方法は?
たとえば、TORQUEでは、指定できます
qsub -l nodes=3
SGE で名前でノードを要求する方法は?
たとえば、TORQUE では
qsub -l nodes=abc+xyz+pqr
、 、abc
、xyz
およびpqr
はホスト名でこれを行うことができます。単一のホスト名の場合、
qsub -l hostname=abc
機能します。しかし、SGE で複数のホスト名を区切るにはどうすればよいでしょうか?
java - SGE : マルチスレッド Java コードの並列環境
マルチスレッド Java コードを作成しました。実行時に 8 つのスレッドが作成され、これらのスレッドで計算が続行されます。このジョブを SGE クラスターに送信したいのですが、どの並列環境 ( pe
) を選択すればよいかわかりません。または作成する必要がありますか?SGE初心者です。簡単な方法は、シリアル モードで実行することですが、それは非効率的です。
の作成に関してpe
、どこで作成する必要がありますか? SGEデーモンもこれを持つ必要がありますpe
か? というランダムな名前のジョブを送信するとpe
、
sungridengine - SGE で論理パーティショニングを行うには?
GE2011.11 を使用しています。以前はTorque/Mauiを使っていました。マウイ島には、クラスターを論理的に分割できるパーティションの概念があります。ノードは複数のパーティションに属することはできません。
GE では、これを実現するためにホスト グループを考えていますが、ノード (ホスト) は複数のホスト グループに属することができますが、これは望ましくありません。ホスト グループを使用してパーティショニングを実現するにはどうすればよいでしょうか。
GE には、マルチクラスタリングと呼ばれる機能があります。この機能を使用してパーティショニングを実装できますか? これをどのように使用しますか?
job-scheduling - SGE 以外のプログラムの実行を防止する
SGE ノードのシステム管理の観点から、長時間実行されるプログラムをスタンドアロンで実行する代わりに、qsub を介して実行するようユーザーに強制することは可能ですか?
問題は、同じマシンが制御ノードと計算ノードとして機能していることです。したがって、「gcc」でコンパイルしているユーザーと長時間実行プログラムを区別することはできません。理想的には、qsub を介して実行時間の長い (つまり、1 時間以上の) ジョブをユーザーに送信させたいと考えています。ちょっと意地悪になって、1時間以上実行されたがqsub経由で送信されなかったジョブを殺してもかまいません。
今までは「qsubを使ってください!」とメールを出すくらいしかできなかったのですが…。
SGE の構成を確認しましたが、関連するものはないようです。しかし、多分私は何かを逃しただけです...どんな助けでも大歓迎です! ありがとう!
multithreading - 1つのスロットでマルチスレッドジョブを実行しますか?
1つのSGEスロットでマルチスレッドジョブを実行しようとするとどうなりますか?複数のスレッドを開始できませんか?または、スロットよりも多くのスレッドを実行するため、これらの複数のスレッドを開始し、SGEクラスターノードに過負荷をかける可能性がありますか?
-pethreadednrThreadsパラメーターを使用する必要があることはわかっています。しかし、私はプログラムを実行していますが、そのプログラムがすべてのステップで使用しているスレッドの数がわかりません。