問題タブ [torque]
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.
csh - PBSトルクでqsub-vコマンドを使用するにはどうすればよいですか?
「qsub-v」コマンドを使用して、変数をcshスクリプトに渡したいと思います。以下のようにパラメータと値のペアをリストできることを理解しています。
これらのパラメータの値が文字列、コンマ記号で区切られた数値のリスト、またはファイル名であるかどうかを誰かが知っていますか?たとえば、以下のコマンドは可能ですか?
どうもありがとうございます、
r - Rスクリプト内からスレーブノードにジョブを送信しますか?
myscript.Rジョブスケジューラ(具体的にはPBS)を使用してクラスタスレーブノードで実行するには
現在、次のコマンドを使用してRスクリプトをスレーブノードに送信しています
ヘッドノードでmyscript.Rを実行し、個々のタスクをスレーブノードに送信できる関数がRにありますか?何かのようなもの:
更新:qsubコマンドの代替ソリューションは、@ Joshが指摘しているように#/usr/bin/Rscript、の最初の行から削除して直接呼び出すことです。myscript.R
mpi - MPI プログラムで cgroup を使用する方法
MPI プロセスはリソース マネージャやスケジューラ (torque/maui) ではなく mpirun/mpiexec によって呼び出されるため、cgroup を使用してすべての MPI プロセスのメモリと cpuset の使用を分離する方法については、MPI ライブラリ (openmpi) を変更できないことに注意してください。 /mpich2) ですが、リソース マネージャーとスケジューラーの変更には問題ありません。
parallel-processing - 1 回の PBS ジョブ送信で複数のコマンドを実行する方法
私は 1 から 4 の CPU しか必要としないコードを書きました。しかし、クラスターでジョブを送信するときは、ジョブごとに 16 コアのノードを少なくとも 1 つ使用する必要があります。そのため、送信する各ジョブで各ノードで複数のシミュレーションを実行したいと考えています。1 つのジョブでシミュレーションを並行して送信する方法があるかどうか疑問に思っていました。
以下に例を示します。私のコードは 4 CPU を使用します。1 つのノードにジョブを送信し、そのノードでコードの 4 つのインスタンス (各インスタンスには異なるパラメーターがあります) を実行して、16 個のコアすべてを使用するようにします。
c++ - クラウド計算フレームワーク
クラウドのような環境を作成する問題を解決するフレームワーク/ライブラリまたはプログラムはありますか? m 個のコンピューティング サーバーと n 個のユーザーがいるとします。
ユーザーは何らかの方法でマネージャーに接続し、問題のパラメーターを選択し、「計算」をクリックして、マネージャーが空いているサーバーを決定するか、キューを作成し、サーバーにパラメーターを送信し、サーバーから結果を取得してユーザーに送信します。
TORQUE、PBS、Ganglia、Nagios を見つけましたが、一見したところ、あるスケジュールでいくつかのタスクを実行しただけで、それだけですが、インタラクティブではありません。私は間違っているかもしれません。
PS OpenStack、Apache CloudStack、または OpenNebula は、私が説明したことを行いますか?
mpi - BLCR を使用したトルク チェックポイント MPI ジョブに関する質問
トルクを使用して MPI ジョブのチェックポイントを設定しようとしていますが、トルクは単一のノードで実行されているジョブしか処理できないようです。コードを確認したところ、qhold を使用してジョブのチェックポイントを設定すると、qhold は PBS_BATCH_HoldJob 要求を pbs サーバーに送信し、pbs サーバーはこの要求をマスター ホストに中継し、マスター ホストは BLCR を使用して自身で実行されているジョブ プロセスをチェックポイントしますが、そうではありません。要求を姉妹ノードに送信するため、MPI ジョブはトルクでチェックポイントできないようです。
もう 1 つの問題は、チェックポイントが成功した後 (qhold によって報告される)、トルクがプロセスを強制終了するためにマスター ホストのプロセスにシグナル 15 を送信し、トルクがチェックポイント ファイルを pbs_server にコピーし、すべてのファイルをローカルに削除することです。qrls を使用してこのジョブを再起動すると、スケジューラはこのジョブに新しいノードを割り当て、チェックポイント ファイルを新しいノードにコピーしてから、チェックポイント ファイルを介してジョブを再起動すると、問題が発生します。
トルクがすべてのノードで MPI ジョブのプロセスをチェックポイントできると仮定します。通常、私たちのジョブは巨大なメモリ チャンクを使用するため、チェックポイント ファイルは非常に大きくなりますが、pbs サーバーにはチェックポイント ファイルを格納するのに十分な大きさのディスクがありません。 .
私たちの環境では、MPI ジョブが開始される前に、別のクラスターから大規模なメタデータをコンピューティング用の MPI ジョブに割り当てられたノードに直接プルし、チェックポイント/再起動後に、ジョブ プロセスがいくつかの異なるノードで再開される可能性があります。データが欠落している可能性があります。
MPI ジョブのチェックポイントの方法を教えてくれる人がいて、私の質問に答えることができ、トルク コードを変更する必要がある場合は、私もそれをやりたいです。
ありがとう。
android - obdアダプターの初期化
Bluetooth経由で車両のObdアダプターからObdデータを読み取るAndroidアプリケーションを開発しています...アダプターの初期化中に問題が発生します。obdを初期化するために、次のObdコマンドを順番に送信しました。
- atz(受信OK)
- atsp0(受信OK)
- ate0(受信OK)
- 0100(これは問題が発生する部分です)...
このコマンドでBUSINIT:ERRORを受け取ることがあります。その後、すべての車両コマンド(ATコマンドを除く)で同じエラーが繰り返されます。
正確な初期化シーケンスを知りたいですか?
cluster-computing - ビジー時に pbs ジョブが出力されない
PBS で問題が発生しています。サブミットしたすべてのジョブのうち、出力が正常に生成されない部分がある傾向があります。すべての出力が生成されるまで、何度か再送信する必要があります。また、他のユーザーが大量のジョブを送信すると、これが特に悪いことに気付きました。この場合、すべてのジョブが期待される出力ファイルを生成できません。
私は PBS の唯一のユーザーなので、何が起こっているのかわかりません。誰かが素晴らしい提案をすることができれば。ありがとう。
python - qsubを使用して、連続した独立したジョブをどのくらいの速さで送信できますか?
この質問は、ビジー状態のときに出力されないpbsジョブに関連しています。つまり、PBS / Torqueが「ビジー」の場合、送信するジョブの一部は出力を生成しません。たくさんの仕事が次々と提出されると忙しいのではないかと思いますが、そういう形で提出された仕事の中には、何も出てこないものがよくあります。
ここにいくつかのコードがあります。
「x_analyse.py」というPythonスクリプトがあり、その入力としてデータを含むファイルを受け取り、そのファイルに保存されているデータを分析するとします。
ここで、次のことを行う必要があるとします。(1)N個のそのようなデータファイルを準備します:data_1.pkl、data_2.pkl、...、data_N.pkl(2)「x_analyse.py」をそれぞれで機能させ、結果を書き込みますそれらのそれぞれのファイルに。(3)異なるデータファイルの分析はすべて互いに独立しているため、時間を節約するために、PBS/Torqueを使用してそれらを並行して実行します。(これは本質的に「驚異的並列問題」だと思います。)
私は上記を行うためにこのPythonスクリプトを持っています:
スクリプトは、分析するデータセットを準備し、それをファイルに保存し、このデータセットを分析するためのpbs送信ファイルを書き込み、それを実行するジョブを送信してから、次のデータセットで同じことを再度実行します。 、 等々。
このように、スクリプトが実行されると、ジョブが送信されるときに、ジョブIDのリストが標準出力に出力されます。「ls」は、N個の.subファイルとN個の.pklデータファイルがあることを示します。「qstat」は、すべてのジョブがステータス「R」で実行され、その後、ステータス「C」で完了したことを示します。ただし、その後、「ls」は、「x_analyse.py」によって生成された.out出力ファイルがN個未満であり、結果ファイルがN個未満であることを示しています。実際、一部のジョブでは出力が生成されません。すべてをクリアして上記のスクリプトを再実行すると、同じ動作が得られますが、一部のジョブ(前回と同じである必要はありません)では出力が生成されません。
連続した仕事の提出間の待ち時間を増やすことによって、物事は改善することが示唆されています。
しかし、私は0.1秒、0.5秒、1.0秒、2.0秒、3.0秒を試しましたが、どれも実際には役に立たなかったので、これは最も満足のいくものではないと感じています。50代の待ち時間は問題ないようだと言われていますが、100件の求人を提出しなければならない場合、5000秒程度の待ち時間になり、非常に長いようです。
代わりにジョブ配列を送信して、「qsub」が使用される回数を減らしてみました。以前と同じようにすべてのデータファイルを準備しますが、送信ファイルは「analyse_all.sub」の1つだけです。
その後、
しかし、これでも、一部のジョブはまだ出力を生成しません。
これは一般的な問題ですか?私は正しくないことをしていますか?求人の提出の合間に待つことが最善の解決策ですか?これを改善するために何かできることはありますか?
助けてくれてありがとう。
編集1:
Torqueバージョン2.4.7とMauiバージョン3.3を使用しています。
また、ジョブID 1184430.mgt1のジョブが出力を生成せず、ジョブID 1184431.mgt1のジョブが期待どおりに出力を生成するとします。これらで「tracejob」を使用すると、次のようになります。
編集2:出力を生成しないジョブの場合、「qstat-f」は次を返します。
出力を生成するジョブと比較して:
一方の終了ステータスは0であるように見えますが、もう一方はそうではありません。
編集3:
上記のような「qstat-f」出力から、問題はポストジョブファイル処理の「古いNFSファイルハンドル」に関係しているようです。何百ものテストジョブを送信することで、失敗したジョブを生成するノードの数を特定することができました。sshこれらを調べることで、で不足しているPBS出力ファイルを見つけることができます。/var/spool/torque/spoolここでは、他のユーザーに属する出力ファイルも確認できます。これらの問題のあるノードの奇妙な点の1つは、それらが使用するように選択された唯一のノードである場合、ジョブはそれらで正常に実行されることです。この問題は、他のノードと混在している場合にのみ発生します。
ポストジョブ処理の「古いNFSファイルハンドル」を修正する方法がわからないため、「ダミー」ジョブを送信することでこれらのノードを回避します
実際の仕事を提出する前に。これで、すべてのジョブが期待どおりに出力を生成し、連続して送信されるまで待つ必要がなくなりました。
directory - Linux /var ディレクトリと /opt ディレクトリ
Linux での限られた経験から、多くのサードパーティ プログラムがデフォルトで次の場所にインストールされていることがわかりました。
/opt
特に 1 つのプログラム、 Torqueは、デフォルトで次の場所にインストールされます。
/var/spool/torque
これをオーバーライドできます
デフォルトのインストールディレクトリをそのままにして、移動しないほうがよい理由はありますか?
opt/torque?
Linux のベスト プラクティスを知っている人に、Linux をインストールすべき場所を提案してもらいたいです。
更新
File Hierarchy Standards (FHS) について調査しました。/opt と /var/opt はどちらもプログラムのインストールに有効な場所のようです。「ベスト プラクティス」と見なされるもの、またはアプリケーションをインストールするための最も一般的な場所を知りたいです。