我正在使用 R 在具有以下规格的机器上进行并行计算:
我正在尝试使用以下代码来利用所有可用线程:
no_cores <- detectCores() # 192
cl <- makeCluster(no_cores, outfile = '')
`
但是,我遇到以下错误:
文件错误(con,“w”):所有 128 个连接都在使用中
当我将“no_cores”值减少到 120 左右时,代码执行时没有任何错误。这让我怀疑 Windows 10 平台上可以使用的并行线程数量是否有限制。
Windows 上 R 并行计算的最大线程数是 128 左右吗?如果是这样,有什么办法可以充分利用我的CPU资源吗?
从 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。