R中并行计算的最大线程数:是128吗?

问题描述 投票:0回答:1

我正在使用 R 在具有以下规格的机器上进行并行计算:

  1. 2 个 AMD EPYC 7K62 CPU
  2. 每个 CPU 48 个核心和 96 个线程
  3. 总计:96 个核心和 192 个线程

我正在尝试使用以下代码来利用所有可用线程:

no_cores <- detectCores()  # 192

cl <- makeCluster(no_cores, outfile = '')
`

但是,我遇到以下错误:

文件错误(con,“w”):所有 128 个连接都在使用中

当我将“no_cores”值减少到 120 左右时,代码执行时没有任何错误。这让我怀疑 Windows 10 平台上可以使用的并行线程数量是否有限制。

Windows 上 R 并行计算的最大线程数是 128 左右吗?如果是这样,有什么办法可以充分利用我的CPU资源吗?

r multithreading doparallel
1个回答
0
投票

connections.c

的R源代码指出:

从 R 4.4.0 开始,默认限制仍为 128,但可以覆盖 通过启动选项--max-connections。 这不允许它 设置为低于 128,但限制为 4096(请参阅 CommandLineArgs.c)。 上限是保守的,但作为创建新连接 在连接表中使用线性搜索,有一些限制 需要。 (检查表后,每个连接使用 488 字节。)

因此,使用

--max-connections

 选项启动 R,将所需的限制设置为 
4096
,例如 

R --max-connections=192
请注意,包括特殊连接 

stdin

stdout
stderr
,请参阅从 
i = 3
 开始的相应环线 181。

© www.soinside.com 2019 - 2024. All rights reserved.