Language abstractions and scheduling techniques for efficient execution of parallel algorithms on multicore hardware

Given that OCaml 5.00 will have effect handlers, and the fact that arbitrary async/await graphs can cause deadlocks, I’ve started work on using effect handlers in domainslib.

There are some open questions about the choice of work-first or help-first scheduling policies and the affinity of async tasks to domains. Please share your thoughts on these and other issues.

Domainslib is still in its infancy and lacks many features that may be expected from a solid library. We’ve tackled some of these issues such as cancellation in other libraries (eio uses switches for cancellation), which can serve as the source of inspiration for similar features in domainslib. I am hoping that we can continue to experiment with domainslib and make it into a solid library for task-parallel programming.

6 Likes