Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 1
多言語を一つの処理系で
ハイパフォーマンスに実行する
Graalpython 紹介
May 17, 2019
日本オラクル クラウド・ソリューション部 コンサルタント
玉越 敬典
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは
できません。以下の事項は、マテリアルやコード、機能を提供することを
コミットメント(確約)するものではないため、購買決定を行う際の判断材料に
なさらないで下さい。オラクル製品に関して記載されている機能の開発、リリース
および時期については、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Oracle と Python の関わり
3
Oracle Cloud
Oracle Database
Other
Analytics
• cx_Oracle
..etc
• oci_cli/oci_utils
• oci_ansible-modules
• oci_python_sdk
• Fn
…etc
• Analytics Cloud/DVD
• OML4PY
• Skater
..etc
• GraalVM + Python
• weblogic-deploy-tooling
• solaris-openstack-utils
• solaris-ips
…etc
本セッションのテーマ
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
GraalVM とは
● 多言語を単一のランタイムで高速に実行する新世代 VM
4
JVM 系言語 各種スクリプト言語 LLVM 系言語
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
GraalVM アーキテクチャ
● Graal と Truffle によってハイパフォーマンスな多言語実行可能な
VM 環境を実現
5
Graal Compiler
JVM CI (JVM Compiler Interface)
Java Hotspot VM
Java の AST インタープリタフレームワーク
Java で JIT コンパイラを書くためのインタフェース
Truffle Framework
Java で書かれた JIT コンパイラ
JavaScript
Interpreter
Ruby
Interpreter
Python
Interpreter
LLVM
Interpreter
R
Interpreter
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
GraalVM パフォーマンス
● 各種言語(Java/Scala/R/JavaScript) にて良好なパフォーマンスである
ことが報告されている
6
Copyright*©*2014*Oracle*and/or*its*affiliates.*All*rights*reserved.*** 13*
Performance*–*Java*and*Scala*
0*
0.5*
1*
1.5*
2*
2.5*
Java* Scala*
graal*
server*
DaCapo*benchmarks*H*Normalized*versus*client*compiler*
Copyright*©*2014*Oracle*and/or*its*affiliates.*All*rights*reserved.*** 14*
0*
1*
2*
3*
4*
5*
6*
7*
Graal/JS*
V8*
Performance*–*JavaScript*
参照「Graal VM: Multi-Language Execution」Thomas Wuerthinger, Senior Research Director at Oracle
URL: https://www.slideshare.net/ThomasWuerthinger/jazoon2014-slides?from_action=save
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
graalpython とは
● GraalVM 上でビルドされる Python 3実装用のインタプリタ
● 現時点では、”early-stage experimental implementation of Python”
● 最終的には、Python 3.7 との完全な互換性を達成し、
Scipy と Scipy に依存するライブラリ (Numpy, Pandas, Scikit-learn等)
の完全なサポートを目指す
7
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
● Graal 付属の gu コマンドでインストールし、graalpython コマンドで
GaalVM 版 Python インタプリタを実行
$ gu -c install org.graalvm.python
$ graalpython --version
Graal Python 3.7.0 (GraalVM CE Native 1.0.0-rc15)
Graalpython インストール Graalpython 実行
graalpython インストール&実行
8
# Python スクリプトの実行
$ graalpython helloworld.py
# Python REPL の実行
$ graalpython
Python 3.7.0 (Thu Apr 04 12:16:00 PDT 2019)
[GraalVM CE, Java 1.8.0_202] on darwin
Type "help", "copyright", "credits" or "license" for
more information.
Please note: This Python implementation is
in the very early stages, and can run little more than
basic benchmarks at this point.
>>>
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
● graalpython の魅力の一つであるハイパフォーマンスを検証するために、
以下の2つのベンチマークを OCI 上の Compute インスタンスで実行
● 3つの Python 処理系 (Cpython, Jython, PyPy) と graalpython を比較
graalpython パフォーマンス測定
9
① pyperfomance (*) ライブラリで実行される一部のベンチマークスクリプト
② モンテカルロ法による円周率計算を実行する Python スクリプト
Cpython 3.7.1 Jython 2.7 PyPy 3.6 Graal Python 3.7.0
(GraalVM CE Native 1.0.0-rc15)
Virtual
Machine
VM.Standard2.16
CPU 32コア
メモリ 2
OS Ubuntu 18.04 LTS
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
[参考] Python 処理系
10
処理系 最新バージョン 標準Python互換バージョン 特徴
CPython 3.7.3 (標準Python実装) Python 言語のリファレンス実装
https://www.python.org/
Jython 2.7.0 2.7系 Python の Java 実装
https://www.jython.org/
PyPy 3.6 3.6 CPython の高速化を目的として作られた
RPython による Python 実装
https://pypy.org/index.html
graalpython 3.7
GraalVM 1.0.0-rc16
3.7
※ただしexperimental であるため、
完全な互換性はまだない
Graal VM 上で動作する Python 実装
https://github.com/graalvm/graalpython
Zippy 3.7 3.7 Truffle Framework 上で動作する Python 実装
https://github.com/securesystemslab/zippy
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
graalpython で動作可能なライブラリに
制限があるため、pyperformance の内
以下の3つのスクリプトを微修正して実行
graalpython パフォーマンス測定 – pyperformance
11
bm_spectral_norm.py
bm_nqueens.py
bm_fannkuch.py
https://pyperformance.readthedocs.io/benchmarks.html#spectral-norm
https://pyperformance.readthedocs.io/benchmarks.html#nqueens
https://pyperformance.readthedocs.io/benchmarks.html#fannkuch
“Hundred-Dollar, Hundred-Digit Challenge Problems”を解くスクリプト
N-Queen 問題を単純なソルバーで解くスクリプト
コンピュータ言語ベンチマーク用のゲームスクリプト
結果
 graalpython は PyPy には及ばないものの、CPython よりも高い
