Parallelizing Julia’s Garbage Collector
With the increasing popularity of Julia for memory intensive applications, garbage collection is becoming a performance bottleneck.
Julia currently uses a serial mark-and-sweep collector, in which objects are traced starting from a root-set (e.g. thread’s stacks, global variables, etc.) and unreachable objects are then deallocated.
We discuss in this talk how we recently parallelized tracing of live Julia objects and the performance improvements we got so far.