Raspberry Pi という小さなシングルボードコンピュータが10年くらい前に発売されました。噂を聞いてすぐに秋葉原で購入したのを覚えています。消費電力こそ少なくて驚きましたが、CPUとI/Oが遅すぎて使い所に悩みました。ネット上では、その頃流行り始めていたSDNの実験に最適なんて声もありましたが、何台も購入する気になれずにお蔵入りしていました。
その後もわりと売れて、順調に世代やバリエーションを増やしています。
2019年、Raspberry Pi 4B に 8GBbytesメモリを積んだモデルが発売になった時は、思わず購入しそうになりました。しかし、丁度その直前に発売された NVIDIA の Jetson nano を買ったばかりで思い止まったのです。
左から Raspberry Pi 初代、3B、4B、Jetson nanoです。
Raspberry Pi 4B 8Gバイト版を購入
そんなこんなで、新型コロナウイルスが世界中にまん延し在宅勤務な日々がやってきました。在宅勤務は通勤時間が不要ですから自分の自由時間が増えるんですよね。
暇な時間に今まで使っていたRaspberry Pi 3B のOSを最新版に入れ替えてみると、以前と異なりかなりのメモリ量を要求するようになっていました。ぼくの持っていたRaspberry Pi 3が搭載しているメモリは1Gバイト。OSを起動してVNCを起動するだけで空きメモリは僅かになってしまいます。
ここで mathematica を起動すると swapの使用開始待ったなしです。
しかたがないので8Gバイトのメモリを積んだRaspberry Pi 4B を買おうとお店を探すも新型コロナウイルス蔓延による混乱と半導体不足の中で入手困難になっていました。転売目的での購入者の増加も在庫状況悪化に拍車をかけているようです。
とはいえ、少数の荷は続いてるようなのでスイッチサイエンスの入荷通知機能に登録してなんとか購入できました。
ハードウェア周りのトラブルに巻き込まれるのが嫌だったので、周辺機器もしっかりとした物を購入しました。
- 放熱性の高いヒートシンクを兼ねたメタルケース
- 電力に余裕のある 5.0V 4A電源
しかし、ストレージとして使うSDカード or USBメモリスティック の品質を失念していました。
量販店のワゴンセールで買ったSDカード や USBメモリスティック が未使用のまま、部屋にいくつか転がっていたのでそれを使ったのですが・・・
I/O性能が悪すぎる(使ったカードがダメだったらしい)
SDカード や USBメモリスティック の品質? 相性? が原因でDisk I/Oが低下していたようです。
どれくらいダメだったのか?というとパッケージアップデートに1時間かかるレベルでした。
ただし、Raspberry Pi 4 を network installモードで起動し、Raspberry Pi OS を書き込む時は正常な速度で書き込めてるように見えたので、Raspberry Pi OSのドライバか何かが悪さをしていたのかもしれません。
ちなみにちゃんと速度がでたSDカードはSanDisk製でした。さすがです。東芝製はダメでした。信頼していたんですが。試してダメだったUSBメモリスティックはKIOXIA製(元東芝)だったので、東芝系との相性があるんですかね、知らんけど。
VNCとX、どちらで使うか問題
今回、Raspberry Pi 4B を購入したのは Mathematica を使いたいからなのですが、WolframEngineだけならば、Jupyter Lab 上の kernel に WolframEngine を指定すれば使える事は使えるのです。
しかし、Language Server Protocol 経由でのコマンド補完がうまくいかず、やっぱり公式のUIが使いたいなっと。
さて、Raspberry Pi 4B の準備が整いました。 mathematica を利用する時だけモニタを切り替えるのはとっても手間です。Raspberry Pi OS では raspi-config から VNC の enable / disable ができますから、VNC を使いなさいという考えなのでしょう。
VNC はとっても便利でぼくもたまに利用するのですが、モニタを1枚取られちゃうのがアレなんですよね。Webで調べたり 別Windowで PDFを読みながら Raspberry Pi 上の Mathematica を使いたい時などは、やっぱり VNC ではなくて X を飛ばした方が使い勝手が良いのでは?と思います。
もちろん、ネットワーク的に遠い場所にある場合は VNC や RDPで接続すべきでしょうが、LANで接続されているような近いネットワーク間ならば、Xを飛ばしても遅延は感じないと思います。
Windows用のXサーバプログラムは、VcXsrv X Server がおすすめです。
WindowsにWSL2をインストールしてあれば、Windowsターミナル上でWSL2を直接起動できます。起動したら、Raspberry Pi4 へ X転送を有効にして(-X オプション) ssh でログインします。
あとは mathematica を起動するだけ。
以上で、Raspberry Pi 4 上で動いている mathematica を windows desktop 上で使うことができました。
一部うまくいかないところがありますが、一番の目的の入力補完も一応使えています。
Raspberry Pi 3B 上ではメモリが足りなすぎて、ほとんど使い物にならなかった mathematica ですが、4B 上で使うと簡単な計算ならすんなり答えを返してくれます。ただ、グラフを描こうとすると途端に遅くなるのは、きっと仕方ないのでしょうね。
購入するまで少し待たされましたが、8Gバイト版を購入して良かったです 🙂