パフォーマンス結果となった
 「bm_nqueens.py」 では Generator を多用しており、標準実装の
CPython の方が graalpython よりも最適化されて実行されために
実行速度に差がでたと考えられる
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
[参考] GraalVM Debugging Tools - chrome-devtools
12
$ graalpython --jvm --inspect <your_python_script_name>.py
Debugger listening on port 9229.
To start debugging, open the following URL in Chrome:
chrome-devtools://devtools/bundled/js_app.html?ws=127.0.0.1:9229/6537cf78-154605af4255
• Break Point の設定
• ブラウザコンソール上で Python 関数の実行が可能
• 変数の参照が可能
• Python スクリプトのプロファイリングを行い、
どの関数がどのぐらい時間を消費したがわかる
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
モンテカルロ法(*) によって円周率を近似計算するスクリプトを実行
graalpython パフォーマンス測定 – モンテカルロ法1
13
(*) 参考: 「モンテカルロ法」フリー百科事典『ウィキペディア(Wikipedia)』
https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%AB%E3%83%AB%E3%83%AD%E6%B3%95
• モンテカルロ法の計算においても、
PyPy には及ばないものの、CPython や Jython
を上回る高いパフォーマンス結果となった
• モンテカルロ計算のような I/O を伴わない
単純な CPU バウンドな処理であれば、
最適化された計算が可能であると考えられる
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
graalpython パフォーマンス測定 – モンテカルロ法2
14
モンテカルロ法によって円周率をマルチスレッド(*)で近似計算するスクリプトを実行
(*) Python 標準ライブラリである threading の threading.Thread クラスを利用して実装
https://docs.python.org/3/library/threading.html#threading.Thread
• スレッド数を増加しても、処理時間に変化が
ほとんど見られないため、graalpython は
Cpython や PyPy 同様に GIL をもつ処理系で
あることが考えられる
• 一方で GIL を持たない Jython はスレッド数の
増加に応じて処理時間が短くなり、
マルチコアでマルチスレッド実行が
できていることが見受けられる
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
graalpython と GIL (Global Interpreter Lock)
● GIL (Global Interpreter Lock) とは、インタプリタ上で一度に
実行できるスレッド数を一つに制限するための保護機構
○ メモリ管理や C 拡張の連携等の低レイヤの処理を簡素化することができる
● graalpython では C 拡張している部分で GIL を使っており(*)、
CPython 同様にマルチスレッドの処理は一つの CPU コアで実行される
15
(*) 参考: https://github.com/graalvm/graalpython/blob/master/graalpython/com.oracle.graal.python.cext/include/pystate.h#L378-L432
処理系 GIL の有無
CPython GIL あり
Jython GIL なし
PyPy GIL あり
※ ただし Software Transactional Memory (STM) によって GIL を回避することが可能
http://doc.pypy.org/en/latest/stm.html
graalpython GIL あり
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
● graalpython の魅力はハイパフォーマンスであることだけでなく、
Polyglot (多言語実行)なプログラムを簡単にかつパフォーマンスを損なうこと
なく実行できること
graalpython のもう一つの魅力 (Polyglot) ①
16
sample_polyglot.py
import polyglot
import sklearn
df = polyglot.eval(string=“
library(tidiverse)
iris %>% dplyr::group_neset(Species) %>% dplyr::summarise_all(mean) …
”)
…
clt = sklearn.ensemble.RandomForestClassifier()
clt.fit(df[”X”], df[“y”]
clf.feature_importances_
tidyverse ライブラリを
使ったモダンなデータ整形
例 R と Python による
データ分析
Scikit-Learn ライブラリによる
機械学習モデル実行
※ ただし、2019年5月現在 graalpython は Scikit-Learn 未対応
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
● さらに JavaScript や Ruby と組み合わせるとサーバサイド連携も容易になり、
アプリケーションを作成する上でプログラミング言語選択の制限が少なくなる
● 例えば、以下のような機械学習モデル組み込みアプリケーションが
将来的に構成可能となる
graalpython のもう一つの魅力 (Polyglot) ②
17
Ruby
Interpreter
Python
Interpreter
R
Interpreter
データ分析/可視化/分析モデル構築 サーバサイドアプリケーション
分析モデルの利用
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
● graalpython は現在 experimental な実装だが、PyPy には及ぼないものの
CPython (Python の標準実装) を上回るパフォーマンスを持つ
● パフォーマンスだけでなく、Polyglot であることも graalpython の魅力の一つ
○ Python の主な利用シーンである Analytics の領域において、例えば R と Python を
組み合わせて分析することも可能
○ 単一の Graal VM 上でプログラムの特性に合わせて様々な言語を使い分けることが可能
まとめ
18
graalpython をぜひ一度試してみてください!
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 19
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介

多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介

  • 1.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 1 多言語を一つの処理系で ハイパフォーマンスに実行する Graalpython 紹介 May 17, 2019 日本オラクル クラウド・ソリューション部 コンサルタント 玉越 敬典
  • 2.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 2 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは できません。以下の事項は、マテリアルやコード、機能を提供することを コミットメント(確約)するものではないため、購買決定を行う際の判断材料に なさらないで下さい。オラクル製品に関して記載されている機能の開発、リリース および時期については、弊社の裁量により決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。
  • 3.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | Oracle と Python の関わり 3 Oracle Cloud Oracle Database Other Analytics • cx_Oracle ..etc • oci_cli/oci_utils • oci_ansible-modules • oci_python_sdk • Fn …etc • Analytics Cloud/DVD • OML4PY • Skater ..etc • GraalVM + Python • weblogic-deploy-tooling • solaris-openstack-utils • solaris-ips …etc 本セッションのテーマ
  • 4.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | GraalVM とは ● 多言語を単一のランタイムで高速に実行する新世代 VM 4 JVM 系言語 各種スクリプト言語 LLVM 系言語
  • 5.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | GraalVM アーキテクチャ ● Graal と Truffle によってハイパフォーマンスな多言語実行可能な VM 環境を実現 5 Graal Compiler JVM CI (JVM Compiler Interface) Java Hotspot VM Java の AST インタープリタフレームワーク Java で JIT コンパイラを書くためのインタフェース Truffle Framework Java で書かれた JIT コンパイラ JavaScript Interpreter Ruby Interpreter Python Interpreter LLVM Interpreter R Interpreter
  • 6.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | GraalVM パフォーマンス ● 各種言語(Java/Scala/R/JavaScript) にて良好なパフォーマンスである ことが報告されている 6 Copyright*©*2014*Oracle*and/or*its*affiliates.*All*rights*reserved.*** 13* Performance*–*Java*and*Scala* 0* 0.5* 1* 1.5* 2* 2.5* Java* Scala* graal* server* DaCapo*benchmarks*H*Normalized*versus*client*compiler* Copyright*©*2014*Oracle*and/or*its*affiliates.*All*rights*reserved.*** 14* 0* 1* 2* 3* 4* 5* 6* 7* Graal/JS* V8* Performance*–*JavaScript* 参照「Graal VM: Multi-Language Execution」Thomas Wuerthinger, Senior Research Director at Oracle URL: https://www.slideshare.net/ThomasWuerthinger/jazoon2014-slides?from_action=save
  • 7.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | graalpython とは ● GraalVM 上でビルドされる Python 3実装用のインタプリタ ● 現時点では、”early-stage experimental implementation of Python” ● 最終的には、Python 3.7 との完全な互換性を達成し、 Scipy と Scipy に依存するライブラリ (Numpy, Pandas, Scikit-learn等) の完全なサポートを目指す 7
  • 8.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | ● Graal 付属の gu コマンドでインストールし、graalpython コマンドで GaalVM 版 Python インタプリタを実行 $ gu -c install org.graalvm.python $ graalpython --version Graal Python 3.7.0 (GraalVM CE Native 1.0.0-rc15) Graalpython インストール Graalpython 実行 graalpython インストール&実行 8 # Python スクリプトの実行 $ graalpython helloworld.py # Python REPL の実行 $ graalpython Python 3.7.0 (Thu Apr 04 12:16:00 PDT 2019) [GraalVM CE, Java 1.8.0_202] on darwin Type "help", "copyright", "credits" or "license" for more information. Please note: This Python implementation is in the very early stages, and can run little more than basic benchmarks at this point. >>>
  • 9.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | ● graalpython の魅力の一つであるハイパフォーマンスを検証するために、 以下の2つのベンチマークを OCI 上の Compute インスタンスで実行 ● 3つの Python 処理系 (Cpython, Jython, PyPy) と graalpython を比較 graalpython パフォーマンス測定 9 ① pyperfomance (*) ライブラリで実行される一部のベンチマークスクリプト ② モンテカルロ法による円周率計算を実行する Python スクリプト Cpython 3.7.1 Jython 2.7 PyPy 3.6 Graal Python 3.7.0 (GraalVM CE Native 1.0.0-rc15) Virtual Machine VM.Standard2.16 CPU 32コア メモリ 2 OS Ubuntu 18.04 LTS
  • 10.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | [参考] Python 処理系 10 処理系 最新バージョン 標準Python互換バージョン 特徴 CPython 3.7.3 (標準Python実装) Python 言語のリファレンス実装 https://www.python.org/ Jython 2.7.0 2.7系 Python の Java 実装 https://www.jython.org/ PyPy 3.6 3.6 CPython の高速化を目的として作られた RPython による Python 実装 https://pypy.org/index.html graalpython 3.7 GraalVM 1.0.0-rc16 3.7 ※ただしexperimental であるため、 完全な互換性はまだない Graal VM 上で動作する Python 実装 https://github.com/graalvm/graalpython Zippy 3.7 3.7 Truffle Framework 上で動作する Python 実装 https://github.com/securesystemslab/zippy
  • 11.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | graalpython で動作可能なライブラリに 制限があるため、pyperformance の内 以下の3つのスクリプトを微修正して実行 graalpython パフォーマンス測定 – pyperformance 11 bm_spectral_norm.py bm_nqueens.py bm_fannkuch.py https://pyperformance.readthedocs.io/benchmarks.html#spectral-norm https://pyperformance.readthedocs.io/benchmarks.html#nqueens https://pyperformance.readthedocs.io/benchmarks.html#fannkuch “Hundred-Dollar, Hundred-Digit Challenge Problems”を解くスクリプト N-Queen 問題を単純なソルバーで解くスクリプト コンピュータ言語ベンチマーク用のゲームスクリプト 結果  graalpython は PyPy には及ばないものの、CPython よりも高い パフォーマンス結果となった  「bm_nqueens.py」 では Generator を多用しており、標準実装の CPython の方が graalpython よりも最適化されて実行されために 実行速度に差がでたと考えられる
  • 12.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | [参考] GraalVM Debugging Tools - chrome-devtools 12 $ graalpython --jvm --inspect <your_python_script_name>.py Debugger listening on port 9229. To start debugging, open the following URL in Chrome: chrome-devtools://devtools/bundled/js_app.html?ws=127.0.0.1:9229/6537cf78-154605af4255 • Break Point の設定 • ブラウザコンソール上で Python 関数の実行が可能 • 変数の参照が可能 • Python スクリプトのプロファイリングを行い、 どの関数がどのぐらい時間を消費したがわかる
  • 13.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | モンテカルロ法(*) によって円周率を近似計算するスクリプトを実行 graalpython パフォーマンス測定 – モンテカルロ法1 13 (*) 参考: 「モンテカルロ法」フリー百科事典『ウィキペディア(Wikipedia)』 https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%AB%E3%83%AB%E3%83%AD%E6%B3%95 • モンテカルロ法の計算においても、 PyPy には及ばないものの、CPython や Jython を上回る高いパフォーマンス結果となった • モンテカルロ計算のような I/O を伴わない 単純な CPU バウンドな処理であれば、 最適化された計算が可能であると考えられる
  • 14.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | graalpython パフォーマンス測定 – モンテカルロ法2 14 モンテカルロ法によって円周率をマルチスレッド(*)で近似計算するスクリプトを実行 (*) Python 標準ライブラリである threading の threading.Thread クラスを利用して実装 https://docs.python.org/3/library/threading.html#threading.Thread • スレッド数を増加しても、処理時間に変化が ほとんど見られないため、graalpython は Cpython や PyPy 同様に GIL をもつ処理系で あることが考えられる • 一方で GIL を持たない Jython はスレッド数の 増加に応じて処理時間が短くなり、 マルチコアでマルチスレッド実行が できていることが見受けられる
  • 15.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | graalpython と GIL (Global Interpreter Lock) ● GIL (Global Interpreter Lock) とは、インタプリタ上で一度に 実行できるスレッド数を一つに制限するための保護機構 ○ メモリ管理や C 拡張の連携等の低レイヤの処理を簡素化することができる ● graalpython では C 拡張している部分で GIL を使っており(*)、 CPython 同様にマルチスレッドの処理は一つの CPU コアで実行される 15 (*) 参考: https://github.com/graalvm/graalpython/blob/master/graalpython/com.oracle.graal.python.cext/include/pystate.h#L378-L432 処理系 GIL の有無 CPython GIL あり Jython GIL なし PyPy GIL あり ※ ただし Software Transactional Memory (STM) によって GIL を回避することが可能 http://doc.pypy.org/en/latest/stm.html graalpython GIL あり
  • 16.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | ● graalpython の魅力はハイパフォーマンスであることだけでなく、 Polyglot (多言語実行)なプログラムを簡単にかつパフォーマンスを損なうこと なく実行できること graalpython のもう一つの魅力 (Polyglot) ① 16 sample_polyglot.py import polyglot import sklearn df = polyglot.eval(string=“ library(tidiverse) iris %>% dplyr::group_neset(Species) %>% dplyr::summarise_all(mean) … ”) … clt = sklearn.ensemble.RandomForestClassifier() clt.fit(df[”X”], df[“y”] clf.feature_importances_ tidyverse ライブラリを 使ったモダンなデータ整形 例 R と Python による データ分析 Scikit-Learn ライブラリによる 機械学習モデル実行 ※ ただし、2019年5月現在 graalpython は Scikit-Learn 未対応
  • 17.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | ● さらに JavaScript や Ruby と組み合わせるとサーバサイド連携も容易になり、 アプリケーションを作成する上でプログラミング言語選択の制限が少なくなる ● 例えば、以下のような機械学習モデル組み込みアプリケーションが 将来的に構成可能となる graalpython のもう一つの魅力 (Polyglot) ② 17 Ruby Interpreter Python Interpreter R Interpreter データ分析/可視化/分析モデル構築 サーバサイドアプリケーション 分析モデルの利用
  • 18.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | ● graalpython は現在 experimental な実装だが、PyPy には及ぼないものの CPython (Python の標準実装) を上回るパフォーマンスを持つ ● パフォーマンスだけでなく、Polyglot であることも graalpython の魅力の一つ ○ Python の主な利用シーンである Analytics の領域において、例えば R と Python を 組み合わせて分析することも可能 ○ 単一の Graal VM 上でプログラムの特性に合わせて様々な言語を使い分けることが可能 まとめ 18 graalpython をぜひ一度試してみてください!
  • 19.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | 19

Editor's Notes

  • #4 Python は Oracle Technology の様々な箇所で使われたり、連携することが可能
  • #5 Graal VM
  • #6 Graal VM のアーキテクチャー 2つの主要な技術 (Graal と Truffle) でハイパフォーマンスな単言語実行環境を可能にしている。 詳細はこの後のメインセッションで
  • #8 Graal VM とは 詳細はこの後のメインセッションで