問題タブ [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.
regex - Sun Grid Engine (SGE) での複数のキューの無効化
Sun Grid Engine ジョブ送信の送信先キューを指定する場合、複数の送信先を無効にすることはできますか?
通常、次のようなものがあります。
パターン「chrom*」に一致しないすべてのホスト/キューで実行されます。たとえば、"chrom*" と "reef" 以外のすべてのマシンで実行したい場合はどうすればよいでしょうか? 私が見つけることができるすべてのドキュメントは、SGE がこれをサポートする必要があることを示唆しています (OR と複数のパターンをサポートしています) が、これまでの私の試みはすべて失敗に終わりました。
私が試したいくつかのこと:
(等々)。
ここで見落としている簡単なものはありますか?パターン マッチングについて私が見つけた最良のドキュメントは、「Matching Types」の下にあります: http://linux.die.net/man/1/sge_types
database - IPython 並列ハブ データベースからの結果の取得
IPython 並列を使用して、SGE クラスターで並列ジョブを実行しています。ジョブを送信し、後ですべてのジョブが終了したときに、ジョブ メッセージ ID を使用してハブ データベース (SQlite) から結果を取得します。これは、コントローラーがクラッシュするまで問題なく機能しました。コントローラーを再起動すると、古いコントローラーに送信されたジョブを取得できませんでした。このエラーが発生しました:
データベース ファイル (tasks.db) はまだ存在し、ハブがクラッシュする前と同じサイズです。だから、結果はデータベースにあると確信しています。新しいコントローラーを使用してそれらを取得できますか? また、bd_query コマンドを使用すると、次のようになります。
空の結果が得られます。
python - Python - glob.glob が Unix OS 内の指定されたファイルパスに *.txt を見つけられない
Windows 環境で作成したいくつかの Python スクリプトを Unix (Red Hat 5.4) で実行するように変換していますが、ファイルパスを処理する行の変換に問題があります。Windows では、通常、次のような方法でディレクトリ内のすべての .txt ファイルを読み込みます。
Unix でも glob.glob() メソッドを使用できるようです。そのため、このメソッドを実装して、次のコードを使用して「source」という名前のディレクトリ内のすべてのテキスト ファイルを検索しようとしています。
このコードを実行すると、testout.txt ファイルは期待どおりに出力されますが、sourceout.txt ファイルは空です。行を変更すれば問題が解決するかもしれないと思った
に
/hill ディレクトリからコードを実行しましたが、問題は解決しませんでした。ソース ディレクトリ内のテキスト ファイルを読み取る方法を他の人は知っていますか? 他の人が提供できる洞察に感謝します。
編集: 関連する場合、上記のディレクトリの /afs/ ツリーは、Putty 経由で ssh 接続しているリモート サーバーにあります。上記の Python スクリプトを qsub するために、test.job ファイルも使用しています。(これはすべて、SGE クラスター システムでジョブを送信するための準備です。) test.job スクリプトは次のようになります。
python - python sge apiは特定のノードに送信します
プログラムをクラスターで使用しようとしています。ここで、小さなジョブを作成し、bash スクリプトを使用して特定のノードに送信します。これらのジョブは大きなファイルをノードにコピーし、このファイルで他の 5 つのプログラムを実行し、最終的にジョブはファイルをコピーしてノード上で削除します。
ジョブを送信するこの bash スクリプトは、特定のディレクトリで空き HDD の量をチェックし、このノードで実行できるジョブの最大数を計算し、この数のジョブをこの特定のノードに送信します。この方法の欠点は、すべてのジョブが終了した後で、この bash スクリプトを複数回実行する必要があることです。
今、drmaa api を使用して python でこれを実行したいと考えています。しかし、このAPIでノードを制御できるかどうか疑問に思っています。drmaa API を使用して特定のノードに送信することはできますか?
または、qsub コマンドを実行し、qstat コマンドの出力を解析してノードあたりのジョブ数を取得するには、Popen で回避策を作成する必要がありますか?
sungridengine - SGE hold_jid と失敗したジョブのキャッチ
SGE キューで並行して実行する多数のジョブを送信するスクリプトと、このジョブのリストが終了したときに実行される別の収集スクリプトがあります。-hold_jid wc_job_list
並列ジョブの実行中に収集スクリプトの実行を保留するために使用しています。
いくつかの並列ジョブが失敗し、収集スクリプトがまだ実行されていることに気付きました。ドキュメントには次のように記載されています。
参照されたジョブのいずれかが終了コード 100 で終了した場合、サブミットされたジョブは実行できないままになります。
失敗した並列ジョブの終了ステータスをキャッチして、それらのいずれかが何らかの理由で失敗した場合、収集スクリプトが実行されないか、エラー メッセージが表示されるようにするにはどうすればよいですか?