問題タブ [condor]
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.
cluster-computing - コンドル、Sun Grid Engine、それとも何か?
私は、仕事で Condor と Sun Grid Engine のどちらを試してみるべきか (あるいは他の何かを試してみるべきか) を考えています。
多くの場合、未使用の WinXp ワークステーションが多数あります。Wake-on-LAN を使用し、すべてのジョブを実行してから、自動的にシャットダウンできることを願っています。主に、モンテカルロまたはパラメーターの探索のために、Matlab、Java、または Python のシミュレーションを実行します。
私のコンドルに関する知識は限られているため、vm ユニバースを使用すると、既存のコードを変更せずにスナップショットを処理できる便利な方法のように思えます。
この種の作業では、コンドルよりも SGE や他の何かが優れていますか?
workflow - 同じホストを実行する必要があるいくつかのジョブでDAGを使用するコンドルジョブ
依存関係のある、いくつかの個別のプログラム実行に分割される計算タスクがあります。私はタスクスケジューラとしてCondor7を使用しています(Vanilla Universeでは、プログラムの制約が私の手の届かないところにあるため、チェックポイントは含まれていません)。したがって、DAGは自然な解決策のように見えます。ただし、一部のプログラムは同じホストで実行する必要があります。コンドルのマニュアルでこれを行う方法についてのリファレンスを見つけることができませんでした。
DAGファイルの例:
BとCの並列実行を中断することなく、BとDを同じコンピューターノードで実行する必要があることを表現する必要があります。
ご協力いただきありがとうございます。
c - コンドルで実行中に謎のセグメンテーション違反を解決する方法/ツール
計算クラスター全体で実行される C アプリケーションを作成しています (condor を使用)。問題のあるコードを明らかにするために多くの方法を試しましたが、役に立ちませんでした。
手がかり:
- 15 台のマシンで 2 日間コードを実行すると、平均して 2 つまたは 3 つのセグメンテーション違反 (シグナル 11) が発生します。
- コードをローカルで実行すると、segfault が発生しません。自宅のマシンで 3 週間近く実行しました。
試み:
- ローカルで valGrind のコードを 4 日間実行しましたが、メモリ エラーは発生しませんでした。
- プログラムの状態の一部を出力できるように、独自のシグナル ハンドラーを定義して segfault シグナルをキャプチャしました。
- これで、segfault が発生したときに、バックトレースを使用して現在のスタックを出力できます。
- 変数値を出力できます。
- 現在の行番号に設定される変数を作成しました。
- また、問題が解決すればセグメンテーション違反が見つかることを期待して、コードのチャンクをコメントアウトしようとしました。
悲しいことに、出力される行番号はかなりランダムです。スタックトレースで何ができるか完全にはわかりません。セグメンテーション違反が発生した関数のアドレスのみを記録すると仮定して正しいですか?
疑惑:
- コンドルがマシン間でジョブを移動するために使用するチェック ポインティング システムは、メモリの破損に対してより敏感であると思われます。これがローカルで見られない理由です。
- そのインデックスがバグによって破損しており、これらのインデックスがセグメンテーション違反を引き起こしていること。これは、セグメンテーション違反がかなりランダムな行番号で発生しているという事実を説明します。
アップデート
これをさらに調査すると、次のリンクが見つかりました。
LibSegFault - セグメンテーション違反に関する状態データを自動的にキャッチして出力するためのライブラリ。
segfault のキャッチに関するGCC チュートリアルを使用したスタックの巻き戻し (スタック トレース) と、問題のある命令の行番号の取得。
更新 2
Greg は、condor のログを見て、「コンドルがチェックポイントから実行可能ファイルを再起動したときにセグメンテーション違反を関連付ける」ことを提案しました。ログを見ると、segfaults はすべて再起動直後に発生します。すべての障害は、ジョブがあるタイプのマシンから別のタイプのマシンに切り替わったときに発生するようです。
更新 3
コンドル送信ファイルの「requiremets」フィールドを問題に設定することで、ホスト間の違いによって引き起こされていたセグメンテーション違反は完全になくなりました。
個々のマシンを設定できます:
またはマシンのクラス全体:
要件の例はこちら
r - Rを使用する場合、HadoopとCondorのどちらを優先する必要がありますか?
大学のコンピューターグリッド上の複数のコンピューターに作品を送信する方法を探しています。
現在、Condorを実行しており、Hadoopも提供しています。
したがって、私の質問は、プロジェクトのためにRとHadoopまたはConderとのインターフェースをとるべきかということです。
議論のために、驚異的並列タスクについて話していると仮定しましょう。
ps: CRANタスクビューで説明されているリソースを見てきました。
python - ジョブスケジューリング用のPythonライブラリ、ssh
私が使用していた短いスクリプトを置き換えるためのユーザースペースツール(できればPythonで-それを除けば、必要なことをまだ実行していない場合は簡単に変更できるもの)を見つけたいと思います。以下の2つのこと:
- 100台未満のコンピューター(Fedora 13、それはそうなります)をポーリングして、負荷、使用可能なメモリー、および誰かがそれらを使用しているように見える場合
- ジョブに適したホストを選択し、これらのジョブをsshで実行します。これらのジョブは、共有ファイルシステム(通常は画像処理スクリプトなど)のcpu、場合によってはメモリを大量に消費するタスクの読み取りと書き込みを行う任意のコマンドラインプログラムの実行です。
たとえば、現在のスクリプトを使用すると、Pythonプロンプトで実行できます
またはコマンドラインから
コマンドをusers
5回実行します(構成ファイルから少なくとも5台のコンピューターのCPU負荷と使用可能なメモリーを確認して、コマンドを実行できる5台のコンピューターを見つけた後)。実行したスクリプト以外にジョブサーバーはなく、これらのコマンドを実行するコンピューター上にワーカーデーモンやプロセスはありません。
さらに、ジョブを追跡したり、失敗したときにジョブを再実行したりできるようにしたいのですが、これらは実際には必要のない追加機能(実際のジョブスケジューラでは非常に標準的)です。
私はPython用の優れたsshライブラリを見つけました。classhやPuSSHのようなもので、私が望む(非常に単純な)負荷分散機能がありません。私が欲しいものの反対側は、私が何かもっと軽いものが欲しいと明確にする前にクリスパマーレによって示唆されたように、コンドルまたはスラムです。それらは適切な方法で物事を行っているでしょうが、それらについて読むと、私がそれらを必要とするときにのみユーザースペースでそれらを回転させるように聞こえます。これは専用のクラスターではなく、これらのホストへのrootアクセス権がありません。
私は現在、他に何かが見つからない場合にコンピューターがどれほど忙しいかを知る必要があるときはいつでも、コンピューターの基本的なポーリングでclasshのラッパーを使用することを計画しています。
native - ネイティブ プログラムを直接実行すると正常に動作するのに、コンドル経由で送信するとセグ フォールトで失敗するのはなぜですか?
シミュレーションに取り込もうとしているサードパーティのライブラリがあります。静的ライブラリ (.a) と、そのすべてのランタイム依存関係 (共有オブジェクト) があります。ライブラリにリンクされた非常に単純なアプリケーション (C 言語) を作成しました。サードパーティ ライブラリの API の一部である初期化関数を呼び出して終了するだけです。これをコマンドラインから直接実行すると、正常に動作します。実行可能ファイルをコンドル グリッドに送信すると、strncpy (libc.so.6) でセグ フォールトが発生して失敗します。特定のマシンでのみ実行可能ファイルを実行するようにコンドルを強制しました。そのマシンで直接実行すると、問題なく動作します。
私は主に Java プログラマーです... ネイティブ コーディングの経験は限られています。私は、nm、ldd、catchsegv などのツールに精通しており、それらを実行できるようになっています。しかし、どこから問題を探し始めたらよいかわかりません。
ldd を実行中のマシンで直接実行し、condor から送信されたスクリプトを介して実行可能ファイルと共に実行しました。ldd は、どちらの場合も同じファイルを報告します。
直接実行する方法はわかりませんが、コンドルで実行すると失敗します。プログラムを最終的に実行するプロセス、condor_startd は、root として開始し、その有効な uid をサブミッターに変更するプロセスです。もしかしてこれが何か関係あるの?
r - リターン コード 10 は、R ドキュメントでの意味
ジョブをコンドルに送信するときにコンドルに送信する必要がある R ジョブのグループがありますが、それらは実行されず、Sched Log ファイルを確認すると、ジョブはステータス コード 10 で終了しています。これ?
ここに私の提出ファイルがあります:
これが私の Sched ログ ファイルです。
これに関するアイデアは評価されます..
ありがとう
condor - コンドルでの最大実行時間
私は Condor を使用して多くのジョブを実行していますが、ジョブが一定時間 (たとえば 2 時間) 以上実行されないようにしたいと考えています。この制限時間後にジョブを強制終了し、失敗としてマークすることを Condor 送信スクリプトで指定する方法はありますか?
cluster-computing - CentOSはCondorをサポートしていますか?
Condorをミドルウェアとして使用してHPCクラスターを作成する予定です。CentOSはOSとして良い選択ですか?つまり、CentOSはコンドルをサポートしていますか?インストールプロセスに役立つチュートリアルはありますか?
よろしく、
centos - CentOSを実行している4台のサーバーにCondorをインストールするためにどのタイプのインストールを使用する必要がありますか
CentOS5を実行している4台のサーバーにCondorをインストールし、これら4台の専用マシンを使用してHPCクラスターを形成する予定です。RedhatRPMファイルを使用してCondorをインストールできますか、別のファイルがあり、どのタイプのインストールを使用する必要がありますか。同じ手順です。異なる構成または異なるインストール手順で?
これは私が使用したインストール手順です:http://bit.ly/A7Xddl
よろしく。