获取Julia中的CPU个核数

Obtain the number of CPU cores in Julia

我想获取 Julia 中可用的内核数。目前我正在做以下事情:

using PyCall
@pyimport psutil
nCores = psutil.cpu_count()

这会调用一个 Python 函数。但是,我想使用一些 Julia 程序。怎么做到的?

我不是 100% 确定这一点,但是 CPU_CORES returns 我机器上的(超线程)核心数量(OSX 10.9.5 和 Julia 0.3 .5),即使我以串行模式启动 Julia。我一直在使用 nworkers()nprocs() 检查可用内核的数量。在没有 -p 的情况下启动 Julia,将此 returns 1 标记为两者。

当我开始 julia 时 julia -p 4

julia> nprocs()
5

julia> nworkers()
4

在这两种情况下 CPU_CORES returns 8.

我不了解 Julia,但 Python 中的 "psutil.cpu_count(logical=False)" 给出了物理 CPU 的数量(超线程的不计算在内)。

在最新版本的 Julia 中,您可以使用 Sys.CPU_CORES(而不是某些答案中提到的 Base.CPU_CORES)。在 0.6.

上测试

Sys.CPU_CORES 在 Julia 1.0.0 中是未定义的(至少,运行 在 macbook 上——我认为这不会有什么不同)。相反,使用 Sys.CPU_THREADS.

Sys.CPU_CORES 未在 Julia v1.1.0 中定义。然而,下面的工作。

length(Sys.cpu_info())

根据documentation,“可用核心数”可以通过JULIA_NUM_THREADS环境变量来限制。

要查看 Julia 可用的线程数,请使用

Threads.nthreads()