Invasive Malleable Applications Sebastian Buchwald, Manuel Mohr, - - PowerPoint PPT Presentation

invasive malleable applications
SMART_READER_LITE
LIVE PREVIEW

Invasive Malleable Applications Sebastian Buchwald, Manuel Mohr, - - PowerPoint PPT Presentation

Invasive Malleable Applications Sebastian Buchwald, Manuel Mohr, Andreas Zwinkau Karlsruhe Institute of Technology TCRC 89 "Invasive Computing" ATPS 2015 No faster CPUs, only more of them More cores means slower cores M. B. Taylor,


slide-1
SLIDE 1

Invasive Malleable Applications

Sebastian Buchwald, Manuel Mohr, Andreas Zwinkau Karlsruhe Institute of Technology TCRC 89 "Invasive Computing"

ATPS 2015

slide-2
SLIDE 2

No faster CPUs,

  • nly more of them
slide-3
SLIDE 3

More cores means slower cores

  • M. B. Taylor, A Landscape of the New Dark Silicon Design Regime, Micro, IEEE , vol.33, no.5, 2013
slide-4
SLIDE 4

Battery power is more important these days

slide-5
SLIDE 5

Challenge: Use more cores more effjciently

slide-6
SLIDE 6

Invasive Computing means Tiled Manycore Architectures

slide-7
SLIDE 7

Invasive Computing means completely rewritten stack

Custom Hardware iNoC, CiC, i-Core Custom Operating System iRTSS, OctoPOS Custom Programming Language invadeX10 Applications ported/rewritten HPC, Robotics, ...

slide-8
SLIDE 8

iRTSS Agent OctoPOS

Tile Tile Tile

OctoPOS OctoPOS App Agent Core Core Core Core Core Core Invasive Framework Application Code X10 Runtime

The invasive framework gives access to more OS functionality

slide-9
SLIDE 9

Invasive Computing is about invade-infect-retreat

Constraints Claim i n v a d e r e i n v a d e r e t r e a t i n f e c t i-let

slide-10
SLIDE 10

