I am happy that I can now use multi-threading on Julia 1.12rc1. I had to do some changes to my code, but now it works.
But the garbage collector behaves differently. I am using two different settings.
First settings:
julia --project -t 11 --gcthreads=4,1
This works well on Julia 1.11, but my code crashes with these settings on Julia 1.12rc1.
Second setting:
julia --project -t 11,1 -i --gcthreads=4,0
This works well on Julia 1.12, but is very slow on Julia 1.11 (158 instead of 82s).
What could be the reason?
You can reproduce these results by running:
git clone https://github.com/ufechner7/FLORIDyn.jl.git
cd FLORIDyn.jl
git checkout 14fcb0e5ad3216aef2715ccc325a58d7a449e4b1
./bin/update_packages
./bin/run_julia
and then in Julia:
include("examples/main_video.jl")
The script needs about 82s on Ryzen 7950X both on Julia 1.11 and Julia 1.12rc1. The startup time of Julia 1.12rc1 is 3s higher. The run_jula script automatically switches between both GC options, based on the Julia version. If you want to reproduce the crash, change the script first. Crash happens on my machine after about half of the simulation (at about 500s simulation time, 40s wall time).