150 likes | 270 Views
Charlotte: Metacomputing on the Web Arash Baratloo Mehmet Karaul Zvi Kedem Peter Wyckoff New York University. Roadmap. Goals Virtual machine model Code sample Execution environment Distributed shared memory Experiments Summary. Goals. Programmer’s goals
E N D
Charlotte:Metacomputing on the Web • Arash Baratloo Mehmet KaraulZvi Kedem Peter WyckoffNew York University
Roadmap • Goals • Virtual machine model • Code sample • Execution environment • Distributed shared memory • Experiments • Summary
Goals • Programmer’s goals • High level language • Reliable and predictable virtual machine (fault tolerance, heterogeneity of machine types and speeds, transiently available machines) • Portability • User’s goals • Utilize any machine on the Web (no account or shared file system) • Reliable and predictable virtual machine • Authentication of results • CPU donator’s goals • Protection from malicious code • Full control of her resources • No administrative hassles
Leveraging Java • Predictable and reliable virtual machine on top of the Java virtual machine • Java-capable browser widely available • Emerging standard • Security • Heterogeneity • Portability • Compilers to appear in the near future
Virtual Machine Model • Separation of programming and execution environment • Programmer develops applications for a perfect virtual machine • Slow and fast machines are handled transparently by the runtime system • Transiently available machines handled transparently by the runtime system • Fault tolerance handled transparently by the runtime system • High level programming model • Unbounded number of parallel routines • Java plus three simple language constructs • Distributed shared memory • Simple memory semantics
public class MatrixMult extends Droutine { public static int Size = 500; public Dfloat a[][] = new Dfloat[Size][Size]; public Dfloat b[][] = new Dfloat[Size][Size]; public Dfloat c[][] = new Dfloat[Size][Size]; public void drun(int numTasks, int id) { int sum; for(int i=0; i<Size; i++) { sum = 0; for(int j=0; j<Size; j++) sum += a[id][j].get() * b[j][i].get(); c[id][i].set(sum); } } public void run() { InitMatrix(a); InitMatrix(b); parBegin(); addDroutine(this, Size); parEnd(); PrintMatrix(c); } } Example: Matrix Multiplication Sample Charlotte Program
Execution Environment • The same Charlotte program runs on: a single machine multiple machines (one user machine and a set of potential volunteer machines) • Interaction among machines solely through Java-capable browsers
Eager Scheduling • Difficulties in a distributed system • Detection of crashed-failed machines • Detection of slow machines • Solution: Eager scheduling • Volunteer machines contact user machine for work • Routines may be assigned to multiple machines • Difficulties with eager scheduling • Inconsistent memory views across routines and different executions of the same routine • Violation of exactly-once semantics • Solution: Two-phase Idempotent Execution Strategy (TIES)
DSM • Why DSM? • Easy to use • Programmer and user transparent • Design objectives • Heterogeneity • Operating system independence • Compiler independence • These require an object-based approach for implementing DSM
Realized at the object level All objects have a unique identifier Identifiers are identically mapped to objects across machines Data is transferred on demand Granularity can be controlled False sharing avoided DSM — Implementation
Experiments • 10 Sun SPARC 5 workstation • 10 MBit/s Ethernet • Application: Ising model • Measured time is wall-clock time • Three tests • Scalability • Load balancing • Transiently available machines
Experiment 2: Load balancing Time Equivalent Machines Speedup
Experiment 3:Transient Availability • Five machines used • After 100 seconds: 1 machine crashed and 1 added • After another 100 seconds: 2 machines crashed and 2 added • 90.18 % efficiency as opposed to 5 reliable machines • 86.25 % efficiency as opposed to sequential execution (95.64 % for 5 reliable machines)
Summary • Charlotte targets the Web • Leverages benefits of Java (security, heterogeneity, widely available, ...) • Seamlessly crosses administration boundaries • Distribution of program and data • DSM with no compiler or OS support