JuliaLang/julia
在 GitHub 查看`JULIA_NUM_THREADS` ignored when embedding Julia on a Windows system
Open
#55,468 建立於 2024年8月12日
bughelp wantedsystem:windows
倉庫指標
- Star
- (48,709 star)
- PR 合併指標
- (平均合併 20天 6小時) (30 天內合併 157 個 PR)
描述
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).