巻頭特集 -旬の話題をお届け-

2012.01.01 [第31号]

いまさら聞けないPCクラスタの基礎知識

top.jpg

PCクラスタとは?

簡単に言ってしまえば、複数台のPCをネットワークで接続し、
ひとつのコンピュータに見立てて利用できるようにしたシステムです。

性能向上のみならず、負荷分散や可用性(システムの壊れにくさ)の確保にも利用されますが、
性能向上を目的に構築され科学技術計算に利用されるPCクラスタは
HPC(high performance computing)クラスタとも呼ばれています。
クラスタでは多数のPCに分散して並列処理を行うことで、
スーパーコンピュータに匹敵するような性能を安価に実現することができます。
現に最新のスパコンの多くはクラスタ構成となっており、
先日世界のスパコンのTOP500で1位を獲得した「京」もクラスタ構成です。
(CPU88,128個、88,128ノード、864ラック)


ハードウェア

小規模なクラスタでは通常のタワー型PCを利用することが多く、もっとも低コストに導入できます。
クラスタを構成している各PCのことをノードと呼びますが、
ノード数が多くなってくるとタワー型PCではスペースを取ってしまうため、
ラックマウント型やブレードサーバーなどが利用されます。
最近ではPC1台あたりのCPUコア数が増えてきており、
またCPUだけでなくGPGPUも利用されるようになりつつあります。


ネットワーク

もっとも安価に済ませる場合は一般的なギガビットLAN(GigabitEthernet)を利用し、
ハブを介して接続します。ギガビットLANの理論通信速度は1Gbpsですが、
計算によっては通信量が膨大になり、ネットワークがボトルネックとなるため、
InfiniBandなどのより高速な接続方式(数G~十数Gbps)を利用します。
その場合は専用の拡張ボードや専用スイッチを利用して接続します。


OS

多くの場合、クラスタを構成する各PCのOSにはLinuxを利用しますが、
Windowsでクラスタを構築することもできます。
Linuxの場合はごく一般的なディストリビューションを用いてクラスタを構築できます。
ただし、インストール時のパッケージをクラスタ向けに選択したり、
インストール後に特別な設定を行うといった事は必要になります。


ソフトウェア

クラスタ上での科学技術計算には主にCやFORTRANなどが利用されていますが、
並列計算用のライブラリとしてMPI(Message-Passing Interface)というものを利用します。
MPIを使うことにより、各ノード間の計算結果の受け渡しが容易に行えるようになります。
MPIにはOpenMPIやMPICHなどさまざまな種類があり、OSに別途インストールします。
ただ、MPIがあればどんなプログラムでもクラスタで並列計算ができるというわけではなく、
あくまで並列計算向けにプログラミングする必要があります。
また、クラスタの性能を測るベンチマークテストには、TOP500でも利用されているLINPACKや、
理化学研究所の姫野龍太郎氏が開発している姫野ベンチなどが多く利用されています。


まとめ

クラスタの構築そのものは、やり方が分かってしまえば、実際のところそれほど難しくはありません。
しかし、マシンスペックやベンチマークテストの結果が良いからと言って
期待通りのパフォーマンスを発揮できるとは限りません。
CPU性能やメモリ容量、通信速度などのバランスを取ることはもちろん、
並列計算向けにプログラミングを最適化することが重要となってきます。
うまく活かしていただき、研究開発の加速化につなげて欲しいものです。



ページの先頭へ