こんにちは。 DSOC R&D グループの高橋寛治です。 普段はPython言語によりアルゴリズムの実装を行っています。 スクリプト言語はコンパイルが不要であり、試行錯誤しやすいためです。 しかしながら、実行速度はコンパイル言語に比べて見劣りします。 そこで今回は、高速動作を目的にC++で実装したアルゴリズムをPythonライブラリとして利用する方法について紹介します。 社内で使うアルゴリズムについて計算量が多い処理を実装したところ、Python比で10倍ほど早くなりました。 pybind11とは pybind11はC++11をPythonからお手軽に取り扱うためのヘッダライブラリです。 これまでにSWIGやBoost.Python*1など、C++を手軽に扱うためのライブラリはありましたが、手順はやや複雑です。 Python用ラッパーモジュールを素で実装するのに比べると、上記ライブラリはか