2009-05-30 4 views
2

され、次のいずれかの/すべて:指定したIPアドレス範囲のすべての実行中の(Linux)のパソコンの信頼できないクラスタにプログラムを配布するにはどうすればよいですか?私が探している何

  • 労働者の障害の自動検出(例えば、コンピュータオフ)
  • 検出(上のコンピュータ)
  • ...とオートワーカー産卵(ピング+ sshを?)労働者が他のプロセスを遅くしないように
  • 負荷分散(素敵な?)メッセージ・パッシングの
  • 何らかの形

...ホイールを再構築したくありません。

C++ライブラリ、bashスクリプト、スタンドアロンプ​​ログラム...すべて歓迎します。

ソフトウェアの例を挙げた場合は、上記の機能のうち何を持っているか教えてください。

答えて

4

Spread Toolkit、C/C++グループ通信システムをチェックしてください。分散したワークロードを再調整できるように、ノード/プロセスの障害と回復/起動を検出できます。

+0

nice。 2006年に最後のリリースがあった –

+1

それはまだ積極的に維持されています。それはちょうどかなり安定している。 –

+0

おっと、忘れて、devブランチ経由でパッチを入手することができます。4.0.1のバージョンはそれほど遠くないかもしれません。 –

1

アプリケーション要件に応じて、私はBOINCインフラストラクチャをチェックアウトします。彼らは最新のリリースでクライアント/サーバ通信の一形態を実装しており、どのようなコミュニケーションが必要かははっきりしていません。彼らのAPIはC言語で書かれており、C++で非常に簡単にラッパーを記述しています。

BOINCのもう1つの利点は、SETIやRosetta @ Homeなどの大規模分散コンピューティングプロジェクトのために設計されているため、検証、ジョブの配布、さまざまなプラットフォームの異なるアプリケーションバージョンの管理などがサポートされていることです。

ここのリンクです:

BOINC website

+0

ローカルエリアネットワークに導入するのは効率的か簡単ですか? –

1

Hadoopがありますが。 Map Reduceがありますが、必要な機能が他にあるかどうかはわかりません。誰か知ってる?

+0

Hadoopはこれを行います。 – monksy

2

探しているものを「ジョブスケジューラ」といいます。市場には多くのジョブスケジューラがありますが、これらは私が精通してるものです:

  • SGEは、任意およびすべての(キューイングの回復、監視、優先順位、)複数のマシン上のジョブスケジューリングに関連する問題を処理します。 SGEはバッチジョブを送信する環境を提供するだけなので、ソフトウェアはSGEを意識する必要はありません。
  • LSFは、より良い選択肢ですが、無料ではありません。

メッセージパッシングをサポートするには、MPI仕様を参照してください。 SGEはMPIベースの配布を完全にサポートしています。

0

実際には、「ジョブスケジューラ」を探しています。ノードはジョブスケジューラに「静的に」登録されます。これによりジョブスケジューラはノードを検査し、コア数、RAM、利用可能なスクラッチディスクスペース、OSなどを決定することができます。これらの情報はすべて、ジョブに必要なリソースを選択するために使用できます。

ジョブスケジューラは、クラスタの基本的なヘルスモニタリングも提供します。ダウンしているノードは、使用可能なノードのリストから自動的に削除されます。実行中のジョブ(スケジューラ経由)のノードも、使用可能なノードのリストから削除されます。

SLURMは、リソースマネージャー&ジョブスケジューラーと考えられます。 SLURMにはLSFとPBSProの統合フックがあります。いくつかのMPI実装は "SLURM対応"であり、SLURMによって割り当てられたノード上でMPIジョブを実行できる環境変数を使用/設定できます。

+0

slurmがhadoopとどのように関連しているのか聞いてもいいですか?どうしようもなくハーフジョブを実行できますか? –

+1

私はhadoopに精通していないので、私は関係の質問に答えることはできません。 SLURMはジョブスケジューラです。任意の「実行可能ファイル」(シェルスクリプトを含む)は、複数のノードにわたってジョブとして起動できます。次に起こるのは主に実行可能ファイルの関数です。 –

関連する問題