Brave New Concurrent World

433 views

Published on

[talk from Webcamp Ljubljana 2009] A non-apologetic treatise on how to think concurrency. Contains exotic languages, swearing, and only a passing relevance to the web.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
433
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Brave New Concurrent World

  1. 1. Brave New Concurrent World Webcamp Ljubljana [email_address]
  2. 2. Why should you give a fuck? <ul><li>More data > better algorithms </li></ul><ul><li>Moore’s Law: from GHz to cores </li></ul><ul><li>Conventional computation models are badly broken </li></ul>
  3. 3. Some big ideas in concurrency
  4. 4. Decouple temporal and spital order
  5. 5. <ul><li>a*(b*c)=(a*b)*c </li></ul><ul><li>a+b=b+a </li></ul>Associativity v . commutativity
  6. 6. <ul><li>First/rest </li></ul><ul><li>Linked lists </li></ul><ul><li>Partitions </li></ul><ul><li>trees </li></ul>Linear v. m ulti - way d ecom position
  7. 7. <ul><li>Recursive updates </li></ul><ul><li>Map to singelton solutions </li></ul><ul><li>Merge subsolutions </li></ul>Accumulation v . merging
  8. 8. The future is a function of the past, it doesn’t change it
  9. 9. Identity is an illusion There is no enduring changing entity
  10. 10. Immutable values <ul><li>Copy on change (pure functions) </li></ul><ul><ul><li>State transitions never disturb prior </li></ul></ul><ul><ul><li>Structure sharing where possible </li></ul></ul><ul><li>Never need synchronization </li></ul>
  11. 11. Forget everything you know about performance
  12. 12. Do redundant operations to reduce communication
  13. 13. Take extra space to permit temporal decoupling
  14. 15. Map/reduce Concurrency in practice
  15. 17. Fine granularity N(map tasks) >> N(machines)
  16. 18. Fault tolerance via re-execution
  17. 19. Refinement s <ul><li>Redundant execution </li></ul><ul><li>Locality optimizations </li></ul><ul><ul><li>Master s chedule r </li></ul></ul>
  18. 20. How not to get (completely) ass-raped in the near future <ul><li>Functional programming </li></ul><ul><li>Smart(er) compilers/run-times </li></ul><ul><li>Erlang, Clojure, (Haskell, Go, Fortress, ...) </li></ul>

×