J ICOS A Java-Centric Distributed Computing Service Peter Cappello & Chris Coakley Computer Science Department UC Santa Barbara
2 J ICOS Heterogeneous hardware & OS Easy to program Fault tolerant compute servers (hosts) Adaptively parallel Small-grain parallel computation
3 Overview Computational model API Architecture Performance Benefit summary Plans
4 Computational Model DAC task graph f(3)f(2) + f(1) f(0) + + f(1)f(0) + f(4)
5 Computational Model Embedded in an Environment f(3)f(2) + f(1) f(0) + + f(1)f(0) + f(4) Read input object Read/Write shared object
6 Overview Computational model API Architecture Performance Benefit summary Plans
7 API 2 task classes: –F –Sum f(3)f(2) + f(1) f(0) + + f(1)f(0) + f(4)
8 API public class F extends Task { private int n; public F(int n) { this.n = n; } public Object execute(Env e) { if (n < 2 ) { return new Integer( 1 ); else { compute( new F( n-1 ) ); compute( new F( n-2 ) ); return new Sum(); } f(3)f(2) + f(1) f(0) + + f(1)f(0) + f(4)
9 API public class F extends Task { private int n; public F(int n) { this.n = n; } public Object execute(Env e) { if (n < 2 ) { return new Integer( 1 ); else { compute( new F( n-1 ) ); compute( new F( n-2 ) ); return new Sum(); } f(3)f(2) + f(1) f(0) + + f(1)f(0) + f(4)
10 API public class F extends Task { private int n; public F(int n) { this.n = n; } public Object execute(Env e) { if (n < 2 ) { return new Integer( 1 ); else { compute( new F( n-1 ) ); compute( new F( n-2 ) ); return new Sum(); } f(3)f(2) + f(1) f(0) + + f(1)f(0) + f(4)
11 API public class F extends Task { private int n; public F(int n) { this.n = n; } public Object execute(Env e) { if (n < 2 ) { return new Integer( 1 ); else { compute( new F( n-1 ) ); compute( new F( n-2 ) ); return new Sum(); } f(3)f(2) + f(1) f(0) + + f(1)f(0) + f(4)
12 API public class Sum extends Task { public Object execute(Env e) { Integer I = ((Integer) getInput(0)); Integer J = ((Integer) getInput(1)); int sum = I.intValue() + J.intValue(); return new Integer( sum ); } f(3)f(2) + f(1) f(0) + + f(1)f(0) + f(4)
13 Overview Computational model API Architecture Performance Benefit summary Plans
14 Architecture Goals Virtualize compute cycles Store/coordinate partial results Self-organizing Independent of hardware/OS Scale from LAN to Internet
15 Architecture … JICOS has 3 service component classes: Hosting Service Provider (HSP): –clients interact solely with the HSP. –HSP manages other service components Task server –A task space Host –Executes tasks
16 Hosting Service Provider Client Architecture …
17 Architecture … Adaptive parallelism HSP CLIENT
18 Architecture … Fault tolerance HSP CLIENT
19 Architecture Latency hiding/reduction Task caching Task pre-fetch Task server computation
20 Overview Computational model API Architecture Performance Benefit summary Plans
21 J ICOS Speedup:150-City TSP 1 processor: 6 hours, 18 minutes 52 processors: 8 minutes 16K Tasks, average task time: 1.5 seconds
22 Overview Computational model API Architecture Performance Benefit summary Plans
23 Benefit Summary API is easy to use Heterogeneous hardware & OS Adaptive parallelism Tolerates faulty hosts Hides/reduces communication latency Small-grain parallel computation
24 Overview Computational model API Architecture Performance Benefit summary Plans
25 Plans Jicos application as web service: allows non-Java programs to “use” Jicos. JICOS TSP WEB SERVER Non-Java Program JAVA XML-encoded TSP instance
26 Plans Larger performance experiments Implement more NP-hard optimizations –Investigate upper & lower bounds Use Jini to enable: –Secure communication (SSL) –Dynamic service discovery More programming models
27 Thanks! Questions?