HPC と呼ばれる分野がある。日本語で言うと高性能計算、ハイ・パフォーマンス・コンピューティングの略である。大規模な科学技術計算においては並列した計算機上で演算を実行することが多い。科学技術計算というと大げさだが、たとえば円周率の計算だって数学上の課題である。このように計算機を分散して並列実行するにあたり、そのへんの不要になったパソコンを並べるだけでも大きな効果を発揮する。逆に言うとスパコンといえども実体は計算機の巨大なクラスターである。たとえば有名なスパコンの「京」だって筐体数およそ 860 、チップ数およそ 80,000 、コンピュータ数 660,000 程度の計算機の集合体である。
Windows 7 サポート終了となったが、先日書いたようにこのような状況は大量の廃棄パソコンを集めて計算機クラスターを組む良い機会である。廃棄予定のパソコンをかき集めて中身を検査し、ディスクなどに問題のあるパソコンからは部品を奪取し、検査に合格したパソコンに部品を集約。それらの機械を各部署各拠点から集めてくれば、計算機クラスター構築に必要な資源がもりもり集まる。
流れとしては以下のようになる。
・まずは少数の台数 (1 桁) で計算機クラスタの基礎を構築する
・マスターノードからスレーブノードに接続や資源の配布などが可能なようにしておく
・続いて集まった不要パソコンは、どんどんスレーブノードとして追加し、計算機クラスターを巨大化していく
やるべきことは以下の通り。
・各部署各拠点のキーパーソンに交渉し、廃棄予定のパソコンが自部門に集まるように依頼する
・ハードウェアの検査と Linux のインストール手順を整備し、指示書を作成する
・担当者を任命し、廃棄パソコンが届いたら、環境構築を指示する
課題としては以下の通り。
・有線ネットワークの場合、大量の LAN ケーブル (カテゴリ 5e 以上) が必要になる
・スイッチングハブもポートの多いものが必要になる
・電源タップも必要になる
・計算機が多くなればなるほど消費電力も大きくなる
・置く場所も必要
計算機クラスタのスレーブノードとしての要件は次の通り。
・故障しておらず、単体でもそれなりの計算性能がある
・WOL (Wake On Lan) に対応していること
・マスターノードから公開鍵認証で接続可能
・基本的にマスターノードと同じ OS 環境、ソフトウェア構成であること
並列計算の実行には以下のようにする。
・MPI を利用する
・ファイルシステムは NFS でなくても SSH プロトコル経由でマウントできる
・並列実行可能なプログラミングをおこなう
このあたり、そのうち気が向いたら個別に書いていこうと思う。