Chapter 10. Distributed Programming in F#
"Free lunch is over" is a sentence we've been hearing in the last years about the evolution of CPU computing. Until very recently, without any effort on our end, the simple passage of time made our programs faster, thanks to the continuous improvements in the speed of computer processors. However, this is not happening any longer; CPUs are not getting faster, devices (be it a workstation, a laptop, or a mobile device) are getting more processing units instead. For developers, this means their programs won't run any faster on better machines unless they do their homework first: that is, prepare their software so it can scale up and run on multiple CPU cores in parallel. What's more, in the age of cloud computing, software also needs to scale out-run on multiple machines, overcoming problems such as corruption of shared state, locks due to race conditions, and fail recovery.
One of the reasons for the resurgence of...