Parallel4 is a easy-to-use multi-threading API for Java an other JVM based languages like Groovy. It offers parallel versions of the "for" and "foreach" loops to leverage the full power of todays multi-core CPUs.
Parallel4's goals are:
* Simple API: Hide as many details of multi-threaded programming as possible from the API. Although it does not offer transparent/implicit multi-threading in a strict sense, it tries to come as close to this as a non-functional programming language allows.
* Familiar API: Offer well known constructs, e.g. the "for" loop and add parallelism to it.
* Easy adaptation of parallel programming: Based on a familiar API, it is easy to introduce multi-threading. Often, two additional lines of code are enough without imposing any structural changes.
* Adaptive: Let the "framework" make reasonable defaults to adapt to the execution environment, e.g. use as many threads as CPU cores are available.
* Performance: A low overhead makes it easy to decide whether to use parallel processing or not.
* Reliable: Multi-threading gets tricky when things go wrong unexpectedly. A well defined exception handling makes this a bit easier.
Kilim is a message-passing framwork for Java that provides ultra-lightweight threads and facilities for fast, safe, zero-copy messaging between these threads.
The process of writing large parallel programs is complicated by the need to specify both the parallel behaviour of the program and the algorithm that is to be used to compute its result.
In an earlier post Over on the Twisted blog, Duncan McGreggor has asked us to expand a bit on where we think Twisted may be lacking in it’s support for concurrency. I’m afraid this has turned into a meandering essay, since I needed to reference so muc
The Little Book of Semaphores is a free (in both senses of the word) textbook that introduces the principles of synchronization for concurrent programming.
In most computer science curricula, synchronization is a module in an Operating Systems class. OS textbooks present a standard set of problems with a standard set of solutions, but most students don't get a good understanding of the material or the ability to solve similar problems.
The approach of this book is to identify patterns that are useful for a variety of synchronization problems and then show how they can be assembled into solutions. After each problem, the book offers a hint before showing a solution, giving students a better chance of discovering solutions on their own.
The book covers the classical problems, including "Readers-writers", "Producer-consumer", and "Dining Philosophers". In addition, it collects a number of not-so-classical problems, some written by the author and some by other teachers and textbook writers. Readers are invited to create and submit new problems.
PARLEY is an API for writing Python programs that implement the Actor model of distributed systems, in which lightweight concurrent processes communicate through asynchronous message-passing.
D. Anderson, G. Blelloch, and Y. Wei. Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, page 526--541. ACM, (Jun 18, 2021)
T. Tu, X. Liu, L. Song, and Y. Zhang. Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS \textquotesingle19, ACM, (2019)
J. Swalens, J. De Koster, and W. De Meuter. Proceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control - AGERE 2018, page 33--43. ACM, (November 2018)
D. Aumayr, S. Marr, E. Gonzalez Boix, and H. Mössenböck. Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes, page 157--171. ACM, (October 2019)
Q. Luo, F. Hariri, L. Eloussi, and D. Marinov. Proceedings of the 22Nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, page 643--653. ACM, (2014)
X. Chang, W. Dou, Y. Gao, J. Wang, J. Wei, and T. Huang. Proceedings of the 41st International Conference on Software Engineering, page 631--642. IEEE Press, (May 2019)
H. Sun, D. Bonetta, F. Schiavio, and W. Binder. Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization, page 61--72. IEEE Press, (2019)