プログラミング言語Elixir(エリクサー)の特長である分散・並行・並列処理とフォールト・トレランスの記述容易性は,宇宙機に好ましい特性です.そこで,北九州市立大学と株式会社ダイモンは,世界最小の月面探査車YAOKIの次期コンピュータシステムのソフトウェア記述言語として,Elixirを採用しました.
世界最小の月面探査車YAOKIについては,下記,株式会社ダイモンのホームページをご覧ください.
月面でのエッジ・コンピューティングの実現
「Nerves,月へ行く」で将来課題として挙げたように,地球と月の間のネットワーク通信は,多大な遅延時間があり,かつ帯域幅が狭いものです.そのため,月面ではエッジ・コンピューティングが必須技術となります.
Elixirの特長である分散・並行・並列処理の記述容易性は,月面でのエッジ・コンピューティングの実現を容易にします.
たとえば,Elixirの機械学習基盤であるNx(エヌエックス)を用いると,機械学習や深層学習をPythonよりもかなり容易に分散並列処理することができます.現在,Nxを基盤として,ニューラル・ネットワークを実現するAxon,ニューラル・ネットワークの流通基盤であるONNXの利用を可能にするAxonOnnx,Stable Diffusion を含むHugging Faceの機械学習モデルを利用できるようにするBumblebeeを利用することができます.これだけでも非常に強力なのですが,さらに近い将来LLMを利用できるようにするという表明がされています.もちろん,これらについても,分散並列処理を行うことができます.
さらに,FPGAを用いた時には,FPGAベースの機械学習が行えると効果的です.
そこで,私たちが研究開発しているPelemay Backendを適用していきたいと考えています.
このような基盤を利用することで,月面で必要なエッジ・コンピューティングを実現できるものと考えています.
宇宙線に耐えられるソフトエラー対策の実現
また,バン・アレン帯の外で活動する宇宙機では,宇宙線に耐えられるようにソフトエラー対策を行う必要があります.
ソフトウェアにソフトエラー対策を埋め込むための基本的なソフトウェア・アーキテクチャとして,3つ以上の投機的な分散並列処理を実施し,結果を照合し多数決を取る,さらに多数決が成立しなかった時には再計算するというような方式が考えられます.
これを実現するためには,Elixirの特長である分散・並行・並列処理の記述容易性も有用ですが,それだけではなく,フォールト・トレランスの記述容易性も極めて有効です.多数決が成立しないような異常な結果に陥った時に,プロセスを再起動して再計算を行うというような処理を,Supervisorを用いることで容易に記述できます.
また,定期的にプロセスを再起動することで,ソフトエラーによるプロセスの状態の異常化を予防するということも容易にできます.