スーパーコンピューターの概要(超初歩)

 大学でスーパーコンピュータースパコン)について学んだので、その講義をベースにしてスパコンの仕組みについて紹介します。

 あと、今日のテストの試験範囲にもなってるのでアウトプットがてらやってみます!

 僕自身は専門家でもなんでもないので誤解があってもご了承ください.....優しく教えてもらえると助かります。

 

スーパーコンピューターとは 

 

 ざっくりいうと、スーパーコンピューターとは

家にあるようなパソコンを何十万台もつなげた、すごい計算機

 のことです。

 

 日本では、「京」「富岳」が有名ですね。「富岳」の計算性能は実はつい最近まで世界一だったんですよ!ただ、ちょうど先月アメリカの「Frontier」に2.5倍ほどの差がつけられてしまったのですが......

 

 蓮舫議員の「2位じゃダメなんでしょうか?」という言葉は、「次世代スパコン事業」というスパコンの予算について議論した際にでた言葉で、これは「京」が世界一から二位に転落したことを指しています。

 

 たしかに、富岳一台にかかる予算も、1,100億円程度スパコンを作るのはかなり高額な予算が必要です。この言葉が出た気持ちはわかると思います。

 

 もちろん、富岳が二位になったから価値がなくなったなどではなく、富岳は非常に様々なことに応用されていますし、それが本当の目的です。

 

 富岳の応用として、次のようなことがあります。

 ちゃんと読まなくていいですが、あらゆる分野で活躍してることがわかります。

ヘルスケア 生体データの活用による健康促進と効率的な創薬
スマートシティ スマートシティの統合シミュレーションによる住みよい社会の実現
ものづくり 最適な経済モデルやサプライチェーンの構築で産業の国際競争力を強化
物質・材料 原子や電子のシミュレーションで社会に役立つ新物質・新材料を探索
防災 災害予測に加え、個別の避難指示と無人配送で減災力を向上
エネルギー 核融合から電池まで多階層で進めるエネルギー・環境技術革新

「富岳」でできること | 理化学研究所 計算科学研究センター(R-CCS)

 

スパコンの計算性能

 

 先ほど、「Frontier富岳2.5倍ほど」などと書きましたが、この比較はどうやってやるのでしょうか。

 

 これは、10桁ほどの数を一秒間に何回計算できるかというFLOPSという単位で比較しています。例えば、人間だと10桁×10桁の計算には、5分くらいかかると思います。となると、0.003FLOPSですね。さっき紹介したスパコンの値はこうなっています。

10 PFLOPS
富岳 442 PFLOPS
Frontier 1102 PFLOPS

 ここで、FLOPSの前についているPは、M(メガ、10の6乗)、G(ギガ、10の9乗)などのさらに先で、10の15乗を表しています。

 家庭用パソコンが4GFLOPSくらいなので桁違いに速いですね。

 

 ちなみにFLOPSは、連立方程式の解を求める速さで分かります。この手法をLinpackベンチマークといいます。

 

スパコンの構成

 

 実は、コンピューターを大量にインターネットで繋げたところで計算能力はあまり向上しません。スパコンは、ただ繋げるだけではなく並列処理という家庭用PCとは違う計算をすることで高速に計算が出来るのです。

 

 並列処理とは、「困難は分割せよ」的な計算方法です。

 

 人間の業務に例えて説明すると、1000枚の伝票を処理する業務は一人でやるよりも、

10人でやる方が単純に考えると、10倍速く終わります。これが基本的な並列処理の考え方です。

 でも実際はそんな単純に10倍にはなりません。独立に処理が出きればいいのですが、今度は1枚の伝票の処理に前後する2枚の伝票の部分情報が必要であるとします。すると、 部分情報を自分が持っていればいいが、他の社員が持っていると、その人にいちいち問い合わせる必要が生じて、効率が下がってしまいます。

 

 このような問題を考慮して効率よく計算できるようにプログラムを組まなければいけないのです。

 

 スパコンの計算の特に大きな問題として、次の二つが挙げられます。

• プロセッサ間通信のオーバヘッド
• 負荷分散

 順に説明します。

プロセッサ間通信のオーバヘッド 

 これは、並列計算をすることで本来必要なかった余計な計算が加わってしまうことです。

 

 例えば、1から10000まで足し算する処理を100台のコンピューターで並列処理するとします。このとき、最後にそれぞれのコンピューターが求めた値を足す必要が出てしまいます。このことをオーバヘッドといいます。

 

 また、この処理を10000台のコンピューターで計算しようとすると、オーバヘッドとして、最後に1から10000までの計算をしなければならないという本末転倒な事態になってしまいます(笑)

 

負荷分散

 これは、計算が最も遅い箇所が「足かせ」となり、早く計算し終わった箇所が待たせれることです。

 

 さっきの1から10000まで足し算する処理の場合、1台目の1から100まで計算するコンピュータはすぐに終わるにもかかわらず、100台目の9900から10000までの計算が時間かかってしまうばかりに、待たされて時間ロスになるようなことです。

 

 また、家庭用パソコンのコア(CPU)は5年10年くらいうまくいけば壊れずに済むと思います。しかし、スパコンでは、100万1000万ものコアが使われているので毎日どこかしら壊れるそうです。なので、壊れるたびに計算がストップしていては使い物にならないため、うまく負荷分散をする必要があります。

 

終わりに

 大学の講義ではもっと詳しいところまでやったのですが、僕自身あまり重要さがわからなかったのでこのくらいの基本的な概要にとどめておきました。

 ベースとなる資料があったのにこの執筆三時間くらいかかってしまいました(笑)

 大学の講義は分量としてこの10倍はあると思います。教授の激務さを感じました....

 この分量を毎週作っていると、自分の研究に手が回らないだろうことは想像に難くないです。やはり大学教員は教職と研究職の二つに分けた方がいいのではないかと思いますね。

 

 (今日寿司打はバグって使えないのでおあずけにします)