J ICOS A Java-centric Internet Computing System Peter Cappello Computer Science Department UC Santa Barbara
2 Outline The Opportunity Goals Computation Model, API, & Examples Architecture The Foundation Package & Its Design Near-term plans
3 The Opportunity The Internet is like an ocean. Idle cycles are like gold atoms in the ocean. They are too diffuse to be useful. Can we aggregate idle cycles usefully?
4 Examples Fight against cancer: Screensaver-lifesaver: Fight AIDS at home:
5 Their Common Themes They use volunteered idle cycles. They all were built from scratch. Their computations have a simple Master-Worker Task structure.
6 Simple Master-Worker Structure RootTask DECOMPOSE COMPOSE Result COMPUTE
7 Outline The Opportunity Goals Computation Model, API, & Examples Architecture The Foundation Package & Its Design Near-term plans
8 Goals Create a general development & deployment infrastructure. Support more complex task structures. Tolerate faults in host computers & network components. Human admin tasks are O(1) in # hosts. Open-source.
9 Issue Priority Elegant OOD Programmability Performance Administratability Reliability Security Correctness Elegant OOD Correctness Reliability Security Programmability Administratability Performance
10 Outline The Opportunity Goals Computation Model, API, & Examples Architecture The Foundation Package & Its Design Near-term plans
11 Computational Model RootTask DECOMPOSE COMPOSE Result COMPUTE RootTask Result Master-WorkerDAG
12 RootTask Result Computational Model Input & Shared Objects
13 API A Task object’s execute method either: Returns a resultDecomposes: –compute sub-tasks –return a compose task
14 API Examples Recursively computing a Fibonacci number. Branch and bound
15 API Application TaskServer Host Task compute execute login/compute/logout Hosting Service Provider (HSP) Environment getInput getShared setShared
16 Outline The Opportunity Goals Computation Model, API, & Examples Architecture The Foundation Package & Its Design Near-term plans
17 Architecture CLIENT Hosting Service Provider Hsp C C C C C C C Hosting Service Provider
18 Architecture Hsp C C C C C C C H H H H H H H H TaskServer Cluster
19 Overlap Computation & Communication Cache Task objects Prefetch Execute Compose tasks on the taskserver
20 Overlap Computation & Communication DECOMPOSE COMPUTE COMPOSE CACHED PREFETCHED EXECUTED ON TASKSERVER
21 Overlap Computation & Communication Case: 1 TaskServer, 1 Host CACHED PREFETCHED EXECUTED ON TASKSERVER
22 Outline The Opportunity Goals Computation Model, API, & Examples Architecture The Foundation Package & Its Design Near-term plans
23 The Foundation Package Abstract Service COMMAND PROCESSOR STATE COMMANDS
24 The Foundation Package Abstract Service: Multi-threaded COMMAND PROCESSOR STATE IQ OQ RECEIVESEND
25 The Foundation Package Abstract Service: Bidirectional COMMAND PROCESSOR STATE IQ OQ RECEIVESEND
26 The Foundation Package Abstract Service: Multiple Processors, Mail boxes, & Senders COMMAND PROCESSOR STATE IQ OQ RECEIVESEND RECEIVE OQ SEND COMMAND PROCESSOR COMMAND PROCESSOR
27 The Foundation Package Abstract Service: Department COMMAND PROCESSOR Reference to my Service IQ COMMAND PROCESSOR COMMAND PROCESSOR
28 The Foundation Package Abstract Service: Multi-Departmental COMMAND PROCESSOR STATE OQ RECEIVESEND RECEIVE OQ SEND COMMAND PROCESSOR DEPARTMENT
29
30 The Foundation Package Abstract Service: Code Command, CommandSynchronous Service Q Processor CommandProcessor CommunicationProcessor Department Mail ServiceImpl
31 Outline The Opportunity Goals Computation Model, API, & Examples Architecture The Foundation Package & Its Design Near-term plans
32 Near-Term Plans Use Jini: –service discovery –automate version updating –some security (Davis project) Open source on Bridge to Grid via Globus Make world-class applications –Branch and bound (TSP – Chris Coakely)
33 Jini Service Discovery/ Automatic Update HOST CONFIG 1: read config
34 Jini Service Discovery/ Automatic Update HOST CONFIG 1: read config JINI LUS 2: get host code 3: get Hsp proxies
35 Jini Service Discovery/ Automatic Update HOST CONFIG 1: read config JINI LUS 2: get host code 3: get Hsp proxies HSP 4: get TaskServer reference
36 Jini Service Discovery/ Automatic Update HOST CONFIG 1: read config JINI LUS 2: get host code 3: get Hsp proxies HSP 4: get TaskServer reference TASK SERVER 5: login6: request task
37 Thanks! Questions?