2024-07-12 –, Function (4.1)
Task parallelism is a simple but powerful method to make programs and libraries scalable, but which task parallel library you choose greatly affects how well and far your code can scale. In this talk, we will discuss the Dagger.jl package, which implements a variety of powerful abstractions on top of a high-performance, heterogeneous task parallel core.
We will compare Dagger to other task parallel frameworks (like Dask, Kokkos, Legion, etc.), as well as to libraries which express parallelism in other ways (ImplicitGlobalGrid.jl, JACC.jl, etc.), to see the similarities and differences. Finally, we will discuss why these differences, and the features and abstractions that only Dagger provides, makes Dagger a great choice for scaling code efficiently and in a more maintainable manner.
I'm a Research Software Engineer at MIT's JuliaLab, working on parallel programming with Dagger.jl and AMDGPU.jl. I love working on low-level runtimes and compilers, as well as building out high-level, user-friendly parallel programming interfaces.