フィックスターズとノーチラス・テクノロジーズは2016年4月12日、並列分散フレームワーク「Asakusa on M3BP」、および実行基盤「M3 for Batch Processing(M3 for BP)」を発表。両社で共同開発したソフトをオープンソースとして公開した。MapReduceやSparkなど分散処理ソフトと同様の並列処理を、単一ノード上のマルチコア/マルチプロセッサで実現。「数ギガから数十ギガのデータを対象に、複数サーバーを用意しなくても並列処理によりスピードアップできる」(ノーチラス・テクノロジーズ 執行役員の目黒雄一氏)。

写真●Asakusa FrameworkとM<sup>3</sup> for BPの位置づけ
写真●Asakusa FrameworkとM3 for BPの位置づけ
(出所:フィックスターズ、ノーチラス・テクノロジーズ)
[画像のクリックで拡大表示]

 ノーチラス・テクノロジーズの「Asakusa Framework」は、バッチ処理を分散処理基盤で動かすための開発フレームワーク。Asakusa DSLと呼ぶ開発言語で開発し、コンパイルすることで、分散処理エンジンのためのコードを生成する。従来のMapReduce、Sparkに加え、M3 for BPに対応。「Asakusaに手を入れてM3用のコンパイラを追加したが、JavaだとメモリーやCPUが制御しづらいのでC++で書いた」(フィックスターズ 新事業推進室 ディレクターの梶信也氏)。

 M3 for BPが狙うのは、数ギガから数十ギガの容量に収まる、基幹バッチのデータ処理だ。「MapReduceはテラからペタ、Sparkは数百ギガからテラとかなりの容量がないと、オーバーヘッドが大きく、費用対効果が出しづらい」(目黒氏)。実際、4ギガバイトのデータ処理でベンチマークしたところ、MapReduce(5ノード)で約2218秒かかっていた処理が、SPARK(5ノード)では約230秒、M3 for BP(1ノード)では約112秒に短縮できたという。M3 for BPの利用価格は、年間500万円(1ノード)である。

 一連のベンチマークは、マイクロソフトのIaaS「Microsoft Azure Virtual Machines D5 v2」(16CPUコア、メモリー56ギガ・バイト)で実施した。「Azure上のサービスとしてもM3 for BPを近く提供する予定だ」(梶氏)。