How did you set those environment variables? If you set them like ENV[...] = ... in the REPL, that’s not going to affect the runtime since at the moment the value of those variables at startup determines the number of available threads. For now, this cannot be changed at runtime.
startup.jl is a regular julia file like any other, it’s just run during startup and thus is runtime dependant. If you want to start julia with a greater number of threads you have to set that environment variable prior to any execution of julia code, e.g. via export JULIA_NUM_THREADS=6 for your CPU in bash or by running julia like this:
> JULIA_NUM_THREADS=6 julia
if you only want to set it for the duration that process is alive.
versioninfo() reads whatever it displays at the time of calling it - you set the value in the ENV dictionary prior to running versioninfo() and thus it displays the new value. Setting that value will not spawn new threads at the moment, this is a known limitation since the Threads module is still a little bit in flux.
It did not happen “on startup”. In fact, nothing you’ve ever said in this thread happens “on startup”. And you can say the info is wrong since it’s not guarded against improperly setting of the environment variables.
And FWIW, it’s not a JIT setting. Again, nothing ever mentioned in this thread has anything to do witht JIT or the compiler…
You already have an answer on stackoverflow. Please try to avoid cross posting on SO, Slack, and Discourse in the future. If you do it nonetheless, please cross reference the posts such that the discussions happening at those different places are linked.
So do you have any more questions that needs to be clarified? It seems that you’ve got rid of the code that sets the environment variable in startup.jl that has no effect.
is impossible right now. And it’s never going to be possible without the capability of adding thread at runtime. (Which in itself is a feature that is useful and will probably be implemented at some point)