コンテンツ
1秒あたり数百兆の浮動小数点計算を実行できるマシンをお探しですか?または、あなたの部屋にマウントされているスーパーコンピュータについて友達に自慢したいだけですか?ハイパフォーマンスコンピューティングクラスターまたはスーパーコンピューターを構築することは、週末が自由でお金が残っているマニアが達成しようとする挑戦です。技術的には、マルチプロセッサスーパーコンピュータは、問題を解決するために連携して動作するコンピュータのネットワークです。この記事では、ハードウェアとソフトウェアを中心に、プロセスの各ステップについて簡単に説明します。
手順
- 最初に、必要なハードウェアコンポーネントとリソースを決定します。 ヘッドノード、少なくとも12の同一のネットワークノード、イーサネットスイッチ、配電ユニット、およびラックが必要です。必要な電力、冷却、およびスペースの需要を決定します。また、プライベートネットワークに使用するIPアドレス、ノードの命名方法、インストールするソフトウェアパッケージ、および並列コンピューティングの実行に使用するテクノロジを決定します(詳細は後ほど説明します)。
- ハードウェアは高価ですが、ガイドに記載されているすべてのプログラムは無料で、それらのほとんどはオープンソースです。
- スーパーコンピューターの理論的な速度を確認したい場合は、次のツールを使用してください:http://hpl-calculator.sourceforge.net/
-
ノードを作成します。 ノードをマウントするか、事前に組み立てられたサーバーを購入する必要があります。- スペース、冷却、電力使用量を最大化するサーバーシャーシを選択してください。
- 複数の古いサーバーを使用することもできます。その総コストは部品の合計よりも大きくなりますが、それでもかなりの節約になります。システムが正常に機能するには、すべてのプロセッサ、ネットワークアダプタ、およびマザーボードが同一である必要があります。もちろん、各ノードのRAMとストレージ、およびヘッドノードの少なくとも1つの光学ドライブを必ず含めてください。
-
サーバーをラックに取り付けます。 下から始めて、上が重すぎないようにします。これには友達の助けが必要です-高密度サーバーは非常に重く、それらを保持するトラックに沿ってサーバーを誘導することは困難です。 - イーサネットスイッチをサーバーシャーシの上に取り付けます。 この時間でスイッチを構成します。9000バイトのジャンボフレームサイズを有効にし、IPアドレスを最初の手順で決定した静的アドレスに設定し、SMTPスヌーピングなどの不要なルーティングプロトコルを無効にします。
-
配電ユニットを取り付けます。 全負荷でノードが必要とする電流の量によっては、高性能コンピューティングに220ボルトが必要になる場合があります。 - すべてがインストールされたら、構成プロセスを開始できます。 LinuxはHPCクラスターに理想的なOSです。科学計算に理想的な環境であるだけでなく、何百、何千ものノードに自由にインストールできます。これらすべてのノードにWindowsをインストールするのにかかる費用を想像してみてください。
- すべてのノードで同一である必要があるマザーボードBIOSとファームウェアの最新バージョンをインストールすることから始めます。
- 各ノードにお気に入りのバージョンのLinuxをインストールし、ヘッドノードにグラフィカルインターフェイスをインストールします。一般的なオプションには、CentOS、OpenSuse、Scientific Linux、RedHat、SLESなどがあります。
- Rocks Cluster Distributionを使用することもできます。クラスターの動作に必要なすべてのツールをインストールすることに加えて、RocksはPXEブートとRed Hatの「キックスタート」手順を使用して、それ自体の複数のインスタンスをノードに非常に迅速に分散する優れた方法を使用します。
- メッセージングインターフェイス、リソース管理、その他の必要なライブラリをインストールします。 前の手順でRocksをインストールしなかった場合は、並列計算メカニズムを有効にするために必要なソフトウェアを手動で構成する必要があります。
- まず、タスクを複数のマシンに分割して分散できる、Torque Resource Managerなどのポータブルな大規模管理システムが必要です。
- トルクをMaui Cluster Schedulerとペアリングして、インストールを完了します。
- 次に、異なるノードの個々のプロセスが同じデータを共有するために必要なメッセージ送信インターフェースをインストールする必要があります。 OpenMPは使いやすいです。
- 並列計算プログラム用のマルチスレッド数学ライブラリーを忘れないでください。 Rocksをインストールすると非常に簡単です。
- コンピュータノードを接続します。 ヘッドノードはタスクをコンピューターのノードに送信します。コンピューターのノードは結果を送り返す必要があります。また、メッセージを相互に送信する必要があります。速いほど良い。
- プライベートイーサネットネットワークを使用して、クラスター内のすべてのノードを接続します。
- ヘッドノードは、イーサネットネットワーク上でNFS、PXE、DHCP、TFTP、およびNTPサーバーとしても機能します。
- このネットワークをパブリックネットワークから分離する必要があります。これにより、送信パケットがLAN上の他のネットワークに干渉しないことが保証されます。
- クラスターをテストします。 ユーザーにその計算能力をすべて解放する前に最後にしたいことは、ユーザーのパフォーマンスをテストすることです。 HPL(High Performance Lynpack)ベンチマークは、クラスターの計算速度を測定するための一般的な選択肢です。選択したアーキテクチャー用にコンパイラーが提供するすべての可能な最適化を使用して、ソースからコンパイルする必要があります。
- 当然のことながら、プラットフォームから可能な限りの最適化を行って、ソースからコンパイルする必要があります。たとえば、AMD CPUを使用している場合は、-0fast最適化レベルでOpen 64を使用してコンパイルします。
- TOP500.orgの結果を比較して、クラスターを世界で最も高速な500台のスーパーコンピューターと比較してください!
チップ
- IPMIは、大規模クラスターの管理を容易にし、KVM-over-IP、リモート処理リレーなどを提供します。
- 本当に高いネットワーク速度を実現するには、InfiniBandネットワークインターフェイスを探します。ただし、価格はそれほど手頃ではありません。
- Gangliaを使用して、ノードの計算負荷を監視します。
警告
- インフラストラクチャが負荷を処理できることを確認してください。