スーパーコンピューターの作り方

ページ名:スーパーコンピューターの作り方

1秒間に何百兆回もの浮動小数点演算ができるマシンが必要ですか?それとも、地下室のスーパーコンピューターがブレーカーを落としたという小咄が必要ですか?ハイパフォーマンス・コンピューティング・クラスター、通称スーパーコンピューターの自作は、週末に自由な時間とある程度の資金があれば、どんな専門家でも取り組むことができる挑戦です。技術的に言えば、最新のマルチプロセッサ・スーパーコンピュータは、問題を解決するために並列に動作するコンピュータのネットワークである。この記事では、ハードウェアとソフトウェアに焦点を当てながら、そのプロセスの各ステップについて簡単に説明する。

  • 1
    まず、必要なハードウェア・コンポーネントとリソースを決定する。ヘッドノードが1台、同じコンピュートノードが少なくとも12台、イーサネットスイッチ、配電ユニット、ラックが必要です。必要な電気需要、冷却、スペースを決定します。また、プライベートネットワークに必要なIPアドレス、ノードの名前、インストールするソフトウェアパッケージ、並列コンピューティング機能を提供する技術(これについては後で詳しく説明します)も決めておきます。
    • ハードウェアは高価だが、このハウツーに掲載されているソフトウェアはすべて無料で、ほとんどがオープンソースだ。
    • あなたのスーパーコンピューターが理論上どれくらいの速度になるかを見たい場合は、このツールを使ってください:
  • 2
    コンピュートノードを構築する。コンピュートノードを組み立てるか、あるいは構築済みのサーバーを入手する必要があります。
    • スペース、冷却、エネルギー効率を最大化するコンピューター・サーバー・シャーシを選択します。
    • あるいは、中古の古くなったサーバーを12台ほど利用することもできます。プロセッサー、ネットワーク・アダプター、マザーボードは、システム全体がうまく機能するように、すべて同じものでなければならない。もちろん、各ノード用のRAMとストレージ、ヘッドノード用の少なくとも1台の光学ドライブもお忘れなく。
  • 3
    サーバーをラックに取り付けます。ラックが重くならないように、下から始めます。高密度のサーバーは非常に重いため、ラックに固定するレールに誘導するのは難しい。
  • 4
    サーバーシャーシの上にイーサネットスイッチを設置します。ジャンボフレームサイズを9000バイトにし、IPアドレスをステップ1で決めた静的アドレスに設定し、SMTP Snoopingなどの不要なルーティングプロトコルをオフにします。
  • 5
    PDU(配電ユニット)を取り付けます。ノードが最大負荷時にどれだけの電流を必要とするかにもよりますが、高性能コンピューティングには220ボルトが必要な場合があります。
  • 6
    すべてのインストールが完了したら、設定プロセスを開始できます。Linuxは、HPCクラスタ用の事実上のOSであり、科学的コンピューティングに理想的な環境であるだけでなく、数百、数千のノードにインストールするのにコストはかかりません。Windowsをすべてのノードにインストールするのにどれだけのコストがかかるか想像してみてほしい!
    • マザーボードのBIOSとファームウェアの最新版をインストールすることから始める。
    • 各ノードに好みのLinuxディストロをインストールする。一般的な選択肢としては、CentOS、OpenSuse、Scientific Linux、RedHat、SLESなどがある。
    • 筆者はRocks Cluster Distributionの使用を強く推奨する。Rocksは、コンピュートクラスタの機能に必要なすべてのツールをインストールするだけでなく、PXEブートとRed Hatの「キックスタート」手順を使って、多数のインスタンスをノードに素早く「配布」する優れた方法を採用している。
  • 7
    メッセージパッシングインターフェース、リソースマネージャ、その他必要なライブラリをインストールします。前のステップで Rocks をインストールしていない場合は、並列コンピューティング機構を有効にするために必要なソフトウェアを手動でセットアップする必要があります。
    • まず、Torque Resource Managerのような、タスクを分割して複数のマシンに分散できるポータブルなbash管理システムが必要です。
    • TorqueとMaui Cluster Schedulerをペアにしてセットアップを完了します。
    • 次に、別々のコンピュートノード上の個々のプロセスが同じデータを共有するために必要なメッセージパッシング・インターフェースをインストールする必要があります。OpenMPをインストールすれば問題ありません。
    • 並列計算プログラムを構築するためのマルチスレッド数学ライブラリーとコンパイラーもお忘れなく。Rocksをインストールすべきだって言ったっけ?
  • 8
    計算ノードをネットワークで結びます。ヘッドノードはコンピュートノードに計算タスクを送り、コンピュートノードは結果を送り返す。速ければ速いほどよい。
    • クラスタ内のすべてのノードを接続するには、プライベート・イーサネット・ネットワークを使用します。
    • ヘッドノードはイーサネットネットワーク上でNFS、PXE、DHCP、TFTP、NTPサーバーとしても動作します。
    • このネットワークをパブリックネットワークから分離して、ブロードキャストパケットがLAN内の他のネットワークに干渉しないようにする必要があります。
  • 9
    クラスタをテストします。すべての計算能力をユーザーに解放する前に最後にやっておきたいことは、そのパフォーマンスのテストです。HPL (High Performance Lynpack)ベンチマークは、クラスタの計算速度を測定するための一般的な選択肢です。選択したアーキテクチャに対して、コンパイラが提供する可能な限りの最適化を施してソースからコンパイルする必要があります。
    • もちろん、プラットフォームに対して可能な限りの最適化オプションを使用してソースからコンパイルする必要があります。たとえば、AMD CPUを使用する場合は、Open64で-0fast最適化レベルでコンパイルします。
    • TOP500.orgで、あなたのクラスタと世界最速のスーパーコンピュータ500台を比較してください!
  • この記事は、CC BY-NC-SAの下で公開されている " How to Build a Supercomputer " を改変して作成しました。特に断りのない限り、CC BY-NC-SAの下で利用可能です。

    シェアボタン: このページをSNSに投稿するのに便利です。

    コメント

    返信元返信をやめる

    ※ 悪質なユーザーの書き込みは制限します。

    最新を表示する

    NG表示方式

    NGID一覧