(.ppt)

938 views

Published on

  • Be the first to comment

  • Be the first to like this

(.ppt)

  1. 1. Real-World Distributed Computing with Ibis Henri Bal [email_address] Vrije Universiteit Amsterdam
  2. 2. Outline <ul><li>Distributed systems </li></ul><ul><li>Distributed applications </li></ul><ul><li>The Ibis distributed programming system </li></ul><ul><li>Ibis in the mobile networked world </li></ul>
  3. 3. Distributed Systems: 1980s <ul><li>Networks of Workstations (NOWs) </li></ul><ul><li>Collections of Workstations (COWs) </li></ul><ul><li>Processor pools (Amoeba) </li></ul><ul><li>Condor pools </li></ul><ul><li>(Beowulf) clusters </li></ul>
  4. 4. Distributed Systems: 1990s <ul><li>Metacomputing (Smarr & Catlett, CACM) </li></ul><ul><li>Flocking Condor (Epema) </li></ul><ul><li>DAS (Distributed ASCI Supercomputer) </li></ul><ul><li>Grid Blueprint (Foster & Kesselman) </li></ul><ul><li>Desktop grids, SETI@home </li></ul>DAS-3
  5. 5. Distributed Systems: 2000s <ul><li>Cloud computing </li></ul><ul><ul><li>Infrastructure as a service </li></ul></ul><ul><ul><li>Virtualization </li></ul></ul><ul><li>Mobile computing </li></ul><ul><ul><li>Sensor networks </li></ul></ul><ul><ul><li>Smart phones </li></ul></ul><ul><li>The Networked World </li></ul>
  6. 6. Problem <ul><li>How to write high-performance applications for real-world distributed systems? </li></ul><ul><li>How to integrate many different resources? </li></ul>
  7. 7. Our approach <ul><li>Study fundamental underlying problems </li></ul><ul><li>… hand-in-hand with realistic applications </li></ul><ul><li>… integrate solutions in one system: Ibis </li></ul>Distributed Systems User !
  8. 8. Fundamental problems <ul><li>Performance – efficiency on wide-area systems </li></ul><ul><li>Heterogeneity – different systems & APIs </li></ul><ul><li>Malleability – resources come and go </li></ul><ul><li>Fault tolerance - crashes </li></ul><ul><li>Connectivity – firewalls, NAT, etc. </li></ul>
  9. 9. Applications <ul><li>Scientific applications </li></ul><ul><ul><li>Imaging (VU Medical Center, AMOLF) </li></ul></ul><ul><ul><li>Bioinformatics (sequence analysis, cell modeling) </li></ul></ul><ul><ul><li>Astronomy (data analysis challenge) </li></ul></ul><ul><li>Multimedia content analysis </li></ul><ul><li>Games and model checking </li></ul><ul><li>Semantic web (distributed reasoning) </li></ul>
  10. 10. Awards SCALE 2008 (CCGrid’08) DACH 2008 – BS DACH 2008 - FT AAAI-VC 2007 ISWC 2008 Multimedia Computing Astronomy Semantic Web (van Harmelen et al.) (Cluster/Grid’08)
  11. 11. Multimedia content analysis <ul><li>Automatically extract information from images & video </li></ul><ul><li>Extract feature vectors from images </li></ul><ul><ul><li>Describe properties (color, shape) </li></ul></ul><ul><ul><li>Data-parallel task on a cluster </li></ul></ul><ul><li>Compute on consecutive images </li></ul><ul><ul><li>Task-parallelism on a grid </li></ul></ul>
  12. 12. MMCA ‘ Most Visionary Research’ award at AAAI 2007, (Frank Seinstra et al.)
  13. 13. Games and Model Checking <ul><li>Can solve entire Awari game on wide-area DAS-3 </li></ul><ul><ul><li>Needs 10G private optical network (StarPlane) </li></ul></ul><ul><li>Distributed model checking has very similar communication pattern </li></ul><ul><ul><li>Search huge state spaces, random work distribution, bulk asynchronous transfers </li></ul></ul><ul><li>Can efficiently run DeVinE model checker on wide-area DAS-3, use up to 1 TB memory </li></ul><ul><ul><li>See IPDPS’09 (May 2009) </li></ul></ul>
  14. 14. Distributed reasoning <ul><li>MaRVIN (Frank van Harmelen et al, VU): </li></ul><ul><ul><li>a distributed platform for massive RDF inferencing (deductive closure) </li></ul></ul><ul><ul><li>``a brain the size of a planet’’ </li></ul></ul><ul><li>Uses Ibis to run on heterogeneous systems (clusters, desktop grids) </li></ul><ul><li>3rd prize at Billion Triple track of Semantic Web Challenge 2008 </li></ul>
  15. 15. European users <ul><li>D-Grid: Workflow engine for astronomy </li></ul><ul><li>U. Erlangen: grid file system </li></ul><ul><li>INRIA: ProActive on Ibis RMI </li></ul><ul><li>U. Patras: Jylab scientific computing </li></ul><ul><li>UPC Barcelona: Grid Superscalar </li></ul><ul><li>HITACHI: Peta-scale data management </li></ul>Grid’5000
  16. 16. Outline <ul><li>Distributed systems </li></ul><ul><li>Distributed applications </li></ul><ul><li>The Ibis distributed programming system </li></ul><ul><li>Ibis in the mobile networked world </li></ul>
  17. 17. Ibis Philosophy <ul><li>Real-world distributed applications should be developed and compiled on a local workstation, and simply be launched from there </li></ul>
  18. 18. Ibis Approach <ul><li>Virtual Machines (Java) deal with heterogeneity </li></ul><ul><li>Provide range of programming abstractions </li></ul><ul><li>Designed for dynamic/faulty environments </li></ul><ul><li>Easy deployment through middleware-independent programming interfaces </li></ul><ul><li>Modular and flexible: can replace Ibis components by external ones </li></ul>
  19. 19. Ibis Design <ul><li>Functionality from programming languages </li></ul><ul><ul><li>High-Performance Application Programming System </li></ul></ul><ul><li>Functionality from operating systems </li></ul><ul><ul><li>Distributed Application Deployment System </li></ul></ul>
  20. 20. Ibis System
  21. 21. Programming system <ul><li>Programming models: </li></ul><ul><ul><li>Message passing (RMI, MPJ) </li></ul></ul><ul><ul><li>Divide-and-conquer (Satin) </li></ul></ul><ul><ul><li>Jorus: (multimedia applications) </li></ul></ul><ul><ul><li>Dataflow framework (Maestro)  see HPDC09 Sat 14.30 </li></ul></ul><ul><li>IPL ( Ibis Portability Layer) </li></ul><ul><ul><li>Java-centric “run-anywhere” library </li></ul></ul><ul><ul><li>Point-to-point, multicast, streaming, …. </li></ul></ul><ul><ul><li>Simple model (Join-Elect-Leave ) for tracking resources, supports malleability & fault-tolerance </li></ul></ul>
  22. 22. SmartSockets library <ul><li>Detects connectivity problems </li></ul><ul><li>Tries to solve them automatically </li></ul><ul><ul><li>With as little help from the user as possible </li></ul></ul><ul><li>Integrates existing and several new solutions </li></ul><ul><ul><li>Reverse connection setup, STUN, TCP splicing, SSH tunneling, smart addressing, etc. </li></ul></ul><ul><li>Uses network of hubs as a side channel </li></ul>
  23. 23. Example
  24. 24. Example
  25. 25. Deployment system <ul><li>IbisDeploy GUI </li></ul><ul><li>JavaGAT: </li></ul><ul><ul><li>Java Grid Application Toolkit </li></ul></ul><ul><ul><li>Make applications independent of underlying middleware </li></ul></ul><ul><li>Zorilla P2P system </li></ul><ul><ul><li>Job management, gossiping, clustering, flood scheduling </li></ul></ul>
  26. 26. JavaGAT <ul><li>For simple grid operations there are many ways of implementing them </li></ul><ul><ul><li>different middleware available on different sites </li></ul></ul>Grid Application File.copy(...)‏ submitJob(...)‏ cp ftp gridftp scp http fork pbs condor unicore globus
  27. 27. JavaGAT <ul><li>Which should you use ? </li></ul><ul><ul><li>Some may not be available on all sites </li></ul></ul><ul><ul><li>Many combinations </li></ul></ul>Grid Application File.copy(...)‏ submitJob(...)‏ cp ftp gridftp scp http fork pbs condor unicore globus ? ?
  28. 28. JavaGAT Grid Application File.copy(...)‏ submitJob(...)‏ GAT Engine Remote Files Monitoring Info service Resource Management GridLab Globus Unicore SSH P2P Local GAT gridftp globus
  29. 29. Multimedia Content Analysis <ul><li>Runs simultaneously on clusters (DAS-3, Japan, Australia), Desktop Grid, Amazon EC2 Cloud </li></ul><ul><li>Connectivity problems solved automatically by Ibis SmartSockets </li></ul>Client Broker Servers Ibis (Java)
  30. 30. Connection management With SmartSockets: run everywhere Standard sockets: only local VU machines can be reached due to firewalls problems
  31. 31. Ibis movie (part 1)
  32. 32. Performance on 1 DAS-3 cluster <ul><li>Relative speedups of Java/Ibis and C++/MPI </li></ul><ul><ul><li>Using TCP or Myricom’s MX protocol </li></ul></ul><ul><li>Sequential performance Java: 80% of C++ </li></ul>
  33. 33. Speedup (wide-area) <ul><li>Homogeneous wide-area systems (DAS-3): </li></ul><ul><ul><li>Frame rate increases linearly with #clusters </li></ul></ul><ul><li>World-wide experiment : </li></ul><ul><ul><li>24 frames per second </li></ul></ul><ul><ul><li>Speed limited by camera, not computing infrastructure </li></ul></ul>
  34. 34. Outline <ul><li>Distributed systems </li></ul><ul><li>Distributed applications </li></ul><ul><li>The Ibis distributed programming system </li></ul><ul><li>Ibis in the mobile networked world </li></ul>
  35. 35. Smart Phones <ul><li>GSM + PC + GPS + camera + networks + …. </li></ul><ul><li>Location-aware </li></ul><ul><li>What if everyone always carries a smart phone (like a GSM now)? </li></ul><ul><li>Next wave in computing? </li></ul>
  36. 36. Ibis on Smart Phones <ul><li>Our focus: distributed smart phone applications </li></ul><ul><ul><li>Applications running on multiple phones </li></ul></ul><ul><ul><li>Integration with distributed computing backbone </li></ul></ul><ul><li>Use Android for development </li></ul><ul><ul><li>Google’s open-source platform </li></ul></ul><ul><ul><li>Java-based </li></ul></ul>
  37. 37. Distributed applications <ul><li>Disaster management (Katrina) </li></ul><ul><ul><li>Use ad-hoc Wifi network when GSM network fails </li></ul></ul><ul><ul><li>Finding nearby people with certain skills </li></ul></ul><ul><ul><ul><li>Bus drivers, CPR </li></ul></ul></ul><ul><ul><li>Distributed decision support </li></ul></ul><ul><ul><ul><li>Moving people to shelters (logistics) </li></ul></ul></ul><ul><li>Social networks </li></ul><ul><ul><li>Similar issues </li></ul></ul><ul><ul><ul><li>Find nearby friends, decide on restaurant </li></ul></ul></ul>
  38. 38. Wild example <ul><li>Track position => automatic diary of your life </li></ul><ul><li>Cross-comparisons between diaries </li></ul>Haven’t we met before? Yes, on 23 Oct 2010, 3.48 pm at N 52°22.688´ E 004°53.990´
  39. 39. eyeDentify <ul><li>Object recognition on a G1 smartphone </li></ul><ul><li>Smartphone is a limited device: </li></ul><ul><ul><li>Can run only 64 x 48 pixels (memory bound) </li></ul></ul><ul><ul><li>1024 x 768 pixels would take 5 minutes </li></ul></ul><ul><li>Distributed Ibis version: </li></ul>+ = + 1024 x 768 pixels 2.0 seconds
  40. 40. Ibis movie (part 2)
  41. 41. Interdroid Distributed Communication Data Management Novel Mobile Distributed Applications Context Sensitive Programming Models
  42. 42. Current work <ul><li>Raven: API for Viable Episodic Networking </li></ul><ul><ul><li>Decentralized synchronization API </li></ul></ul><ul><ul><li>Fine grained control over data sharing </li></ul></ul><ul><li>Bluetooth support for ad-hoc communication </li></ul><ul><li>Discovery of devices using multiple networks </li></ul><ul><li>Context Aware Programming Models </li></ul><ul><ul><li>Supporting distributed decision making </li></ul></ul><ul><ul><li>Representing and using context (location etc.) </li></ul></ul><ul><ul><li>Exploiting social relationships (Hyves, Facebook) </li></ul></ul>
  43. 43. Summary <ul><li>Ibis provides integrated solutions for many hard problems </li></ul><ul><ul><li>performance, heterogeneity, malleability, fault tolerance, connectivity </li></ul></ul><ul><li>It combines functionality from programming languages and operating systems </li></ul><ul><li>Used for many applications on real-world distributed systems </li></ul><ul><li>Download from http://www.cs.vu.nl/ibis/ </li></ul>
  44. 44. Acknowledgements <ul><li>Niels Drost </li></ul><ul><li>Ceriel Jacobs </li></ul><ul><li>Roelof Kemp </li></ul><ul><li>Timo van Kessel </li></ul><ul><li>Thilo Kielmann </li></ul><ul><li>Jason Maassen </li></ul><ul><li>Rob van Nieuwpoort </li></ul><ul><li>Nick Palmer </li></ul><ul><li>Kees van Reeuwijk </li></ul><ul><li>Frank J. Seinstra </li></ul><ul><li>Kees Verstoep </li></ul><ul><li>Gosia Wrzesinska </li></ul>
  45. 45. Questions?
  46. 46. D A S - 3

×