使用 ./startup.jl 文件设置 nprocs()

Setting nprocs() using the ./startup.jl file

为什么设置ENV[JULIA_CPU_THREADS]=5ENV[JULIA_NUM_THREADS]=5不影响nprocs()?这是我在启动时得到的:

julia> versioninfo()
Julia Version 1.3.1
Commit 2d5741174c (2019-12-30 21:36 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i5-9600K CPU @ 3.70GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, skylake)
Environment:
  JULIA_CPU_THREADS = 5
  JULIA_NUM_THREADS = 5
julia> nprocs()
1

所以设置了环境变量但是没有分配进程?

原因是线程不是进程。 "parallelism" 有不同的种类。进程用于分布式(多核)计算,线程用于多线程(在单个machine/node上)。有关详细信息,请参阅 Julia 文档的 Parallel Computing 部分。

要使用多个进程启动 Julia,请使用命令行标志 -p N,其中 N 是工作进程的数量。或者,您可以 addprocs 在脚本中以编程方式添加进程(如 startup.jl)。