It's All About Processes Communicating

592 views

Published on

JAX London 2012 presentation 2012-10-16 about using GPars, the actor mode, dataflow model, Communicating Sequential Processes(CSP).

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

  • Be the first to like this

No Downloads
Views
Total views
592
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

It's All About Processes Communicating

  1. 1. Its All About Processes Communicating Russel Winder email: russel@winder.org.uk xmpp: russel@winder.org.uk twitter: russel_winderCopyright © 2011–2012 Russel Winder 1
  2. 2. Aims, Goals and Objects ● Show that shared memory multi-threading should return to being an operating systems development technique and not continue to be pushed as an applications programming technique. ● Show that…Copyright © 2011–2012 Russel Winder 2
  3. 3. …people should tremble in fear at the prospect of using Shared-memory multithreading.Copyright © 2011–2012 Russel Winder 3
  4. 4. Structure A beginning. A middle. An end.Copyright © 2011–2012 Russel Winder 4
  5. 5. Protocol ● Questions or short comments during the session are entirely in order. ● Let me know you have an interjection by raising your hand, and when I come to an appropriate pause, Ill pass you the token. Questions, answers, comments, etc. appearing to get too long as interjections may get stacked to be unstacked at a break.Copyright © 2011–2012 Russel Winder 5
  6. 6. Interstitial AdvertisementCopyright © 2011–2012 Russel Winder 6
  7. 7. A BeginningCopyright © 2011–2012 Russel Winder 7
  8. 8. It is no longer contentious that The Multicore Revolution is well underway.Copyright © 2011–2012 Russel Winder 8
  9. 9. Quad core laptops and phones. Eight and twelve core workstations. Servers with “zillions” of cores.Copyright © 2011–2012 Russel Winder 9
  10. 10. Parallel hardware is the norm.Copyright © 2011–2012 Russel Winder 10
  11. 11. Software technology is now lagging hardware technology by decades.Copyright © 2011–2012 Russel Winder 11
  12. 12. Operating systems manage cores with kernel threads. Operating systems are fundamentally shared memory multi-threaded systems. Operating systems rightly use all the lock, semaphore, monitor, etc. technologies.Copyright © 2011–2012 Russel Winder 12
  13. 13. Computationally intensive systems or subsystems definitely have to be parallel. Other systems likely use concurrency but not parallelism.Copyright © 2011–2012 Russel Winder 13
  14. 14. Concurrency Execution as co-routines: Sequences of code give up the execution to pass it to another coroutine.Copyright © 2011–2012 Russel Winder 14
  15. 15. More Concurrency Concurrency is a technique founded in a uniprocessor view of the world. Time-division multiplexing.Copyright © 2011–2012 Russel Winder 15
  16. 16. Parallelism Having multiple executions active at the same time.Copyright © 2011–2012 Russel Winder 16
  17. 17. Concurrency is a tool for structuring execution where a single processor is used by multiple computations. Parallelism is about making a computation complete faster than using a single processor.Copyright © 2011–2012 Russel Winder 17
  18. 18. Copyright © 2011–2012 Russel Winder 18
  19. 19. Copyright © 2011–2012 Russel Winder 19
  20. 20. Copyright © 2011–2012 Russel Winder 20
  21. 21. Copyright © 2011–2012 Russel Winder 21
  22. 22. Copyright © 2011–2012 Russel Winder 22
  23. 23. Copyright © 2011–2012 Russel Winder 23
  24. 24. Copyright © 2011–2012 Russel Winder 24
  25. 25. Squirrel behaviour emulates synchronized software behaviour.Copyright © 2011–2012 Russel Winder 25
  26. 26. Thanks to Paul King… Who uses synchronized?Copyright © 2011–2012 Russel Winder 26
  27. 27. Thanks to Paul King… You did it wrong.Copyright © 2011–2012 Russel Winder 27
  28. 28. Small addition by me… Who uses lock objects?Copyright © 2011–2012 Russel Winder 28
  29. 29. Small addition by me… You definitely did it wrong.Copyright © 2011–2012 Russel Winder 29
  30. 30. Locks deny parallelism.Copyright © 2011–2012 Russel Winder 30
  31. 31. The whole purpose of a lock is to prevent parallelism.Copyright © 2011–2012 Russel Winder 31
  32. 32. Parallelism is performance improvement. Performance improvement requires parallelism.Copyright © 2011–2012 Russel Winder 32
  33. 33. Locks deny performance improvement.Copyright © 2011–2012 Russel Winder 33
  34. 34. Locks are needed only if there is mutable shared state.Copyright © 2011–2012 Russel Winder 34
  35. 35. Avoid mutable shared state.Copyright © 2011–2012 Russel Winder 35
  36. 36. Use processes and message passing.Copyright © 2011–2012 Russel Winder 36
  37. 37. Its all easier if processes are single threaded.Copyright © 2011–2012 Russel Winder 37
  38. 38. …but how…Copyright © 2011–2012 Russel Winder 38
  39. 39. Use appropriate architectural models.Copyright © 2011–2012 Russel Winder 39
  40. 40. A MiddleCopyright © 2011–2012 Russel Winder 40
  41. 41. Its all about controlling concurrency and parallelism with tools that programmers find usable.Copyright © 2011–2012 Russel Winder 41
  42. 42. Shared memory multi-threading is an operating system technique.Copyright © 2011–2012 Russel Winder 42
  43. 43. Applications and tools programmers need computational models with integrated synchronization.Copyright © 2011–2012 Russel Winder 43
  44. 44. Dataflow Operators connected by Actors channels with activity Independent processes triggered by arrival of communicating via data on the channels. asynchronous exchange of messages CSP Sequential processes connected by channels using synchronous message exchange (rendezvous).Copyright © 2011–2012 Russel Winder 44
  45. 45. Actors Independent processes communicating via asynchronous exchange of messagesCopyright © 2011–2012 Russel Winder 45
  46. 46. Dataflow Operators connected by channels with activity triggered by arrival of data on the channels.Copyright © 2011–2012 Russel Winder 46
  47. 47. CSP Sequential processes connected by channels using synchronous message exchange (rendezvous).Copyright © 2011–2012 Russel Winder 47
  48. 48. Need examples.Copyright © 2011–2012 Russel Winder 48
  49. 49. Copyright © 2011–2012 Russel Winder 49
  50. 50. What is the Value of ? Easy, its known exactly. Its . Obviously.Copyright © 2011–2012 Russel Winder 50
  51. 51. Its simples Александр Орлов 2009Copyright © 2011–2012 Russel Winder 51
  52. 52. Approximating  ● What is its value represented as a floating point number? ● We can only obtain an approximation. ● A plethora of possible algorithms to choose from, a popular one is to employ the following integral equation.  1 1 =∫0 dx 4 1x 2Copyright © 2011–2012 Russel Winder 52
  53. 53. One Possible Algorithm ● Use quadrature to estimate the value of the integral – which is the area under the curve. 4 n 1 = ∑i=1 n i−0.5 2 Embarrassingly 1  parallel. n With n = 3 not much to do, but potentially lots of error. Use n = 107 or n = 109?Copyright © 2011–2012 Russel Winder 53
  54. 54. Because addition is commutative and associative, expression can be decomposed into sums of partial sums.Copyright © 2011–2012 Russel Winder 54
  55. 55. a+b+c+d+e+f = (a+b)+(c+d)+(e+f)Copyright © 2011–2012 Russel Winder 55
  56. 56. Scatter – Gather map reduceCopyright © 2011–2012 Russel Winder 56
  57. 57. Code!Copyright © 2011–2012 Russel Winder 57
  58. 58. If you want the code, clone the Git repository: http://www.russel.org.uk/Git/Pi_Quadrature.gitCopyright © 2011–2012 Russel Winder 58
  59. 59. Or if you just want to browse: http://www.russel.org.uk/gitwebCopyright © 2011–2012 Russel Winder 59
  60. 60. Need another example.Copyright © 2011–2012 Russel Winder 60
  61. 61. The Sleeping Barber ProblemCopyright © 2011–2012 Russel Winder 61
  62. 62. The Sleeping Barber Problem ● The barbers shop has a ● If the barber is cutting, a new single cutting chair and a row customer checks to see if of waiting seats. there is a free waiting seat. ● The barber sleeps in the ● If there is join the queue cutting chair unless trimming to be trimmed. a customer. ● If there isnt leave ● Customers arrive at the shop disgruntled. at intervals. ● If the barber is asleep, the customer wakes the barber Problem originally due takes the cutting chair and to Edsgar Dijkstra. gets a trim.Copyright © 2011–2012 Russel Winder 62
  63. 63. The cutting chair. The waiting chairs The barbers shop. A new customer enters the shop, check to see if they can go straight to the cutting chair, if not can they take a waiting chair, if not leave.Copyright © 2011–2012 Russel Winder 63
  64. 64. Wikipedia article presents the classic operating systems approach using locks and semaphores. http://en.wikipedia.org/wiki/Sleeping_barber_problemCopyright © 2011–2012 Russel Winder 64
  65. 65. More code!Copyright © 2011–2012 Russel Winder 65
  66. 66. If you want the code, clone the Git repository: http://www.russel.org.uk/Git/SleepingBarber.gitCopyright © 2011–2012 Russel Winder 66
  67. 67. Or if you just want to browse: http://www.russel.org.uk/gitwebCopyright © 2011–2012 Russel Winder 67
  68. 68. An EndCopyright © 2011–2012 Russel Winder 68
  69. 69. Multicore and multiprocessor are now the norm, not the exception.Copyright © 2011–2012 Russel Winder 69
  70. 70. Parallelism only matters if computational performance matters.Copyright © 2011–2012 Russel Winder 70
  71. 71. Unstructured synchronization of concurrent systems is not a feasible approach.Copyright © 2011–2012 Russel Winder 71
  72. 72. Actors, CSP and Dataflow are the future of applications structure.Copyright © 2011–2012 Russel Winder 72
  73. 73. Passing messages between processes is the way forward.Copyright © 2011–2012 Russel Winder 73
  74. 74. Shared memory concurrency is a dead end for applications.Copyright © 2011–2012 Russel Winder 74
  75. 75. Copyright © 2011–2012 Russel Winder 75
  76. 76. Copyright © 2011–2012 Russel Winder 76
  77. 77. Copyright © 2011–2012 Russel Winder 77
  78. 78. Copyright © 2011–2012 Russel Winder 78
  79. 79. Copyright © 2011–2012 Russel Winder 79
  80. 80. Copyright © 2011–2012 Russel Winder 80
  81. 81. Squirrels deny parallelism.Copyright © 2011–2012 Russel Winder 81
  82. 82. Squirrels deny performance enhancement.Copyright © 2011–2012 Russel Winder 82
  83. 83. Dont be a squirrel.Copyright © 2011–2012 Russel Winder 83
  84. 84. Do not use explicit locking algorithms.Copyright © 2011–2012 Russel Winder 84
  85. 85. Use computational architectures that promote parallelism and hence performance improvement: Actors Dataflow CSP Data ParallelismCopyright © 2011–2012 Russel Winder 85
  86. 86. Use Go on, you know you want to…Copyright © 2011–2012 Russel Winder 86
  87. 87. Surreptitious AdvertisementCopyright © 2011–2012 Russel Winder 87
  88. 88. The EndCopyright © 2011–2012 Russel Winder 88
  89. 89. Its All About Processes Communicating Russel Winder email: russel@winder.org.uk xmpp: russel@winder.org.uk twitter: russel_winderCopyright © 2011–2012 Russel Winder 89

×