SlideShare a Scribd company logo
1 of 20
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

オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )Hironobu Isoda
 
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
 
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructurePreferred 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技術」 金子紘也harePreferred 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_g6Hironobu 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
 

What's hot (20)

オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
 
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アンカンファレンス@オンライン 発表資料)
 

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 を繋ぐ APIKentaro 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).katagiriRCCSRENKEI
 
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 2019MKT-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 nothingcosmosnothingcosmos
 
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 shareMai Nagahisa
 
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~Shinji Takao
 
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

部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員Sadaomi Nishi
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。iPride Co., Ltd.
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdkokinagano2
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイントonozaty
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計atsushi061452
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑Akihiro Kadohata
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfTakayuki Nakayama
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperleger Tokyo Meetup
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルCRI Japan, Inc.
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )iwashiira2ctf
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用KLab Inc. / Tech
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルCRI Japan, Inc.
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521Satoshi Makita
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一瑛一 西口
 

Recently uploaded (14)

部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 

多言語を一つの処理系でハイパフォーマンスに実行する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 とは 詳細はこの後のメインセッションで