scripting the cloud with skywriting
play

Scripting the cloud with Skywriting Derek G. Murray Steven Hand - PowerPoint PPT Presentation

Scripting the cloud with Skywriting Derek G. Murray Steven Hand University of Cambridge A universal model? MapReduce A universal model? MapReduce A universal model! Move computation to the data Code Driver program Results submitJob();


  1. Scripting the cloud 
 with Skywriting Derek G. Murray Steven Hand University of Cambridge

  2. A universal model? MapReduce

  3. A universal model? MapReduce

  4. A universal model!

  5. Move computation to the data Code Driver 
 program Results submitJob();

  6. while (!converged) do work in parallel;

  7. Iterative algorithm Code Driver 
 Driver program program Results while (…) submitJob(); Code submitJob(); Results Code Results Code Results

  8. Iterative algorithm Code Driver Driver 
 program Results program while (…) Code submitJob();

  9. Skywriting while (…) doStuff(); Code Results

  10. Skywriting • JavaScript-like job specification language – Supports functional programming – Data-dependent control flow • Distributed execution engine – Locality-based scheduling – Fault tolerance – Thread migration

  11. Spawning a task function f(x) { return x + 1; } res1 = spawn (f, [42]);

  12. Task dependencies function f(x) { return x + 1; } function g(y) { … } res1 = spawn (f, [42]); res2 = spawn (g, [res1]); res1 and res2 are future references

  13. Logistic regression points = […]; // List of partitions w = …; // Random initial value for (i in range(0, ITERATIONS)) { w_old = w; results = []; for (part in points) { results += spawn (log_reg, [part, w_old]); } w = spawn (update, [w_old, results]); }

  14. Logistic regression points = […]; // List of partitions w = …; // Random initial value do { w_old = w; results = []; for (part in points) { results += spawn (log_reg, [part, w_old]); } w = spawn (update, [w_old, results]); done = spawn (converged, [w_old, w]); } while (!*done);

  15. Logistic regression *‐ operator dereferences (forces) a future

  16. Implementation status • Implemented in 4000 lines of Python – Also: Java, C and .NET bindings • Many additional features – Native code execution – Introspection – Conditional synchronisation • Available as open-source – http://github.com/mrry/skywriting

  17. Job creation overhead 60 Overhead (seconds) 50 40 30 Hadoop 20 Skywriting 10 0 0 20 40 60 80 100 Number of workers

  18. Future directions • Multiple-scale parallel computing – Multiple cores, machines and clouds • Streaming computations – Piping high-bandwidth data between tasks • Better language integration – Hosted Skywriting on CLR or JVM

  19. Conclusions • Turing-complete programming language for distributed computation • Runs real jobs with low overhead • Lots more still to do!

  20. Questions? • Email – Derek.Murray@cl.cam.ac.uk • Project website – http://www.cl.cam.ac.uk/netos/skywriting/

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend