gpt4 book ai didi

r - Snow结束后是否需要移除导出的变量

转载 作者:行者123 更新时间:2023-12-02 03:41:49 25 4
gpt4 key购买 nike

是否需要在Snow并行计算结束后移除导出的变量?我发现即使调用了 clusterEvalQ,'rsession' 进程的内存也没有改变太多。我怀疑下面的示例代码存在一些内存问题

library(snow)
cl2 <- makeCluster(3, type = "SOCK")
data <- rep(1:10000,10000)

clusterExport(cl2,"data")

# is remove neccssary?
clusterEvalQ(cl2, rm( data, pos=globalenv() ) )

stopCluster(cl2)

enter image description here

最佳答案

从集群工作程序中删除导出的数据将释放集群工作程序上的内存,但不会释放主进程(即您的本地 R session )上的内存。如果您要在不需要该数据的集群上执行更多工作,这可能非常有用,但如果您只是要停止集群,则没有实际意义。

当您调用 clusterExport 时,主进程上的内存使用量可能会增加很多,因为它必须序列化所有导出的对象,但它不会保留对该内存的任何引用,因此它最终都应该被垃圾收集释放。您无需执行任何操作,但我同意 mrip 的观点,如果您想尽快释放它,可以调用 gc。而且我认为您的示例代码没有任何问题。

关于r - Snow结束后是否需要移除导出的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19596820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com