Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010...

19
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

Transcript of Toward Lightning RubyVMko1/activities/rk2010-lt-ko1.pdf · Toward Lightning RubyVM RubyKaigi2010...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This presentation is 1st time about

English presentation in RubyKaigi

LT presentation in RubyKaigi

No joking presentation

Preparing script

19