Invasive Malleable Applications
Sebastian Buchwald, Manuel Mohr, Andreas Zwinkau Karlsruhe Institute of Technology TCRC 89 "Invasive Computing"
ATPS 2015
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,
Sebastian Buchwald, Manuel Mohr, Andreas Zwinkau Karlsruhe Institute of Technology TCRC 89 "Invasive Computing"
ATPS 2015
Custom Hardware iNoC, CiC, i-Core Custom Operating System iRTSS, OctoPOS Custom Programming Language invadeX10 Applications ported/rewritten HPC, Robotics, ...
iRTSS Agent OctoPOS
Tile Tile Tile
OctoPOS OctoPOS App Agent Core Core Core Core Core Core Invasive Framework Application Code X10 Runtime
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
v a l i l e t = ( i d : I n c a r n a t i
I D ) = > { C
s
e . O U T . p r i n t l n ( " H e l l
l d " ) ; } v a l c
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
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 ( ) ;
for parallel supercomputers, IPPS 1996
at runtime User decides
rigid evolving
System decides
moldable malleable
idle!
Master Slave Master Slave Slave
Not idle!
f(x) = sin(x²)
v a l i l e t = ( i d : I n c a r n a t i
I D ) = > { f
( j
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
( i d ) ) b r e a k ; j
. 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
e : L i s t [ P E ] ) = > { f
( p e i n a d d ) q u e u e . a d d W
k e r ( p e , i l e t ) ; q u e u e . a d a p t ( ) ; f
( p e i n r e m
e ) q u e u e . s i g n a l T e r m i n a t i
( p e ) ; } v a l c
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
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 ( ) ;
v a l i l e t = ( i d : I n c a r n a t i
I D ) = > { f
( j
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
( i d ) ) b r e a k ; j
. 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
e : L i s t [ P E ] ) = > { f
( p e i n a d d ) q u e u e . a d d W
k e r ( p e , i l e t ) ; q u e u e . a d a p t ( ) ; f
( p e i n r e m
e ) q u e u e . s i g n a l T e r m i n a t i
( p e ) ; } v a l c
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
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 ( ) ;
v a l i l e t = ( i d : I n c a r n a t i
I D ) = > { f
( j
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
( i d ) ) b r e a k ; j
. 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
e : L i s t [ P E ] ) = > { f
( p e i n a d d ) q u e u e . a d d W
k e r ( p e , i l e t ) ; q u e u e . a d a p t ( ) ; f
( p e i n r e m
e ) q u e u e . s i g n a l T e r m i n a t i
( p e ) ; } v a l c
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
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 ( ) ;
Case Study: Multigrid
X10 Workshop 2013
v a l i l e t = ( i d : I n c a r n a t i
I D ) = > { f
( j
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
( i d ) ) b r e a k ; j
. 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
e : L i s t [ P E ] ) = > { f
( p e i n a d d ) q u e u e . a d d W
k e r ( p e , i l e t ) ; q u e u e . a d a p t ( ) ; f
( p e i n r e m
e ) q u e u e . s i g n a l T e r m i n a t i
( p e ) ; } v a l c
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
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 ( ) ;