私は、20代の頃、スーパーコンピュータのシステムエンジニアをしていた。研究所などで利用されるスーパーコンピュータは、通常のコンピュータでは到底扱えないような膨大なデータを処理することと、計算時間に何ヶ月も何年もかかるところを数時間で処理するスピードが要求される。
このため、当時のスーパーコンピュータは、大きなメモリと高速なCPUを搭載することで、当時にパソコンの何千倍もの能力を発揮した。日米で開発競争が激しくなり、飛躍的に計算能力は向上していった。しかし、1台の計算能力をあげることから、複数台を利用することで能力を向上させようという考えが登場した。
初めは、並列コンピュータと呼ばれるものが生まれ、一つの処理を複数のコンピュータに分割して処理させようとした。1から10までのデータはAというCPUで、11から20までのデータはBというCPUでという具合だ。これにより、100までを処理を10台のコンピュータで並列処理させれば、10倍のスピードが出ることになる。
やがて、この考えの延長に、数百台、数千台を利用して処理しようという考えが生まれた。しかも、一つの処理を分割するだけでなく、複数の処理を分割して処理する分散コンピュータという考えである。これによって、Xという処理をAが、Yという処理をBが行い、Zという処理をCとDで分散して処理するようなことができるようになった。
これにより、安価で大量の市販パソコンを利用することで、これまでの高価で大規模なスーパーコンピュータと同等以上の効果が得られるようになった。
一台のパソコンでは小さな処理しか実現できないが、大量にネットワークで接続して、計算資源を活用しようというのがグリッド・コンピュータである。
私は、この考えを経営にも適用できないかと考えた。
それがドリームクラスターである。
グリッド・コンピュータは、コンピュータ・クラスターとも呼ばれ、様々な商用コンピュータも誕生している。
ドリームクラスターは、一つの会社では小さな事業しかできなくても、何百の会社が接続して、複数の事業を複数の会社が分散して行えば、大きな事業が行えるのではないかと考えている。
とても一人ではできないことでも、複数の人が手を組むことで、大きなものと対等に競争できるかも知れない。そう考えてドリームクラスター・グループは誕生した。
4月には、グループ全体の社員数は50名を越え、資本金も総計6千万円近くになる。近い将来は、グループ各社で共同出資するファイナス専門の会社を設立する予定で、そうなれば、資本金は一億円を越える。
私のような平凡なものには、とても一人では実現できない。皆が少しづつ手を差し伸べるだけで、これまで不可能なことが実現可能になるのだ。
一台の市販の安価なパソコンでも、何千台も接続すれば、大きな仮想メモリが実現でき、大量のCPUで計算できる。体育館のような巨大な設備が必要であったスーパーコンピュータと同じような能力を発揮できるのである。
しかし、1台のスーパーコンピュータと、グリッド・コンピュータ(クラスター)との最大の違いは、プログラムである。つまりソフトウェア。大規模なメモリを持つスーパーコンピュータは、プログラムに手を加えずに、大量のデータをメモリに入れることができる。しかも、一台のCPUが高速だから、プログラムをそのまま実行させればすぐに結果を出すことが可能だ。
しかし、クラスターではそう簡単ではない。今でこそ、ある程度自動で分散処理できるようになったとはいえ、基本的には手動で分散を指示する必要がある。
この処理はどのコンピュータで、このデータはどれとどれに分散してメモリに入れるだとかを指示しなければならない。この指示次第で、全体の処理時間に大きな影響を及ぼす。
例えば、最も処理に時間がかかる部分を、2台に分散せず、1台のしかも比較的処理の遅いコンピュータに任せてしまった場合、その1台の処理が終わるまでは、もう1台のコンピュータが待ち状態になってしまう可能性があるからである。どの処理はどこで、どれくらいの量をやらせて、全体としてどう分散すれば良いかプログラムに手を加えてチューニングする必要があるのだ。
各コンピュータの負荷や特性が把握できて、自動的にやれるところをやれる分だけ実行できるようになれば、そんな指示はしなくても良いだろう。しかし、それぞれのコンピュータは、パソコンであるならば、そもそも自分の処理をするためにネットワークで繋がっているから、自分の処理をやっている時には、全体の処理は後回しになる。だから、ネットワーク上に折角高速で大きなメモリを持ったコンピュータが繋がっていても、空いているときにしか効果的に利用できない。
ドリームクラスターでは、これを克服するために、予めネットワークに接続できる会社を定め、接続条件を明示し、それぞれのコンピュータの役割を決めている。自分は自分の担当する処理をできるだけ他からの待ちになることなく、進んで先に先に実行するようにする。
そんな自動的な分散処理ができるよう、今の私の役目は手動でプログラムに手を加えている。やがて、私の役割がなくなるように。
最後まで読んで頂き、感謝申し上げます。
毎朝6時に社内朝礼ブログをこちらで公開しています。こちらもご覧頂けたら幸いです。
この内容に共感頂けたらこちらをクリックして下さい。ありがとうございます。
投稿者 :堀田信弘: 2007年3月26日 09:44