クラスター? 簡単!

画像 こんにちは、Khabravchiansは活動の性質上、特定のソフトウェア製品のクラスターソリューションで作業する必要があります。 しかし、ソフトウェア製品の設定について話すのはあまり有益ではないので、 ユーリのサイトを検索してつまずく(彼に感謝します)ため、このトピックを少し開発し、具体的な例を使用してクラスター実行でのPiの数を計算する際のパフォーマンスの向上を確認しました。



したがって、4台のHPサーバーがあり、そのうち3台がクラスター化され、1台が管理コンソールになります。 すべてのサーバーで、Linux SLES 10 SP2およびopenMPIがデプロイされ、コンソールとサーバー間のパスワードなしのSSHアクセスも編成されます。



続行:



最小限のシステム設定でLinuxをインストールします。必要なパッケージは後で配布できます。 すべてのクラスタノードのコンポーネントのアーキテクチャは同一である必要があることに注意してください。

openMPIパッケージをクラスターのノードにダウンロードし、アセンブルしてインストールします。

./configure

作る

インストールする



openMPIのインストール後、作業の次のステップは、クラスターの各ノードのPiの数を計算するプログラムをコンパイルすることです。 これを行うには、 YASTに存在するlibopencdkパッケージと、Pi番号を計算するためのプログラムのソースコード( flops.f )が必要です。 パッケージがインストールされ、プログラムがクラスターおよびコントロールノード(コンソール)のすべてのノードで同じディレクトリに配置された後、プログラムのコンパイルに進みます。

mpif77 flops.f -o flops



ssh経由でパスワードなしのアクセスを設定します。すべてが簡単です:



1)クラスターのコンソールに移動し、次のコマンドでrsa-keyを生成します。

ssh-keygen -t rsa

2)コンソールの公開鍵(root / .ssh / id_rsa.pub)をクラスターのすべてのノードにコピーします(私の場合)。

scp /root/.ssh/id_rsa.pub server1:/root/.ssh

3)クラスターの各ノードで、アクセスファイルを作成します。

cat id_rsa.pub >> authorized_keys

パスワードなしでアクセスできます。



次のステップでは、すべてのクラスターのノードのリストを含むファイルを作成し、 openmpi.hostという名前を付けて、数値Piを計算するためのテストプログラムとともにフォルダーに配置します。 ファイル内のノードは、名前または単にアドレスで指定できます。 例:

192.168.0.1

192.168.0.2

192.168.0.3

Serv1

Serv2

Serv3



これで、コンソールとクラスターノードの構成が完了し、テスト段階に進みます。



1つのサーバーでプログラムを実行します。このために、コントロールノードで次のコマンドを実行します。

mpirun -hostfile /var/mpi/openmpi.host -np 1 var / mpi / flops



どこで:

-Np計算で使用されるクラスターノードの数。

計算時間(秒)-時間計算操作。

クラスター速度(MFLOPS)-1秒あたりの浮動小数点演算の数。





次の結果が得られます。



計算時間= 4.3

クラスター速度= 418 MFLOPS



さらに1つのサーバーをクラスターに追加します。

mpirun -hostfile /var/mpi/openmpi.host -np 2 var / mpi / flops



次の結果が得られます。

計算時間= 1.82

クラスター速度= 987 MFLOPS



最後の3つのサーバーをクラスターに追加します。

mpirun -hostfile /var/mpi/openmpi.host -np 3 var / mpi / flops



次の結果が得られます。

計算時間= 1.18

クラスター速度= 1530 MFLOPS



操作計算時間(秒):







1秒あたりの浮動小数点演算数(MFLOPS):







取得したデータを分析した後、新しいノードをクラスターに追加すると、システム全体のパフォーマンスが(1 / N)* 100%増加すると結論付けることができます。



この記事では、クラスターソリューションに適用される特定の問題を解決するためのオプションを分析するという目標を設定しませんでした。 私の目標は、クラスターシステムの有効性を示すことでした。 また、例によって、ネットワーク構造にクラスター要素を構築するアーキテクチャを示します。



UPD: uMg80x86に対する建設的な批判のおかげで、記事に対応する変更が加えられました。



All Articles