it's all about processes communicating
DESCRIPTION
JAX London 2012 presentation 2012-10-16 about using GPars, the actor mode, dataflow model, Communicating Sequential Processes(CSP).TRANSCRIPT
![Page 1: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/1.jpg)
Copyright © 2011–2012 Russel Winder 1
It's All AboutProcesses Communicating
Russel Winder
email: [email protected]: [email protected]
twitter: russel_winder
![Page 2: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/2.jpg)
Copyright © 2011–2012 Russel Winder 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…
![Page 3: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/3.jpg)
Copyright © 2011–2012 Russel Winder 3
…people should tremble in fear
at the prospect of using
Shared-memorymultithreading.
![Page 4: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/4.jpg)
Copyright © 2011–2012 Russel Winder 4
Structure
A beginning.
A middle.
An end.
![Page 5: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/5.jpg)
Copyright © 2011–2012 Russel Winder 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, I'll pass you the token.
Questions, answers, comments, etc. appearingto get too long as interjections may get stackedto be unstacked at a break.
![Page 6: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/6.jpg)
Copyright © 2011–2012 Russel Winder 6
Interstitial Advertisement
![Page 7: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/7.jpg)
Copyright © 2011–2012 Russel Winder 7
A Beginning
![Page 8: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/8.jpg)
Copyright © 2011–2012 Russel Winder 8
It is no longer contentious thatThe Multicore Revolution
is well underway.
![Page 9: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/9.jpg)
Copyright © 2011–2012 Russel Winder 9
Quad core laptops and phones.
Eight and twelve core workstations.
Servers with “zillions” of cores.
![Page 10: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/10.jpg)
Copyright © 2011–2012 Russel Winder 10
Parallel hardware is the norm.
![Page 11: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/11.jpg)
Copyright © 2011–2012 Russel Winder 11
Software technology is now lagginghardware technology by decades.
![Page 12: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/12.jpg)
Copyright © 2011–2012 Russel Winder 12
Operating systems manage coreswith kernel threads.
Operating systems are fundamentally shared memory multi-threaded systems.
Operating systems rightly use all the lock, semaphore, monitor, etc. technologies.
![Page 13: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/13.jpg)
Copyright © 2011–2012 Russel Winder 13
Computationally intensive systems orsubsystems definitely have to be parallel.
Other systems likely use concurrencybut not parallelism.
![Page 14: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/14.jpg)
Copyright © 2011–2012 Russel Winder 14
Concurrency
Execution as co-routines:
Sequences of code give up the executionto pass it to another coroutine.
![Page 15: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/15.jpg)
Copyright © 2011–2012 Russel Winder 15
More Concurrency
Concurrency is a technique founded in auniprocessor view of the world.
Time-division multiplexing.
![Page 16: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/16.jpg)
Copyright © 2011–2012 Russel Winder 16
Parallelism
Having multiple executions activeat the same time.
![Page 17: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/17.jpg)
Copyright © 2011–2012 Russel Winder 17
Concurrency is a tool for structuring execution where asingle processor is used by multiple computations.
Parallelism is about making a computation completefaster than using a single processor.
![Page 18: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/18.jpg)
Copyright © 2011–2012 Russel Winder 18
![Page 19: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/19.jpg)
Copyright © 2011–2012 Russel Winder 19
![Page 20: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/20.jpg)
Copyright © 2011–2012 Russel Winder 20
![Page 21: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/21.jpg)
Copyright © 2011–2012 Russel Winder 21
![Page 22: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/22.jpg)
Copyright © 2011–2012 Russel Winder 22
![Page 23: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/23.jpg)
Copyright © 2011–2012 Russel Winder 23
![Page 24: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/24.jpg)
Copyright © 2011–2012 Russel Winder 24
![Page 25: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/25.jpg)
Copyright © 2011–2012 Russel Winder 25
Squirrel behaviour emulatessynchronized software behaviour.
![Page 26: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/26.jpg)
Copyright © 2011–2012 Russel Winder 26
Thanks to Paul King…
Who uses synchronized?
![Page 27: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/27.jpg)
Copyright © 2011–2012 Russel Winder 27
Thanks to Paul King…
You did it wrong.
![Page 28: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/28.jpg)
Copyright © 2011–2012 Russel Winder 28
Small addition by me…
Who uses lock objects?
![Page 29: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/29.jpg)
Copyright © 2011–2012 Russel Winder 29
Small addition by me…
You definitely did it wrong.
![Page 30: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/30.jpg)
Copyright © 2011–2012 Russel Winder 30
Locks deny parallelism.
![Page 31: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/31.jpg)
Copyright © 2011–2012 Russel Winder 31
The whole purpose of a lock is toprevent parallelism.
![Page 32: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/32.jpg)
Copyright © 2011–2012 Russel Winder 32
Parallelism is performance improvement.
Performance improvement requires parallelism.
![Page 33: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/33.jpg)
Copyright © 2011–2012 Russel Winder 33
Locks deny performance improvement.
![Page 34: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/34.jpg)
Copyright © 2011–2012 Russel Winder 34
Locks are needed only ifthere is mutable shared state.
![Page 35: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/35.jpg)
Copyright © 2011–2012 Russel Winder 35
Avoid mutable shared state.
![Page 36: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/36.jpg)
Copyright © 2011–2012 Russel Winder 36
Use processes and message passing.
![Page 37: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/37.jpg)
Copyright © 2011–2012 Russel Winder 37
It's all easier if processesare single threaded.
![Page 38: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/38.jpg)
Copyright © 2011–2012 Russel Winder 38
…but how…
![Page 39: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/39.jpg)
Copyright © 2011–2012 Russel Winder 39
Use appropriate architectural models.
![Page 40: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/40.jpg)
Copyright © 2011–2012 Russel Winder 40
A Middle
![Page 41: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/41.jpg)
Copyright © 2011–2012 Russel Winder 41
It's all about controllingconcurrency and parallelism
with tools that programmers find usable.
![Page 42: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/42.jpg)
Copyright © 2011–2012 Russel Winder 42
Shared memory multi-threading isan operating system technique.
![Page 43: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/43.jpg)
Copyright © 2011–2012 Russel Winder 43
Applications and tools programmersneed computational models with
integrated synchronization.
![Page 44: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/44.jpg)
Copyright © 2011–2012 Russel Winder 44
ActorsIndependent processes communicating via asynchronous exchange of messages
CSPSequential processes connected by channels using synchronous message exchange (rendezvous).
DataflowOperators connected by channels with activity triggered by arrival of data on the channels.
![Page 45: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/45.jpg)
Copyright © 2011–2012 Russel Winder 45
ActorsIndependent processes communicating via asynchronous exchange of messages
![Page 46: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/46.jpg)
Copyright © 2011–2012 Russel Winder 46
DataflowOperators connected by channels with activity triggered by arrival of data on the channels.
![Page 47: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/47.jpg)
Copyright © 2011–2012 Russel Winder 47
CSPSequential processes connected by channels using synchronous message exchange (rendezvous).
![Page 48: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/48.jpg)
Copyright © 2011–2012 Russel Winder 48
Need examples.
![Page 49: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/49.jpg)
Copyright © 2011–2012 Russel Winder 49
![Page 50: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/50.jpg)
Copyright © 2011–2012 Russel Winder 50
What is the Value of ?
Easy, it's known exactly.
It's .
Obviously.
![Page 51: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/51.jpg)
Copyright © 2011–2012 Russel Winder 51
It's simples Александр Орлов 2009
![Page 52: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/52.jpg)
Copyright © 2011–2012 Russel Winder 52
Approximating
● What is it's 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.
4=∫0
1 1
1x2dx
![Page 53: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/53.jpg)
Copyright © 2011–2012 Russel Winder 53
One Possible Algorithm
● Use quadrature to estimate the value of the integral – which is the area under the curve.
=4n∑i=1
n 1
1i−0.5n
2
With n = 3 not much to do, but potentially lots of error. Use n = 107 or n = 109?
Embarrassingly parallel.
![Page 54: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/54.jpg)
Copyright © 2011–2012 Russel Winder 54
Because addition is commutative andassociative, expression can be
decomposed into sums of partial sums.
![Page 55: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/55.jpg)
Copyright © 2011–2012 Russel Winder 55
a + b + c + d + e + f
=
( a + b ) + ( c + d ) + ( e + f )
![Page 56: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/56.jpg)
Copyright © 2011–2012 Russel Winder 56
Scatter – Gather
map reduce
![Page 57: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/57.jpg)
Copyright © 2011–2012 Russel Winder 57
Code!
![Page 58: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/58.jpg)
Copyright © 2011–2012 Russel Winder 58
If you want the code, clone the Git repository:
http://www.russel.org.uk/Git/Pi_Quadrature.git
![Page 59: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/59.jpg)
Copyright © 2011–2012 Russel Winder 59
Or if you just want to browse:
http://www.russel.org.uk/gitweb
![Page 60: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/60.jpg)
Copyright © 2011–2012 Russel Winder 60
Need another example.
![Page 61: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/61.jpg)
Copyright © 2011–2012 Russel Winder 61
The Sleeping Barber Problem
![Page 62: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/62.jpg)
Copyright © 2011–2012 Russel Winder 62
The Sleeping Barber Problem
● The barber's shop has a single cutting chair and a row of waiting seats.
● The barber sleeps in the cutting chair unless trimming a customer.
● Customers arrive at the shop at intervals.
● If the barber is asleep, the customer wakes the barber takes the cutting chair and gets a trim.
● If the barber is cutting, a new customer checks to see if there is a free waiting seat.
● If there is join the queue to be trimmed.
● If there isn't leave disgruntled.
Problem originally dueto Edsgar Dijkstra.
![Page 63: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/63.jpg)
Copyright © 2011–2012 Russel Winder 63
A new customer enters the shop,check to see if they can go straightto the cutting chair, if not can theytake a waiting chair, if not leave.
The waiting chairs
The cutting chair.
The barber's shop.
![Page 64: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/64.jpg)
Copyright © 2011–2012 Russel Winder 64
Wikipedia article presents the classic operating systems approach using locks and semaphores.
http://en.wikipedia.org/wiki/Sleeping_barber_problem
![Page 65: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/65.jpg)
Copyright © 2011–2012 Russel Winder 65
More code!
![Page 66: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/66.jpg)
Copyright © 2011–2012 Russel Winder 66
If you want the code, clone the Git repository:
http://www.russel.org.uk/Git/SleepingBarber.git
![Page 67: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/67.jpg)
Copyright © 2011–2012 Russel Winder 67
Or if you just want to browse:
http://www.russel.org.uk/gitweb
![Page 68: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/68.jpg)
Copyright © 2011–2012 Russel Winder 68
An End
![Page 69: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/69.jpg)
Copyright © 2011–2012 Russel Winder 69
Multicore and multiprocessor are nowthe norm, not the exception.
![Page 70: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/70.jpg)
Copyright © 2011–2012 Russel Winder 70
Parallelism only matters ifcomputational performance matters.
![Page 71: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/71.jpg)
Copyright © 2011–2012 Russel Winder 71
Unstructured synchronizationof concurrent systems
is not a feasible approach.
![Page 72: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/72.jpg)
Copyright © 2011–2012 Russel Winder 72
Actors, CSP and Datafloware the future of
applications structure.
![Page 73: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/73.jpg)
Copyright © 2011–2012 Russel Winder 73
Passing messages betweenprocesses is the way forward.
![Page 74: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/74.jpg)
Copyright © 2011–2012 Russel Winder 74
Shared memory concurrencyis a dead end for applications.
![Page 75: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/75.jpg)
Copyright © 2011–2012 Russel Winder 75
![Page 76: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/76.jpg)
Copyright © 2011–2012 Russel Winder 76
![Page 77: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/77.jpg)
Copyright © 2011–2012 Russel Winder 77
![Page 78: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/78.jpg)
Copyright © 2011–2012 Russel Winder 78
![Page 79: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/79.jpg)
Copyright © 2011–2012 Russel Winder 79
![Page 80: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/80.jpg)
Copyright © 2011–2012 Russel Winder 80
![Page 81: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/81.jpg)
Copyright © 2011–2012 Russel Winder 81
Squirrels deny parallelism.
![Page 82: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/82.jpg)
Copyright © 2011–2012 Russel Winder 82
Squirrels deny performance enhancement.
![Page 83: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/83.jpg)
Copyright © 2011–2012 Russel Winder 83
Don't be a squirrel.
![Page 84: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/84.jpg)
Copyright © 2011–2012 Russel Winder 84
Do not use explicit locking algorithms.
![Page 85: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/85.jpg)
Copyright © 2011–2012 Russel Winder 85
Use computational architectures that promoteparallelism and hence performance
improvement:
ActorsDataflow
CSPData Parallelism
![Page 86: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/86.jpg)
Copyright © 2011–2012 Russel Winder 86
Use
Go on, you know you want to…
![Page 87: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/87.jpg)
Copyright © 2011–2012 Russel Winder 87
Surreptitious Advertisement
![Page 88: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/88.jpg)
Copyright © 2011–2012 Russel Winder 88
The End
![Page 89: It's All About Processes Communicating](https://reader034.vdocument.in/reader034/viewer/2022052208/55599d60d8b42a5b2a8b45c9/html5/thumbnails/89.jpg)
Copyright © 2011–2012 Russel Winder 89
It's All AboutProcesses Communicating
Russel Winder
email: [email protected]: [email protected]
twitter: russel_winder