Hera-JVM:
Abstracting Processor Heterogeneity Behind a Virtual Machine
Ross McIlroy and Joe Sventek
University of Glasgow Department of Computing Science Carnegie Trust
for the Universities of Scotland
Hera-JVM: Abstracting Processor Heterogeneity Behind a Virtual - - PowerPoint PPT Presentation
Hera-JVM: Abstracting Processor Heterogeneity Behind a Virtual Machine Ross McIlroy and Joe Sventek University of Glasgow Department of Computing Science Carnegie Trust for the Universities of Scotland Heterogeneous Multi-Core Architectures
Ross McIlroy and Joe Sventek
University of Glasgow Department of Computing Science Carnegie Trust
for the Universities of Scotland
parallel code
Application Threads
Main Arch Code Secondary Arch Code Application Threads
Main Arch Code Secondary Arch Code
Main Arch Code Secondary Arch Code Support Code
Main Arch Code Secondary Arch Code Support Code
Main Arch Code Secondary Arch Code Support Code
Main Arch Code Secondary Arch Code Support Code Libraries
main.o secondary.o
this knowledge
runtime system to infer the application’s heterogeneity
Application Threads
Integer Float Random Memory Access Branching Code Sequential Memory Access Application Threads
Integer Float Random Memory Access Branching Code Sequential Memory Access
Runtime System
Int, Float, Seq Rand Rand Int, Float Main Core Costs
Costs Application Threads
Integer Float Random Memory Access Branching Code Sequential Memory Access
Runtime System
Int, Float, Seq Rand Rand Int, Float Main Core Costs
Costs Application Threads
Integer Float Random Memory Access Branching Code Sequential Memory Access
Runtime System
Int, Float, Seq Rand Rand Int, Float Main Core Costs
Costs Application Threads
Integer Float Random Memory Access Branching Code Sequential Memory Access
Runtime System
Int, Float, Seq Rand Rand Int, Float Main Core Costs
Costs Application Threads
Integer Float Random Memory Access Branching Code Sequential Memory Access
Runtime System
Int, Float, Seq Rand Rand Int, Float Main Core Costs
Costs Application Threads
Integer Float Random Memory Access Branching Code Sequential Memory Access
Runtime System
Int, Float, Seq Rand Rand Int, Float Main Core Costs
Costs Application Threads
Integer Float Random Memory Access Branching Code Sequential Memory Access
Runtime System
Int, Float, Seq Rand Rand Int, Float Main Core Costs
Costs Application Threads
Integer Float Random Memory Access Branching Code Sequential Memory Access
Runtime System
Int, Float, Seq Rand Rand Int, Float Main Core Costs
Costs Application Threads
PPE Assembler Low Level Assembly PPE Compiler Runtime System Java Library Application
PPE Assembler Low Level Assembly PPE Compiler SPE Assembler Runtime System Java Library Application
PPE Assembler Low Level Assembly PPE Compiler SPE Assembler Low Level Assembly Runtime System Java Library Application
PPE Assembler Low Level Assembly PPE Compiler SPE Assembler Low Level Assembly SPE Compiler Runtime System Java Library Application
PPE Assembler Low Level Assembly PPE Compiler SPE Assembler Low Level Assembly SPE Compiler Runtime System Java Library Application
PPE Assembler Low Level Assembly PPE Compiler SPE Assembler Low Level Assembly SPE Compiler Runtime System Java Library Application
PPE Assembler Low Level Assembly PPE Compiler SPE Assembler Low Level Assembly SPE Compiler Runtime System Java Library Application
PPE Assembler Low Level Assembly PPE Compiler SPE Assembler Low Level Assembly SPE Compiler Runtime System Java Library Application
cores at any method invocation
signalled dynamically by the scheduler
accessible local memory
(Memory Flow Controller)
Main Memory Local Memory MFC SPE
high level knowledge of what’s being cached
invoked
!" !#$" %" %#$" &" ! " # ! $ % & ' ( ) * + ,
$ . & ! " # ! / ( % ! + & ! " # , & ! " # " $ ) . + 1 ( % , $ & ' $ , 2 3 ) & ! " # 4 . & ' / + 5 6 * 7 $ & 8 ( 3 & 9 % ( 1 + % & ' $ ) . + : ( % , $ & : $ " / % + ! ! &
SPE v.s. PPE Speedup
!" !#$" %" %#$" &" ! " # ! $ % & ' ( ) * + ,
$ . & ! " # ! / ( % ! + & ! " # , & ! " # " $ ) . + 1 ( % , $ & ' $ , 2 3 ) & ! " # 4 . & ' / + 5 6 * 7 $ & 8 ( 3 & 9 % ( 1 + % & ' $ ) . + : ( % , $ & : $ " / % + ! ! &
SPE v.s. PPE Speedup
!" #" $" %" &" '!" '#" ( ) * ( + , "
/ 1 2 3 , + 4 " ( ) * ( 5 . , ( 1 " ( ) * 2 6 " ( ) * ) + / 4 1 7 . , 2 + "
2 8 9 / " ( ) * : 4 "
1 ; < 6 = + " > . 9 " ? , . 7 1 , "
/ 4 1 @ . , 2 + " @ + ) 5 , 1 ( ( "
6 SPEs v.s. PPE Speedup
!"# $!"# %!"# &!"# '!"# (!!"#
)*+,-.//# +,.01234*# +153.67-*8#
96*1:50#;*458# <58.0.-# =-15)># ?81)@# A*)16#B.+*-C# B145#B.+*-C#
!"#$ !"%$ !"&$ !"'$ !"($ !")$ !"*$ +$ +"+$ !$ )$ +'$ ,%$ #,$ %!$ %)$ &'$ '%$ (,$ )!$ ))$ *'$ +!%$ !"#$%#&'()"**************** +#",'-."*/%*0123*4"$'5,/6* 7'/'*8')9"*:;<"*+236* !"#$ !"#%$ !"&$ !"&%$ !"'$ !"'%$ ($ !"#"$%&#$'"#($ )*+,-.//$ +,.01234*$ +153.67-*8$
!"#$ !"%$ !"&$ !"'$ ($ ("($ !$ &$ (#$ )*$ +)$ *!$ *&$ ,#$ #*$ %)$ &!$ &&$ !"#$%#&'()"****************** +#",'-."*/%*0123*4"$'5,/6* 7%4"*7')8"*9:;"*+236* !"#$ !"%$ !"&$ !"'$ ($ !"#$%&'()#'*+#"' )*+,-.//$ +,.01234*$ +153.67-*8$
non-specialist programmers
provide abstractions to infer a program’s heterogeneity
most applications
scheduling / migration decisions