ITmedia NEWS > 科学・テクノロジー >

PythonでC/C++に匹敵する実行速度を実現 米MITなどコンパイラ「Codon」開発Innovative Tech

» 2023年03月24日 08時00分 公開
[山下裕毅ITmedia]

Innovative Tech:

このコーナーでは、テクノロジーの最新研究を紹介するWebメディア「Seamless」を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。Twitter: @shiropen2

 米MITやカナダのビクトリア大学に所属する研究者らが発表した論文「Codon: A Compiler for High-Performance Pythonic Applications and DSLs」は、CやC++に匹敵する実行速度が実現できるPythonベースのコンパイラを提案した研究報告である。

Codonのロゴマーク

 Pythonは人気な言語だが、実行速度が遅いため、速さを求められる環境になると違う言語が採用される。この研究では、Pythonのような高水準言語のシンプル性とCやC++のような低水準言語の高速性を兼ね備えることができるPythonベースのコンパイラ「Codon」を提案する。

 Codonは、Pythonのコードをネイティブなマシンコードにコンパイルするコンパイラであり、シングルスレッドにおいて通常のPythonよりも10倍から100倍速く実行され、CやC++に匹敵する速度を実現できるという。またCodonではマルチスレッドも可能なため、より大きな性能向上が期待できる。

 Codonの特徴の1つは、プログラムを実行する前に型チェックを行う点だ。これにより、コンパイラがコードをネイティブのマシンコードに変換し、Pythonが実行時にデータ型を処理する際に発生する全てのオーバーヘッドが回避される。

 さらにPython内で新しいドメイン固有言語(DSL)を作成できるため、ドメイン固有の最適化を適用すれば、より高速に動作する。

 一方で、Codonは多くのモジュールをサポートしているが一部で対応していないのもあること、またいくつかの動的機能(動的型操作や実行時リフレクションなど)に対応していないことに留意したい。

Codonの仕組み

 Codonのライセンス条項では、2025年11月1日にコードをApache Licence 2.0に移行することが定められており、それまでは非商用目的で使用することを条件に、コピー、配布、改変を許可するライセンスとなっている。

 CodonはGitHubで公開されており、Codonを広めるためのベンチャーも「Exaloop」という社名で始動している。

Source and Image Credits: Ariya Shajii, Gabriel Ramirez, Haris Smajlovic, Jessica Ray, Bonnie Berger, Saman Amarasinghe, and Ibrahim Numanagic. 2023. Codon: A Compiler for High-Performance Pythonic Applications and DSLs. In Proceedings of the 32nd ACM SIGPLAN International Conference on Compiler Construction(CC 2023). Association for Computing Machinery, New York, NY, USA, 191-202. https://doi.org/10.1145/3578360.3580275



Copyright © ITmedia, Inc. All Rights Reserved.