PyOpenCLハンズオン報告

kyoto.py PythonハンズオンでPyOpenCLハンズオンのチューターを担当させていただきました。ハンズオン資料を公開しています。

PyOpenCLとはOpenCLという並列計算フレームワークPythonから扱うためのライブラリで、Andreas Klöckner氏らによって開発されています。OpenCLのメリットや特徴については株式会社フィックスターズさんが公開している資料にわかりやすくまとめられています(OpenCL策定当初なので少々古いですが)。

OpenCLGPUコンピューティングができるとして注目を集めているのですが、PyOpenCLを使ってPythonからOpenCLを扱えるようになるとまた別のメリットが現れてきます。

  • タスク並列、データ並列プログラムどちらにも対応するため、従来マルチスレッド、マルチプロセスによる並列化やC言語拡張でPythonプログラムの高速化していた部分の代用になる
  • PILやPyOpenGLなど、Pythonの豊富な外部ライブラリと連携して比較的簡単にアプリケーションを構築可能
  • バイス側で実行されるカーネル関数のコードはOpenCL C言語そのものなので、プロトタイピングに有効

OpenCL、PyOpenCLについてなかなか情報発信ができていない状態なのですが、わからないことなどがあれば気軽に質問でもしてください。