背景

大学や研究所の研究者ならば、規模の大きい計算をするばあいスーパーコンピュータセンタのスーパーコンピュータを使うのが一般的です。スーパーコンピュータの中身は一見すれば普通のパソコンをつないだだけのようにみえます。スーパーコンピュータのスーパーなところは、トラブルを防ぐための高い信頼性(低いエラー率、バックアップシステム、電源管理など)、高い分散能力(高速通信など)、大規模なメモリ空間、多人数で使うための効率的なジョブ管理システム、などといったややスペシャルな部材と技術が使われているところだろうと思います。それから忘れてはならないのは、専門技術者によるスーパーコンピュータの管理とチューニングにより、その性能を最大限発揮できるところです。

 近年は家庭で使うようなパソコンでも相当な計算パワーを持つようになってきました。計算の規模や性質によっては普通のパソコンで十分ということもあります。一台のパソコンでは時間的、もしくはメモリ空間的に足りない場合は、複数台のパソコンをネットワークでつないでクラスタを作り、少し大きな規模の計算を行います。スーパーコンピュータにせよ、小規模なクラスタにせよ、ネットワーク通信を使って複数の「ノード」と呼ばれる小さい単位のコンピュータに計算を分散するのは同じです。このとき問題となるのが、通信がボトルネックとなることです。通信速度が十分でない場合は、ひとつの計算を分割して各ノードに配るとき、もしくは各ノードの計算結果を回収するときに、通信待ちが発生します。したがって、一般的には計算を分散することによって、計算効率はどんどん落ちていきます。両手で数えられる程度の台数でしか十分な分散効率が得られない、といった計算の場合、お手製クラスタくらいがちょうどいいサイズ、ということもあるかもしれません。