2025-07-25 –, Main Room 3
In this lightning talk I will step through some of the annoyances and papercuts I encountered while writing multithreaded Julia code for my scientific applications. I will present a feature wishlist for Julia multithreading capabilities going forward and identify some tools I used to address performance problems I ran into.
Julia's multithreading capabilities are one of its strongest features. However, there are still some pitfalls. Having written a library which needed efficient multithreading on a wide variety of hardware, I ran headfirst into several of these, including:
- Scheduler churn with many small, short-lived Tasks
- Frustration in partitioning work among threads
- Nested dynamic threading works very well, until it doesn't
I'll give some short examples of these problems in this presentation, as well as showing how I used tools like Intel's VTune to identify and try to work around them. Finally, I'll offer some feature suggestions to the minisymposium attendees with the view of spurring further development of Julia's very strong multithreading tools.
I am a Julia contributor since 2015. I work mostly on GPUs, quantum packages, and linear algebra.