web-dev-qa-db-ja.com

MacとLinuxのハイブリッドシステムで分散コンピューティングシステムを構築するための戦略

Matlab、C、およびその他の科学計算用プログラミング言語を実行する分散コンピューティングシステムを構築したいと考えています。これで、Lion Mac OSがインストールされた古いMacマシンが、Webサーバーまたはパーソナルコンピューターとして機能するようになりました。また、Linuxとともにインストールする最新の16-Xeonコアマシンが1台あります。新しいマシンにどのLinuxディストリビューションを使用するかは決めていませんが、次の要素を考慮する必要があります。使用できるLinuxディストリビューション、使用できる分散コンピューティングソフトウェア、およびデータのバックアップとキューの割り当てを管理する方法を決定するのを手伝ってください。

  1. MacまたはLinuxOSを搭載したすべてのマシンは、並列コンピューティングまたは分散コンピューティングのクラスターシステムとして機能します。具体的には、複数のユーザーとスレッドを持つキュー内のマシンを横断するプログラムを実行する必要があります。すべてのマシンが対称ではないが、最も強力なマシンの速度を下げたくない場合。

  2. 新しいマシンはヘッドノードとして使用することをお勧めしますが、ヘッドノードがシャットダウンされた場合に備えて、少なくともセカンダリマシンもヘッドノードとして機能できる必要があります。

  3. バックアッププロセスはセットアップが簡単で、リモートで制御できる必要があります。これは最初の2つの要因ほど重要ではありません。少なくとも、重要なデータは手動でバックアップできます。

私はすでにグーグルを検索しました、しかし私は私の場合のためのまともな解決策を見つけませんでした。よろしくお願いします!

2
Xiaodong Qi

私の時代にいくつかのHPCクラスターをセットアップしたので、あなたがやりたいことは、クラスター内のノード間の互換性の問題で膨大な量の問題を引き起こすことになると言うことができます-おそらくそれがあなたが見つけることができない理由ですグーグル経由の直接回答。

これらの互換性の問題には、ソフトウェア、システムライブラリ、数値ライブラリと計算ライブラリ、CとFortranなどのコンパイラ(およびそれらのライブラリ)、PATHとLD_LIBRARY_PATHなどの変数のバージョンの違い、GNUと非シェルユーティリティのGNUバージョン、おそらくGPGPU計算用のCUDAとOPENCL(または同じバージョン)など。

これらの問題の多くは、Linuxの2つの異なるディストリビューション(またはクラスターの異なるノード上の同じディストリビューションの異なるバージョン)を使用するだけで発生します。

2つのクラスターをセットアップする方が簡単な場合があります。1つは単一ノード(Linuxを実行しているXeon)で、もう1つは複数のノード(OS X Lionを実行している古いMac)です。

ただし、それがオプションでない場合、考慮すべき最も重要なことは、Linuxディストリビューションではなくスケジューラーです。

私は個人的にあなたが望むものを設定したくありません、しかし私がそうしなければならなかったならば、私は PBSまたはトルク を使うことを考えません、私は Slurm を使います。 Slurmは、どのアプリケーションをどのノードで実行できるかをよりきめ細かく制御できます。 Oracleの Grid Engine は、あなたが望むことを実行できる別のオプションですが、私はそれが存在するという事実に言及する以上のことをするのに十分な知識がありません。

0
cas