Upload
Download free for 30 days
Login
Submit search
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介
Download as PPTX, PDF
3 likes
902 views
T
Tamakoshi Hironori
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介
Technology
Read more
1 of 20
Download
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
More Related Content
PPTX
密度比推定による時系列データの異常検知
- Core Concept Technologies
PPTX
FPGAを用いたフルパイプラインによるバイラテラルフィルタの高速化手法
Nobuho Hashimoto
PDF
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
K Kinzal
PPTX
アンサンブル学習を用いた競馬予測
yuta miyawaki
PDF
時系列分析による異常検知入門
Yohei Sato
PDF
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
Hajime Fujita
PPTX
[DL輪読会]MetaFormer is Actually What You Need for Vision
Deep Learning JP
PPTX
生成系ニューラルネットワークまとめ Summary of Generative Neural Network
Youichiro Miyake
密度比推定による時系列データの異常検知
- Core Concept Technologies
FPGAを用いたフルパイプラインによるバイラテラルフィルタの高速化手法
Nobuho Hashimoto
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
K Kinzal
アンサンブル学習を用いた競馬予測
yuta miyawaki
時系列分析による異常検知入門
Yohei Sato
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
Hajime Fujita
[DL輪読会]MetaFormer is Actually What You Need for Vision
Deep Learning JP
生成系ニューラルネットワークまとめ Summary of Generative Neural Network
Youichiro Miyake
What's hot
(20)
PDF
インターネットの舞台裏
Taiji Tsuchiya
PDF
新分野に飛び入って半年で業績を作るには
Asai Masataro
PPTX
学習時に使ってはいないデータの混入「リーケージを避ける」
西岡 賢一郎
PDF
Deep State Space Models for Time Series Forecasting の紹介
Chihiro Kusunoki
PDF
機械学習ゴリゴリ派のための数学とPython
Kimikazu Kato
PDF
ブースティング入門
Retrieva inc.
PDF
アンサンブル木モデル解釈のためのモデル簡略化法
Satoshi Hara
PDF
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
Hiroki Nakahara
PPTX
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
NTT DATA Technology & Innovation
PPTX
情報統計力学のすすめ
Naoki Hayashi
PDF
[DL輪読会]Attention is not Explanation (NAACL2019)
Deep Learning JP
PDF
自己教師学習(Self-Supervised Learning)
cvpaper. challenge
PPTX
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
Deep Learning JP
PPTX
[DL輪読会]Learning convolutional neural networks for graphs
Deep Learning JP
PDF
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
Preferred Networks
KEY
アンサンブル学習
Hidekazu Tanaka
PPTX
画像処理AIを用いた異常検知
Hideo Terada
PDF
Apache OpenWhiskで実現するプライベートFaaS環境 #tjdev
Yahoo!デベロッパーネットワーク
PDF
全力解説!Transformer
Arithmer Inc.
PDF
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
インターネットの舞台裏
Taiji Tsuchiya
新分野に飛び入って半年で業績を作るには
Asai Masataro
学習時に使ってはいないデータの混入「リーケージを避ける」
西岡 賢一郎
Deep State Space Models for Time Series Forecasting の紹介
Chihiro Kusunoki
機械学習ゴリゴリ派のための数学とPython
Kimikazu Kato
ブースティング入門
Retrieva inc.
アンサンブル木モデル解釈のためのモデル簡略化法
Satoshi Hara
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
Hiroki Nakahara
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
NTT DATA Technology & Innovation
情報統計力学のすすめ
Naoki Hayashi
[DL輪読会]Attention is not Explanation (NAACL2019)
Deep Learning JP
自己教師学習(Self-Supervised Learning)
cvpaper. challenge
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
Deep Learning JP
[DL輪読会]Learning convolutional neural networks for graphs
Deep Learning JP
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
Preferred Networks
アンサンブル学習
Hidekazu Tanaka
画像処理AIを用いた異常検知
Hideo Terada
Apache OpenWhiskで実現するプライベートFaaS環境 #tjdev
Yahoo!デベロッパーネットワーク
全力解説!Transformer
Arithmer Inc.
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
Recently uploaded
(6)
PDF
JAWS-UG Okayama 2025 - AWS Nitro Systemと そのセキュリティ.pdf
Ekaterina704352
PDF
株式会社CyberneXの会社紹介資料です。当社との協業や投資に興味あればご連絡ください。
MotofumiBaba
PPTX
YugoMori_IMU搭載ヘッドホンを用いた注視位置の簡易推定_FIT2025
Matsushita Laboratory
PDF
RS485/UART to LoRaWAN コンバーター RS485-LB/LS日本語マニュアル
CRI Japan, Inc.
PPTX
Drupal11新機能紹介.pptx [2025/09/12]の勉強会で発表されたものです。
iPride Co., Ltd.
PDF
RS485/UART to LoRaWANコンバーター RS485-LB/LS日本語カタログ
CRI Japan, Inc.
JAWS-UG Okayama 2025 - AWS Nitro Systemと そのセキュリティ.pdf
Ekaterina704352
株式会社CyberneXの会社紹介資料です。当社との協業や投資に興味あればご連絡ください。
MotofumiBaba
YugoMori_IMU搭載ヘッドホンを用いた注視位置の簡易推定_FIT2025
Matsushita Laboratory
RS485/UART to LoRaWAN コンバーター RS485-LB/LS日本語マニュアル
CRI Japan, Inc.
Drupal11新機能紹介.pptx [2025/09/12]の勉強会で発表されたものです。
iPride Co., Ltd.
RS485/UART to LoRaWANコンバーター RS485-LB/LS日本語カタログ
CRI Japan, Inc.
多言語を一つの処理系でハイパフォーマンスに実行する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 とは 詳細はこの後のメインセッションで
Download