強化学習に適した分散システムの実装言語としてJulia言語に着目し研究を進めた。Juliaの分散並列機能を補完するべく、コルーチンとJuliaの分散並列機能を利用したActor機能の実装を2021年度までに行った。しかし、Juliaの分散並列機能はすべてをバイトストリームで転送するため、高速なMPI環境を持ついわゆるスパコンでは、ハードウェア性能を十分に引き出すことができないことがわかった。このため2022年度は高速並列実行環境に対する最適化を行った。具体的には、Juliaの分散並列機能を維持しつつ、機械学習に用いる大容量配列に関しては別途MPIを直接利用して送受信することとした。これにより、10倍程度の性能向上を得ることができた。ただしハードウェアの持つ本来の性能を十分に引き出すことはできていない。これは今後の課題である。 さらに、Actorの記述方法についても改良を行った。2021年度までに実装したバージョンではメッセージを明示的に構造体として記述しなければならず、必ずしも書きやすいものではなかった。2022年度にはJuliaのマクロを用いた関数書き換えによってこの問題を解決し、通常のプログラムとほぼ同じ記法でActorを記述することを可能とした。先行研究であるPython上のRayと同等の環境を実現することができた。 さらに、並行して分散環境で実行する機械学習ソフトウェアの実装もすすめた。Pythonで記述された強化学習環境である OpenGym をJuliaから利用する手法を確立した。
|