Column 21年7月 スーパーコンピュータって、どんなコンピュータ?

日本の理化学研究所が運用している、スーパーコンピュータ「富岳」をご存じでしょうか。最近では、新型コロナウイルス関連の各種シミュレーションのニュースで話題になりましたので、名前を耳にされた方は多いのではないかと思います。この「富岳」、年に2回発表される、世界のスーパーコンピュータに関するランキングで、4部門において3期連続の世界1位となるほどの高性能なコンピュータなのです。

◎スーパーコンピュータ「富岳」 TOP500、HPCG、HPL-AI、Graph500にて3期連続世界第1位を獲得
https://www.riken.jp/pr/news/2021/20210628_3/

「富岳」に限らず、スーパーコンピュータの写真を見ると、どれも冷蔵庫のような箱がずらりと並んでいます。どのような構造になっているのでしょうか。

たくさんの作業員

パソコンの性能比較においては、よくCPUのクロック周波数が取り上げられます。これは、1つの処理装置が1秒間に何回計算を実行できるかを表わした値で、一般的にはこの値が高いほど、高性能なCPUと言えます。しかし、演算処理を高速化すると、消費電力も発熱量も大きくなるという欠点があります。
そこで、スーパーコンピュータでは、CPU内にある演算処理を実行する最小単位(「コア」といいます)を増やすことで、1秒当たりの計算回数を増やすという方法をとっています。パソコンでも、コアを複数搭載したCPUが珍しくなくなりましたが、スーパーコンピュータのCPUは、パソコン用CPUよりもはるかに多いコアを持つものが一般的です。
例えると、クロック周波数の向上は、とてつもなく頭の良い人が、頭の良さに磨きをかけるのに対し、コア数の増加は、そこそこ頭の良い人を大量に集めるというイメージです。

もっとたくさんの作業員

1つのCPUだけでパソコン数台分の処理能力がありますが、スーパーコンピュータではさらに、このCPUを大量に搭載することで、より大量の処理を同時に行えるようになっています。しかし、大量のCPUをただ並べただけでは、効率よく計算を行うことはできません。そこで、CPUを一定の数ごとに分け、演算処理やデータの出し入れなどをグループごとに行うようにして、できるだけ無駄な処理が発生しないようにしています。スーパーコンピュータの写真で見る、冷蔵庫のような箱一つひとつが、このCPUのグループにあたります。

仕事の分担を決める

処理の高速化には、ソフトウェア面での工夫も必要です。コアごとに処理の重さが異なると、最も重い処理を担当したコアが完了するまで、他のコアは暇を持て余すことになってしまいます。そうならないように、コアごとの仕事ができるだけ均等にいきわたるように、OSやコンパイラ(プログラムをコンピュータが実行可能な形式に翻訳するしくみ)が作業量を調整したうえで仕事を割り振っています。

スーパーコンピュータの得意なこと

以上のような構造からもわかるように、スーパーコンピュータは、できるだけ多くのCPU・コアを同時に使って、大量のデータを一気に処理するような作業に適しています。むしろ、大量のデータを一気に処理するために、スーパーコンピュータが発展してきたといえます。「富岳」でも、すでに以下のようなプロジェクトが動き始めています。

◎スーパーコンピュータ「富岳」によるCOVID-19治療薬探索
https://www.hpci-office.jp/materials/keynote01_okuno.pdf

◎「富岳」を使ったゲリラ豪雨予報
https://www.riken.jp/pr/news/2021/20210713_1/

スーパーコンピュータが活躍する場面は、これからも増えていくでしょう。機会がありましたら、スーパーコンピュータのしくみに思いをはせてみるのはいかがでしょうか。