Need for new Julia tool for threading debugging

Hi,

as the multithreading is no more experimental I dare to bring a subject to the Julia community attention.

For decades, parallel computing have been a specialist niche. Nowadays parallel computers are everywhere and using them properly is a question for every programmers.

The problem is that explicit parallel programming is very hard and specially dangerous when using explicit thread management. I will avoid to relate major project disasters I have witnessed in my career but believe me, heisenbugs and more generally random bugs can be true nightmares.

Although the Julia documentation is explicit about possible data races, I believe that it should be even more explicit about the risks taken by beginners when they use threads.

Even for experienced programmers, tools for inspecting possible data races are useful (e.g. Intel inspector for AOT languages).

I wonder is such tools (packages ?) Could be developed for Julia Threading. I also wonder if future Julia evolution (2.0?) Could include language constructs to enable safer MT programming. For example I now that functional parallel languages (e.g. erlang) may increase the safety of programs.

What is the Julia community opinion on this topic ?

4 Likes

As a newbie to this kind of programming, one thing I would find very useful (and that may even exist (?)) is some package that helps me test such code. I’m not sure how realistic it is to have something sufficiently general and yet useful though…

1 Like

It might be possible to use Intel’s inspector for Julia. I should investigate this…