Julia中的进程数量

3

我本地的机器有一个四核 CPU。如果我运行 julia


julia -p 4

我理解,您想要使用并行计算来运行脚本,具体如下:

  • 核心1:运行脚本和所有非并行计算 + 并行工作器1
  • 核心2:并行工作器2
  • 核心3:并行工作器3
  • 核心4:并行工作器4

以上理解是否正确?

此外,如果我使用的进程数超过核心数量会发生什么?例如:

julia -p 8

这是类似于以下内容吗?

  • 核心1:运行脚本和所有的非并行计算 + 并行工作者1 + 并行工作者5
  • 核心2:并行工作者2 + 并行工作者6
  • 核心3:并行工作者3 + 并行工作者7
  • 核心4:并行工作者4 + 并行工作者8

4
关闭。julia -p 4将启动4个工作进程。这意味着如果你运行 nprocs(),你将有5个进程。进程1将负责指挥计算,而进程2-5将作为工作进程执行并行计算。 - spencerlyon2
2个回答

6

除非您手动将工作线程与特定的核心关联,否则关联将由您的操作系统决定,并且随着时间的推移可能会发生变化。


5
这是一个有深度的问题,简而言之,决定哪些资源执行工作不在Julia的掌握之中。由调度程序来决定。进程(worker)甚至可以在不同核心间切换(例如,worker 2 可以从 core 3 开始运行,然后在 core 4 上继续运行)。进程和处理器核心之间没有关联。
一般来说,调度程序会尽可能让进程在同一核心上长时间运行,以避免上下文切换增加的成本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接