What is it about?

It is very challenging to program applications where multiple threads and processes are running concurrently. One has to cope with many unforeseeable scenarios, including failures, delays, widely varying loads, etc. For over 50 years, we have been slowly mastering the difficulties, developing more sophisticated techniques and deeper theoretical insights, through a paradigm that reduces the problem specifications and reasoning to the much easier world of programming a single sequential process.

Featured Image

Why is it important?

Today, almost all systems consist of multiple programs that run concurrently, collaborate and interact. From the microscopic world of multi-core chips to wide area networks, blockchains, distributed databases, and even interplanetary applications.

Perspectives

A fascinating history that starts over 50 years ago, motivated by problems in fault-tolerance, distributed databases, concurrent multi-thread programming, with many beautiful conceptual and practical results. Very complex situations can be mastered using appropriate abstractions and beautiful algorithms.

Sergio Rajsbaum
Universidad Nacional Autonoma de Mexico

Read the Original

This page is a summary of: Mastering concurrent computing through sequential thinking, Communications of the ACM, December 2019, ACM (Association for Computing Machinery),
DOI: 10.1145/3363823.
You can read the full text:

Read

Contributors

The following have contributed to this page