Raspberry Pi スパコン (22) 最終回


2023年 08月 17日

Raspberry Pi スパコン(1)を公開したのは、去年の12月末だから、もう半年以上前のことである。

それ以前からRaspberry Piを買い漁り、8台繋いで色々試していた。

普通は、IoT用の比較的安価でコンパクトなマシンとしての利用が多いと思うが、仕事としても複数台のマシンを利用した並列処理の動作確認の必要があった。

そんな時、ネットでRaspberr Pi を数十台、さらには数百台繋いでスパコンを作ったという記事がいくつも見受けられた。Raspberry Pi の性能は、普通のパソコンの約1/10程度なので、たくさん繋いだからといって、そんなに性能が上がる訳ではない。それに、Raspberry Pi 1台の性能は限られているので、大きなデータを扱うには無理がある。

でも、並列処理に慣れるには、こんな便利なマシンは無いということで、Raspberry Pi スパコンを作り始めたのだった。
Raspberry Piは、今では色々OSを選択することもできるが、標準の Raspberry Pi OS が、Linuxベースであり、様々なプログラミング言語が使えるので開発が非常に楽である。プログラム開発は、Ubuntu/Linux上で行い、出来上がったプログラムをRaspberry Pi に送って実行していた。

ARM

Raspberry Pi のCPUはARMである。昔は、CPUの周囲にも多数のICチップが必要であったが、集積度が向上し、1つのチップの中にCPUだけでなく各種の集積回路も載せられていて、SoC(System on Chip)になっている。

そして、Raspberry Piでさえ、4コアになっており、64ビットCPUになっている。これだけ見れは、最近の普通のCPUのように思えてしまう。

ただし、低消費電力にできていることもあり、実行速度は遅いのだが、CPUがフルで動いている場合はほとんどなく、CPUは暇な状態が多いので、この程度の性能でも大抵のことはこなせる。それより、省エネ対応CPUということが重要なのだ。

ARMはスマホにも入っていて、最も利用されているCPUである。

スパコン

スパコン富嶽のCPUは、実はARMである。ARMベースの強化版になっている。コアが計算用に48コアあり、制御用に4コア別に用意されている。

少し前に、GPUのNMEDIAがARM社を買収しようとしたが、結局断念した。そのNMEDIAが台北で開催されたCOMPUTEX TAIPEI 2023で、新製品を発表したのだが、特徴はCPUとGPUが一体になっており、CPU側はNVIDIA Grace CPU Superchipと言い、144コアである。

つまり、ARMはIoTなどの省エネCPU分野から、スパコンの超高性能CPUに至るまでのニーズに対応するようになった。

実は、スパコンで常に問題になるのは、冷却の問題だった。高速に計算すればするほど熱が発生してしまうのだが、高熱になってしまっては正常に計算できない。そのため、エネルギー効率の良いCPUが求められる。今までは、ワークステーションやパソコンに使われているCPUを改良してスパコンのCPUとしていたけれど、今はエコに優れたスマホのCPUの系列がスパコンに使われるようになった。

高速化・高性能化

プログラムを、できるだけ高速に実行したい。その方法もいろいろあって、まずは高速なプログラミング言語の利用がある。でも、プログラミングの開発に手間がかかっては困るので、高速なプログラミング言語と習得の容易さ、作成の容易さなどのバランスの問題となる。

次に、いろいろな並列処理を考えることになり、最初に対応するのは、マルチスレッドになるだろう。コア数が増えたCPUが利用できる場合、並列処理ができれば、上手く行けば並列数ぶん速度が上がる。そこまで理想的なことは少ないが、それでもコア数が増えた現在、実行時間を短縮するには有力な方法であり、主要なプログラミング言語ではたいてい対応している。

1台のマシンだけでは能力不足の時、複数のマシンをつないで、並列動作させることで解決することがある。複数マシンをつないぐ場合、それぞれのマシンの動作を自分で制御するのは大変だが、今はスパコンでも使われているMPIがあり、これをりようすると簡単に複数マシンでの並列処理が可能になる。とくにPythonでは楽である。

その他にも、今のIntel系CPUは64ビットと思っていたら、実は512ビット演算ができたりする。SIMD命令(single instruction, multiple data)と言い、x86系CPUには、AVX-512というSIMD命令体系がサポートされている。これを用いると、8並列、16並列で簡単な命令を処理できるので、数値計算では非常に威力を発揮することがある。

技術習得

Raspberry Piは、技術習得のために使うと非常に効果的である。いくら使い潰しても、価格は安いのでそれほど困らない。

今回はスパコン的な使い方の連載になったが、IoTの勉強にはパソコンより遥かに適している。直接電気信号を検出したり、制御したりできる。

対応しているプログラミング言語の多さも魅力である。

Mathematicaは普通に入手するととても高価であるが、Raspberry Pi 上では無料で利用でき、Mathematicaのプログラミング言語Wolframでプログラムを書いて実行することもできる。

Raspberry Piにディスプレイ、キーボード、マウスなどをつないで使用することもできるのだが、リモートデスクトップにも対応しているので、普段使っているパソコン上にRaspberry Piの画面を表示してリモート制御することも可能である。

書くと切りがないので、このあたりでRaspberry Pi スパコンの連載を終える。

パソコン上でアプリだけを使うだけのレベルから脱却し、DXを積極的に進めるには、Raspberry Piのような小さなコンピュータはとても役立つだろう。

結局、世界は、小が大を飲み込む仕組みになっているのだ。

たとえ壊れてもよいコンピュータとしてRaspberry Piをいじり倒してみよう。

緊急事態

延々とRaspberry Pi スパコンを動かしていたら、冷却に使っていたサーキュレーターから異音がでるようになった。このまま回し続けると発熱し、煙が出て、燃えてしまうかも知れない。

駅前の家電量販店で急遽冷却ファンを入手した。強力なファンよりも、少量の風で良いから延々とゆっくりと送り続けるものがよい。それで入手してきたのがUSBファンである。強さは3段階あるが、弱で十分冷える。弱だと、電流も0.13A程度なので、気にするほどの電流ではない。

弱で、全Raspberry Piの全コアをフルに動かしても温度は全然上昇しないことが確認できた。

すぐに手に入る身近な物で対処する能力はとても大切だ。