問題タブ [lsf]
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.
python - drmaa-python でジョブ配列インデックスを引数として渡す
私は lsf-drmaa 実装を使用しており、drmaa-python を介してインターフェースしています。通常、環境変数 $LSB_JOBINDEX を引数として run.sh スクリプトに渡します。drmaa-python で作成JobTemplate jt
し、引数として渡したいと思います。PARAMETRIC_INDEX を使用してみましたが、このコマンドは機能しません: jt.args = [str(drmaa.JobTemplate.PARAMETRIC_INDEX)]
.
次のエラーが表示されます。
どこが間違っているのか、および/または別の方法を使用してインデックスを渡すにはどうすればよいですか? ありがとう -
python-3.x - Python コードの複数のインスタンスを実行する際の上書きとエラー
私は物理学の学生で、確率的要素を持つ研究関連のシミュレーションを実行しようとしています。シミュレーションは、いくつかの非相互作用部分に分割でき、各部分はランダムに展開するため、実行間の相互作用は必要ありません。
別のコード/ファイルを使用して、後ですべてのジョブから返された結果を分析します (これは問題とは関係なく、何が起こっているかの明確な背景図を提示するためにのみ提供されます)。
研究所の HPC (「クラスター」と呼びます) を使用して、コードの複数のコピーを実行します。これは、他のファイルから何も読み取らない (ただし、出力ファイルを作成する) 単一の .py ファイルです。os.makedirs(path,exist_ok=True)
コードの各コピー/実現は、 と を使用して、コードの個々の実現ごとに一意の作業ディレクトリを作成することになっていますos.chdir(path)
。これを実行するためにすでに何度も試みましたが、次の動作タイプで終了しました。
- いくつかの配列ジョブが実行され、正常に動作しています。
- その他は、互いに上書きします (つまり、job1 と job2 の両方が、job1 のディレクトリ内の .txt ファイルに書き込みます)。
- 他の人は、ディレクトリをまったく作成していませんが、死んでもいないので、実行を続けて、おそらく私が知らない、アクセスできない場所にデータを書き込んでいると思います。
これらの動作は、どの配列ジョブが問題なく動作し、どの配列ジョブが動作 2、動作 3、またはその両方のジョブを持つかを前もって知らないという意味で、私には完全にランダムに見えます (大規模なjob-array を使用すると、正常に実行されているジョブ、動作 2 を示すジョブ、動作 3 を示すジョブ、および 2 つだけまたは 3 つだけのジョブが表示されます)。
私はオンラインで見つけることができるすべてのものをほとんど試しました。たとえば、使用する一般的な問題os.makedirs
は問題に関するものでumask
あり、呼び出す前に追加os.umask(0)
することは良い習慣であることをどこかで読んだので、それを追加しました。クラスターがハングアップtime.sleep
する可能性があるため、数秒間呼び出して再試行するとうまくいく可能性があるので、私もそうしました。まだ何も問題を解決していません...
検査の犯人である可能性のあるコードの一部を添付します。N,L,T
とDT
は、ライブラリなどもインポートするコードで以前に設定した数字です (オフィス コンピューターは Windows を実行し、クラスターは Linux を実行することに注意してください。os.name
実行しているOSに応じてディレクトリを設定するためだけに 使用して、コードを変更せずに両方のシステムで実行できるようにします):
クラスタの環境は LSF 環境です。コードの複数の実現を実行するには、「arrayjob」コマンドを使用します。つまり、LSF を使用して、クラスター内の異なる (または同じ) ホスト上の複数の異なる CPU に同じコードの複数のインスタンス (この場合は 100) を送信します。
上記のエラーを示す例も添付しています。動作 2 の例は、次の出力ファイルです。
このような .txt ファイルは、コードの進行状況を追跡する目的で作成され、通常、各ジョブによって個別に作成され、独自のディレクトリに保存されます。この場合、何らかの理由で、2 つの異なるジョブが同じファイルに書き込みを行っています。これは、ディレクトリが作成され、作業ディレクトリが決定された直後に作成される別の .txt ファイルを観察するときに確認されます。
この問題が私たちの研究の前進を妨げているため、この問題を解決できる助けをいただければ幸いです. これを理解するために追加の詳細が必要な場合は、喜んで提供します。
ありがとう!
linux - Linux: LSF ジョブ システムの 1 行の bsub で実行中のコマンドをリダイレクトする方法は?
LSF ジョブ システムを備えたクラスタにジョブを投入しています。
ジョブスクリプトを書くのは好きではありません。bsub
次のような1行が好きです
元気に走っています。しかし、リアルタイムの画面出力が必要です。
だから私は試しました
ただし、実行中のコマンドの出力ではなく、ジョブ送信の情報をリダイレクトするだけなので、これは機能しません。
私はbsubが提供-o
し、-e
出力をリダイレクトすることを知っていますが。しかし、これら 2 つのコマンドはリアルタイムではありません。私がテストしたところ、ジョブの完了後に画面出力全体が保存されます。しかし、これは私が望むものではありません。その上、私も知っていますがbpeek
、これも私は望んでいません。
だから私の質問は、実行中のコマンドの出力を1行で正しくリダイレクトする方法bsub
ですか? 私はいくつかの方法を試し、コマンドを引用符で囲み、括弧で囲みました...すべて失敗しました
bash - 自動bpeekを実現するには?
私は、IBM LSF ジョブ システムを備えたクラスターにいます。
実行中のすべてのジョブの現在の出力を確認できる機能を実現したい
だから私は書く
ただし、bpeek
覗きモードに入るので、ループはループしません。
bpeek
だから、各ピークの終わりに殺すことができるかもしれないと思った. bpeek
しかし、 の PID が にリストされていないことがわかりましたps -ef
。したがって、これは機能していないようです。
これを回避する方法を知っている人はいますか?
shell - シェル スクリプトが lsf ジョブとしてのみ実行されるようにする
シェル スクリプトがあり、通常のジョブとしての実行を無効にしたい。LSF では bjob としてのみ実行する必要があります。
スクリプトでこれを確認するにはどうすればよいですか
multithreading - MPI fortran プログラムで intel mkl の合計スレッド制限を設定する方法は?
LSF ジョブ システムを備えたクラスタ上で MPI fortran プログラムを実行しています。私のプログラムには MKL 関数も含まれています。
MKLスレッド番号を設定できるサブルーチンがあることを知っています(たとえば、2に設定します)
最初に、これがプログラムの合計スレッド数を設定すると思いました。しかし、私がテストしたように、これは各MPIプロセスのスレッド番号を設定しているようです
だから私が次のような仕事を提出した場合
ノードにsshして、Top
実際には4つのコアを使用し、各MPIプロセスは2つのスレッドを使用することがわかりました。
しかし、これは私のクラスターでは許可されていません。これは、要求された以上に CPU リソースを使用し、実行中に強制終了されるためです。
MPI プロセスの数が CPU コアを分割できない場合があります。たとえば、ノードに 24 コアがあり、実行する MPI プロセスが 7 つある場合、次のように送信します。
MKL にはDynamic
機能があるため、MKL は自動的にリソースを 7 つの MPI タスクに動的に分配し、すべての CPU を効率的に使用します。
しかし、今ならクラスターは一杯です。リクエストできるのは 12 コアのみです。
次に、7 つの MPI タスクの中で正確に 12 の mkl スレッドを使用するように MKL を設定し、システムによって強制終了されず、最大の効率を維持する方法。
linux - LSF で起動したコマンドのフルパスを取得する方法
ユーザーが bsub を使用して LSF でジョブを開始しました。jobIdからどのコマンドが実行されたかはわかるのですが、そのコマンドのフルパスがわかりません
それを見つける方法はありますか?またはそのコマンドでPATH変数?
linux - bsub で LSF に送信されたコマンドの PID
コマンドが bsub で送信されると、res
コマンドでプロセスが開始されます。
res
次に、別のプロセスとして実際のコマンドを開始します
この実際のコマンドのpidが知りたい
たとえば、私はこのコマンドを送信しました。ではbhist -l jobid
、 の pid を知ることres
ができますが、 の pid を取得する方法を見つけることができません。virtuoso