toward lightning rubyvmko1/activities/rk2010-lt-ko1.pdf · toward lightning rubyvm rubykaigi2010...
TRANSCRIPT
![Page 1: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/1.jpg)
Toward Lightning RubyVM
RubyKaigi2010 Technical Lightning Talk
Koichi Sasada [email protected]
Passionate VM Programmer
Creative Informatics, Graduate School of Informaton Science and Technology,
The University of Tokyo
1
![Page 2: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/2.jpg)
THIS PRESENTATION is about
Peformance
of RubyVM Speed-up, Efficient,
Optimization, … 2
![Page 3: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/3.jpg)
Our current Challenges in Sasada-Lab (Students task)
AOT Compiler Ruby to C Ruby to X10
Profilers Memory Profiler Performance Profiler
Regexp AOT Compiler Atomic-Ruby (for Embedded) CI (w/ performance) enviroment
3
Sessions at
Tomorrow
Morning
![Page 4: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/4.jpg)
My Challenge
VM re-design
Re-visit Method (control) frame
Re-visit Relationship of Ruby and C
Instruction level re-design
Introducing Parallelism
Against Fine grain parallelism
Against Coarse grain parallelism
4
![Page 5: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/5.jpg)
Easy Performance Analysis (1) Micro benchmark
5
OS: Linux 2.6.31 32-bit
CPU: IntelCore2Quad 2.66GHz
Mem: 4GB
C Compiler: GCC 4.4.1, -O3
Profiled by Oprofile
ruby 1.9.3dev (2010-05-26)
Profiled by Mr. Shiba
VM Obj
Others Insn
Method Block
Inst Compile GC
MM
Cfunc
NotRuby
Others
Pentomino
VM
Obj
Others
Insn
Method
Block Others Compile GC MM Cfunc
NotRuby
Others
Fib
![Page 6: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/6.jpg)
VM Re-design Re-visit Method (control) frame
6
Args
Locals
LFP
DFP
BP, PC,…
Stack
Values
SP
Args
Locals
Stack
Values
Args
Locals
LFP
DFP
BP
SP LFP
DFP
BP, SP
CFP
CFP
Method Invocation
Control Frame Stack
Control Frame Stack
Value Stack
Value Stack
Current control frame structure
![Page 7: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/7.jpg)
VM Re-design Re-visit Method (control) frame
7
Current control frame structure
Block Invocation
Stack
Values
Args
Locals
LFP
DFP
BP
SP
Value Stack
… LFP
DFP
BP, SP
… Args
Locals
Stack
Values
Stack
Values
Args
Locals
LFP
DFP
BP
SP
Value Stack
… LFP
DFP
BP, SP
… Args
Locals
Stack
Values
LFP
DFP
BP
SP
Args
Locals
• Too complicated
• Too many values to push
→ Simplify frame structure
Redesign:
・VM frame structure
・Method data structure
・InstructionSequence structure
![Page 8: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/8.jpg)
Easy Performance Analysis (2) Macro Benchmark
8
OS: Linux 2.6.31 32-bit
CPU: IntelCore2Quad 2.66GHz
Mem: 4GB
C Compiler: GCC 4.4.1, -O3
Profiled by Oprofile
VM
Obj
Others
Insn
Method
Block Others Compile
GC
MM
Cfunc
NotRuby
Others
rdoc
VM
Obj
Others
Insn Method
Block Others Compile
GC
MM
Cfunc
NotRuby
Others
Rails
ruby 1.9.3dev (2010-05-26)
Profiled by Mr. Shiba
![Page 9: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/9.jpg)
Introduce Parallelism for Multi/Many core era
Parallel, not concurrent Parallel: run simultaneously
• Not supported by Ruby
Concurrent: manage several activity
• Supported by Ruby’s Thread
9
![Page 10: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/10.jpg)
Introducing Parallelism Principle
NO Parallel Threads
in CRuby
I believe parallel threads introduce unhappy result.
10
![Page 11: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/11.jpg)
Introducing Parallelism Fine grain parallelism
Run methods in parallel
Time consuming methods
Collection of independent methods
Rubyist should not consider
→ VM run them in parallel auto.
11
![Page 12: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/12.jpg)
Introducing Parallelism Fine grain parallelism: Solution
Write parallel code in C level
C extension writer should take difficulties
Provide a framework to write parallel C extensions
Now considering specification
12
![Page 13: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/13.jpg)
Introducing Parallelism Coarse grain parallelism: Solution
Easy to consider Separate logic into VMs using MVM (Multiple-VM) MVM, a.k.a vaporware (やるやる詐欺) VMs run in parallel and lightweight inter-VM communication than inter-process communication
Similar model as other languages Scala, Erlang, …
13
![Page 14: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/14.jpg)
Introducing Parallelism Parallel GC
GC consume time
→ Speedup with Parallel
Parallel mark I’m not sure about it, however, last day nari-san talk it is considerable
Parallel sweep Seems easy to support
14
![Page 15: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/15.jpg)
Request
If you have applications
(1) have performance issues (2) too slow, give up to run on Ruby
Please ask us.
They will be important reseach materials.
我々の業界ではご褒美です.
15
![Page 16: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/16.jpg)
Ono more Announcement
Escape from Japan (to UK) Next 2 months
I hope I can concentrate in VM development
To: UK people, please contact me if you have interest about my work
Stay tuned for next news of VM performance improvement
16
![Page 17: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/17.jpg)
Summary
We have many Challenges
Toward
Lightning RubyVM
17
![Page 18: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/18.jpg)
Thank you
Toward Lightning RubyVM
RubyKaigi2010 Lightning Talk
Presented by
Koichi Sasada [email protected]
18
![Page 19: Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010 Technical Lightning Talk Koichi Sasada ko1@rvm.jp Passionate VM Programmer Creative](https://reader036.vdocuments.us/reader036/viewer/2022090606/605c6db82be4391b8f078cd9/html5/thumbnails/19.jpg)
This presentation is 1st time about
English presentation in RubyKaigi
LT presentation in RubyKaigi
No joking presentation
Preparing script
19