Julia and Concurrency

Yes, it’s hard to keep track of things, even for people who participate in development :slight_smile:

I’ve been following the threading work with a lot of interest and there’s been many changes merged recently to make the runtime and standard library more thread safe, and to improve performance. There were various changes merged before 1.2 release was branched, but you probably need to be on master if you want to experiment properly with the new work.

At this stage I believe the parallel task runtime generally works but there’s various places which need more synchronization. For a really nice talk describing some of the ideas which are going into making a composable scheduler, see Shared memory parallelism in Julia with multi-threading | Cambridge Julia Meetup (May 2018) - YouTube

Personally I think the runtime is shaping up to be a really powerful and cutting edge system for composable parallel performance, I’m excited! The next big step is to figure out how to expose all this to the user in a nice way which makes building concurrent applications composable at the API level. I’m not sure anyone is tackling this yet, but there have been some interesting discussions about structured concurrency.

8 Likes