Dagger.jl Fast, Smart Parallelism

Dagger 0.17 Release Notes

Summary of key changes:

  • Added keyword argument support to all APIs (#394)

  • Added cross-thread work stealing (#373)

  • Deprecated proclist and single options, added Dagger.scope helper (#374)

  • Added support for broadcast to @spawn (#372)

This release was primarily focused on usability, with the additions of kwarg support, broadcast in @spawn, and the Dagger.scope helper. Additionally, with assistance from Przemysław Szufel (@pszufe), we were able to greatly improve multithreaded performance thanks to the addition of same-worker work stealing. Cross-worker work stealing was skipped as the performance implications of that are quite complex, whereas same-worker work stealing is basically always a net win for performance.

It's also important to note the deprecation of proclist and single options, which was done because their semantics were not entirely clear (especially when mixed with the more powerful scope system), and because they weren't expressive enough for many use cases. scope is the successor option to these, and with the new Dagger.scope helper, it should be an easy upgrade for most codes. Please file an issue if you run into missing functionality with this helper!

CC BY-SA 4.0 Julian P Samaroo. Last modified: June 29, 2023.
Website built with Franklin.jl and the Julia programming language.