Grumpy: Go running Python!

Googleは1月4日(米国時間)、「Google Open Source Blog: Grumpy: Go running Python!」において、Goで開発されたPython実行環境「Grumpy」を発表した。GrumpyはGoで実装されたPython実行環境。Pythonのコードを一旦Goのコードに変換することで動作するコンパイラ方式を採用。並列処理性能が優れているほか、PythonコードからGoのパッケージをPythonモジュールのように呼び出して利用することもできるという特徴がある。

Googleは自社サービスの多くでPythonを利用している。例えば、YouTube.comおよびYouTube APIなどを提供しているフロントエンドサーバは主にPython(CPython 2.7)で開発されており、1秒間に何百万というリクエストをこなしている。Googleはこうしたシステムのパフォーマンスを発揮させるため長期にわたって改善を繰り返してきたが、その中でCPythonでは並列処理負荷のパフォーマンスを引き上げることが難しいという問題に直面することが多かったと説明している。

この問題を解決するために既存のPython実行環境を調査したところ、それぞれトレードオフの関係を持っていることや並列処理の問題を適切に解決できるものは見つからなかったと指摘。最終的にPython実行環境を自前で開発することとなり、開発プラットフォームとしてGoが適切だという結論に至ったとしている。

「Grumpy」はまだ実験段階とされているものの、CPythonと比較してFibベンチマークで高いスケーラビリティを発揮している。Goはもともと並列処理で高い性能を発揮することを目指して開発されており、並列処理を得意としている。互換性の面でGrumpyにはまだ開発時間が必要と見られるが、マルチコア/プロセッサで高い性能を発揮するGrumpyは今後重要性の高いPython実行環境として利用が進む可能性がある。