JuliaLang/julia
Voir sur GitHub`JULIA_NUM_THREADS` ignored when embedding Julia on a Windows system
Open
#55 468 ouverte le 12 août 2024
bughelp wantedsystem:windows
Métriques du dépôt
- Stars
- (48 709 stars)
- Métriques de merge PR
- (Merge moyen 23j 11h) (145 PRs mergées en 30 j)
Description
The following c# code...
Environment.SetEnvironmentVariable("JULIA_NUM_THREADS", "4");
jl_init_with_image__threading(mBinPath, mSysImg);
jl_eval_string("println(\"Threads=$(Threads.nthreads())\")");
jl_eval_string("println(\"JULIA_NUM_THREADS=$(ENV[\"JULIA_NUM_THREADS\"])\")");
Produces the following output
Threads=1
JULIA_NUM_THREADS=4
In discussions with the Jeff and Keno it appears this happens in Windows because there are several environment stores in Windows, and the threads are created by reading with getenv (which access the machine level environment), while later in Julia the ENV is retrieved using getenvw (which access the process level environment).