天文物理学向け計算に特化したPython JITコンパイラ「HOPE」

 チューリッヒ工科大学(ETH)の天文学研究所が、PythonコードをC++コードに変換してコンパイルするツール「HOPE」を公開した。天文学に関連する機能のみに特化したツールで、PythonとC++を組み合わせることでプログラミングの容易さを保ちつつ天文物理学の計算に要求される性能を実現するとしている。

 HOPEは、チューリッヒ工科大の天文学研究所内のソフトウェアラボで開発されたコンパイラ。Pythonで実装されており、PythonコードをC++に変換およびコンパイルして実行できる。実行時にコンパイルを行うJIT(Just In Time)型のコンパイラで、関数単位でのコンパイルを行う「method-at-a-time」型のアーキテクチャを持つ。ライセンスはGPLv3。

 ほかのPython実行環境と異なる点として、HOPEは天体物理学で必要とされる計算に特化している点が挙げられている。Pythonの機能のうち、天体物理学と関連性の高い機能に注力することで高い性能を実現するという。

 HOPE 0.3ではnumpy.sum、numpy.pi、numpy.floor、numpy.ceil、numpy.trunc、numpy.fabs、 numpy.logなどのサポートが加わり、SymPyを利用した表現を簡素化するconfig.optimizeが導入された。また、オブジェクトプロパティ、オブジェクトメソッドもサポートする。

 HOPEはPythonのパッケージ管理ツールであるpipを使ってインストールできる。また、ソースコードはGitHubで公開されている。

HOPE
https://github.com/cosmo-ethz/hope