v a l i l e t = ( i d : I n c a r n a t i

  • n

I D ) = > { C

  • n

s

  • l

e . O U T . p r i n t l n ( " H e l l

  • W
  • r

l d " ) ; } v a l c

  • n

s t r a i n t s = n e w P E Q u a n t i t y ( 4 , 1 ) & & n e w S c a l a b i l i t y H i n t ( s p e e d u p C u r v e ) ; v a l c l a i m = C l a i m . i n v a d e ( c

  • n

s t r a i n t s ) ; c l a i m . i n f e c t ( i l e t ) ; c l a i m . r e t r e a t ( ) ;

Invasive Computing uses X10

slide-11
SLIDE 11
  • D. G. Feitelson, L. Rudolph; Towards convergence in job schedulers

for parallel supercomputers, IPPS 1996

  • n submission

at runtime User decides

rigid evolving

System decides

moldable malleable

Invasive Applications are Malleable

slide-12
SLIDE 12

Example: Heat Dissipation with Multigrid Approach

  • M. Schreiber, A. Zwinkau, et al. Invasive computing in HPC with X10, X10 Workshop 2013
slide-13
SLIDE 13

Multigrid lets resource idle

idle!

slide-14
SLIDE 14

Invasive Apps exchange cores

slide-15
SLIDE 15

Asynchronously Malleable: „System decides any time at runtime“

Master Slave Master Slave Slave

Works nicely for Master-Slave Applications

slide-16
SLIDE 16

Asynchronously Malleable is more effjcient

Not idle!

slide-17
SLIDE 17

Integration is async-malleable

f(x) = sin(x²)

slide-18
SLIDE 18

Sorting is async-malleable

Patrick Flick, Peter Sanders, Jochen Speck Malleable Sorting IPDPS 2013

slide-19
SLIDE 19

v a l i l e t = ( i d : I n c a r n a t i

  • n

I D ) = > { f

  • r

( j

  • b

i n q u e u e ) { i f ( q u e u e . c h e c k T e r m i n a t i

  • n

( i d ) ) b r e a k ; j

  • b

. d

  • (

) ; } } v a l r e s i z e H a n d l e r = ( a d d : L i s t [ P E ] , r e m

  • v

e : L i s t [ P E ] ) = > { f

  • r

( p e i n a d d ) q u e u e . a d d W

  • r

k e r ( p e , i l e t ) ; q u e u e . a d a p t ( ) ; f

  • r

( p e i n r e m

  • v

e ) q u e u e . s i g n a l T e r m i n a t i

  • n

( p e ) ; } v a l c

  • n

s t r a i n t s = n e w P E Q u a n t i t y ( 4 , 1 ) & & n e w A s y n c M a l l e a b l e ( r e s i z e H a n d l e r ) & & n e w S c a l a b i l i t y H i n t ( s p e e d u p C u r v e ) ; v a l c l a i m = C l a i m . i n v a d e ( c

  • n

s t r a i n t s ) ; q u e u e . a d a p t T

  • (

c l a i m ) ; c l a i m . i n f e c t ( i l e t ) ; c l a i m . r e t r e a t ( ) ;

slide-20
SLIDE 20

v a l i l e t = ( i d : I n c a r n a t i

  • n

I D ) = > { f

  • r

( j

  • b

i n q u e u e ) { i f ( q u e u e . c h e c k T e r m i n a t i

  • n

( i d ) ) b r e a k ; j

  • b

. d

  • (

) ; } } v a l r e s i z e H a n d l e r = ( a d d : L i s t [ P E ] , r e m

  • v

e : L i s t [ P E ] ) = > { f

  • r

( p e i n a d d ) q u e u e . a d d W

  • r

k e r ( p e , i l e t ) ; q u e u e . a d a p t ( ) ; f

  • r

( p e i n r e m

  • v

e ) q u e u e . s i g n a l T e r m i n a t i

  • n

( p e ) ; } v a l c

  • n

s t r a i n t s = n e w P E Q u a n t i t y ( 4 , 1 ) & & n e w A s y n c M a l l e a b l e ( r e s i z e H a n d l e r ) & & n e w S c a l a b i l i t y H i n t ( s p e e d u p C u r v e ) ; v a l c l a i m = C l a i m . i n v a d e ( c

  • n

s t r a i n t s ) ; q u e u e . a d a p t T

  • (

c l a i m ) ; c l a i m . i n f e c t ( i l e t ) ; c l a i m . r e t r e a t ( ) ;

slide-21
SLIDE 21

v a l i l e t = ( i d : I n c a r n a t i

  • n

I D ) = > { f

  • r

( j

  • b

i n q u e u e ) { i f ( q u e u e . c h e c k T e r m i n a t i

  • n

( i d ) ) b r e a k ; j

  • b

. d

  • (

) ; } } v a l r e s i z e H a n d l e r = ( a d d : L i s t [ P E ] , r e m

  • v

e : L i s t [ P E ] ) = > { f

  • r

( p e i n a d d ) q u e u e . a d d W

  • r

k e r ( p e , i l e t ) ; q u e u e . a d a p t ( ) ; f

  • r

( p e i n r e m

  • v

e ) q u e u e . s i g n a l T e r m i n a t i

  • n

( p e ) ; } v a l c

  • n

s t r a i n t s = n e w P E Q u a n t i t y ( 4 , 1 ) & & n e w M a l l e a b l e ( r e s i z e H a n d l e r ) & & n e w S c a l a b i l i t y H i n t ( s p e e d u p C u r v e ) ; v a l c l a i m = C l a i m . i n v a d e ( c

  • n

s t r a i n t s ) ; q u e u e . a d a p t T

  • (

c l a i m ) ; c l a i m . i n f e c t ( i l e t ) ; c l a i m . r e t r e a t ( ) ;

slide-22
SLIDE 22

Invasive Malleable Applications

slide-23
SLIDE 23

Appendix

slide-24
SLIDE 24

Case Study: Multigrid

  • M. Schreiber, A. Zwinkau, et al. Invasive computing in HPC with X10

X10 Workshop 2013

slide-25
SLIDE 25

v a l i l e t = ( i d : I n c a r n a t i

  • n

I D ) = > { f

  • r

( j

  • b

i n q u e u e ) { i f ( q u e u e . c h e c k T e r m i n a t i

  • n

( i d ) ) b r e a k ; j

  • b

. d

  • (

) ; } } v a l r e s i z e H a n d l e r = ( a d d : L i s t [ P E ] , r e m

  • v

e : L i s t [ P E ] ) = > { f

  • r

( p e i n a d d ) q u e u e . a d d W

  • r

k e r ( p e , i l e t ) ; q u e u e . a d a p t ( ) ; f

  • r

( p e i n r e m

  • v

e ) q u e u e . s i g n a l T e r m i n a t i

  • n

( p e ) ; } v a l c

  • n

s t r a i n t s = n e w P E Q u a n t i t y ( 4 , 1 ) & & n e w M a l l e a b l e ( r e s i z e H a n d l e r ) & & n e w S c a l a b i l i t y H i n t ( s p e e d u p C u r v e ) ; v a l c l a i m = C l a i m . i n v a d e ( c

  • n

s t r a i n t s ) ; q u e u e . a d a p t T

  • (

c l a i m ) ; c l a i m . i n f e c t ( i l e t ) ; c l a i m . r e t r e a t ( ) ;