SlideShare a Scribd company logo
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の紹介

More Related Content

What's hot

How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
Preferred Networks
 
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについて
Natsutani Minoru
 
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
NTT DATA Technology & Innovation
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
 
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
 
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
NTT DATA Technology & Innovation
 
SpinnakerとKayentaで 高速・安全なデプロイ!
SpinnakerとKayentaで 高速・安全なデプロイ!SpinnakerとKayentaで 高速・安全なデプロイ!
SpinnakerとKayentaで 高速・安全なデプロイ!
NTT Communications Technology Development
 
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure
Preferred Networks
 
20171128分散深層学習とChainerMNについて
20171128分散深層学習とChainerMNについて20171128分散深層学習とChainerMNについて
20171128分散深層学習とChainerMNについて
Preferred Networks
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hareDAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
Preferred Networks
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能についてDeep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
NTT DATA Technology & Innovation
 
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αQuick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + α
Takeshi Yamamuro
 
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
Masahiko Sawada
 
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
Hironobu Isoda
 
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
NTT DATA Technology & Innovation
 

What's hot (20)

How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
 
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについて
 
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
 
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
 
SpinnakerとKayentaで 高速・安全なデプロイ!
SpinnakerとKayentaで 高速・安全なデプロイ!SpinnakerとKayentaで 高速・安全なデプロイ!
SpinnakerとKayentaで 高速・安全なデプロイ!
 
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure
 
20171128分散深層学習とChainerMNについて
20171128分散深層学習とChainerMNについて20171128分散深層学習とChainerMNについて
20171128分散深層学習とChainerMNについて
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hareDAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能についてDeep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
 
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αQuick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + α
 
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
 
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
 
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
 

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

MPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ APIMPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
Kentaro Ebisawa
 
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
David Buck
 
El text.tokuron a(2019).katagiri
El text.tokuron a(2019).katagiriEl text.tokuron a(2019).katagiri
El text.tokuron a(2019).katagiri
RCCSRENKEI
 
Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要
Chihiro Ito
 
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
Optuna on Kubeflow Pipeline 分散ハイパラチューニングOptuna on Kubeflow Pipeline 分散ハイパラチューニング
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
Takashi Suzuki
 
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
オラクルエンジニア通信
 
Autonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーションAutonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーション
オラクルエンジニア通信
 
Oracle Cloud PaaS & IaaS:2019年10月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2019年10月度サービス情報アップデートOracle Cloud PaaS & IaaS:2019年10月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2019年10月度サービス情報アップデート
オラクルエンジニア通信
 
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
Machiko Ikoma
 
Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019
MKT-INTHEFOREST
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
オラクルエンジニア通信
 
1.コース概要
1.コース概要1.コース概要
1.コース概要
openrtm
 
X86opti01 nothingcosmos
X86opti01 nothingcosmosX86opti01 nothingcosmos
X86opti01 nothingcosmos
nothingcosmos
 
MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理
Takeshi Yamamuro
 
Splunkを使ってKubernetesクラスターとコンテナのログ・メトリクスを可視化
Splunkを使ってKubernetesクラスターとコンテナのログ・メトリクスを可視化Splunkを使ってKubernetesクラスターとコンテナのログ・メトリクスを可視化
Splunkを使ってKubernetesクラスターとコンテナのログ・メトリクスを可視化
Kunihiko Ikeyama
 
20190620 multicloud share
20190620 multicloud share20190620 multicloud share
20190620 multicloud share
Mai Nagahisa
 
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
Shinji Takao
 
【2018年3月時点】Oracle BI 12c 新機能
【2018年3月時点】Oracle BI 12c 新機能【2018年3月時点】Oracle BI 12c 新機能
【2018年3月時点】Oracle BI 12c 新機能
オラクルエンジニア通信
 
Open capi meetup20180409 (revised)
Open capi meetup20180409 (revised)Open capi meetup20180409 (revised)
Open capi meetup20180409 (revised)
Yutaka Kawai
 
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
オラクルエンジニア通信
 

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

MPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ APIMPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
 
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
 
El text.tokuron a(2019).katagiri
El text.tokuron a(2019).katagiriEl text.tokuron a(2019).katagiri
El text.tokuron a(2019).katagiri
 
Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要
 
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
Optuna on Kubeflow Pipeline 分散ハイパラチューニングOptuna on Kubeflow Pipeline 分散ハイパラチューニング
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
 
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
 
Autonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーションAutonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーション
 
Oracle Cloud PaaS & IaaS:2019年10月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2019年10月度サービス情報アップデートOracle Cloud PaaS & IaaS:2019年10月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2019年10月度サービス情報アップデート
 
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
 
Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
 
1.コース概要
1.コース概要1.コース概要
1.コース概要
 
X86opti01 nothingcosmos
X86opti01 nothingcosmosX86opti01 nothingcosmos
X86opti01 nothingcosmos
 
MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理
 
Splunkを使ってKubernetesクラスターとコンテナのログ・メトリクスを可視化
Splunkを使ってKubernetesクラスターとコンテナのログ・メトリクスを可視化Splunkを使ってKubernetesクラスターとコンテナのログ・メトリクスを可視化
Splunkを使ってKubernetesクラスターとコンテナのログ・メトリクスを可視化
 
20190620 multicloud share
20190620 multicloud share20190620 multicloud share
20190620 multicloud share
 
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
 
【2018年3月時点】Oracle BI 12c 新機能
【2018年3月時点】Oracle BI 12c 新機能【2018年3月時点】Oracle BI 12c 新機能
【2018年3月時点】Oracle BI 12c 新機能
 
Open capi meetup20180409 (revised)
Open capi meetup20180409 (revised)Open capi meetup20180409 (revised)
Open capi meetup20180409 (revised)
 
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
 

Recently uploaded

YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
CRI Japan, Inc.
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 

Recently uploaded (15)

YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 

多言語を一つの処理系でハイパフォーマンスに実行する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

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