You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言atakrig包并行处理时遇序列化连接写入错误

atakrig 8核并行调用ataStartCluster()报错的解决方法

问题场景

使用atakrig包进行并行计算时,设置8核并调用ataStartCluster()会触发如下错误:

0%Error in serialize(data, node$con) : error writing to connection

设置4核时并行处理正常,且另一台配置为4GB内存、Windows10的笔记本(相同R版本和包版本)无此问题。

可行解决方案

改用parallel::makeCluster(8, type = "PSOCK")手动创建集群替代ataStartCluster(),实测并行计算有效:

  • 8核并行执行耗时1.5分钟
  • 非并行执行耗时3.2分钟

补充说明:加载library(foreach)后代码可稳定运行,暂未明确具体原因。

测试代码

library(atakrig)
library(terra)
rpath <- system.file("extdata", package="atakrig")
aod3k <- rast(file.path(rpath, "MOD04_3K_A2017042.tif"))
aod10 <- rast(file.path(rpath, "MOD04_L2_A2017042.tif"))
aod3k.d <- discretizeRaster(aod3k, 1500)
aod10.d <- discretizeRaster(aod10, 1500)
grid.pred <- discretizeRaster(aod3k, 1500, type = "all")
aod3k.d$areaValues$value <- log(aod3k.d$areaValues$value)
aod10.d$areaValues$value <- log(aod10.d$areaValues$value)
## area-to-area Kriging ---# point-scale variogram from combined AOD-3k and AOD-10
aod.combine <- rbindDiscreteArea(x = aod3k.d, y = aod10.d)
vgm.ok_combine <- deconvPointVgm(aod.combine, model="Exp", ngroup=12, rd=0.75)
# point-scale cross-variogram
aod.list <- list(aod3k=aod3k.d, aod10=aod10.d)
aod.list <- list(aod3k=aod3k.d, aod10=aod10.d)
vgm.ck <- deconvPointVgmForCoKriging(aod.list, model="Exp", ngroup=12, rd=0.75,fixed.range = 9e4)
# prediction
cl <- parallel::makeCluster(8, type = "PSOCK")
pred.ataok <- ataKriging(aod10.d, grid.pred, vgm.ck$aod10, showProgress = TRUE, nopar = FALSE)
parallel::stopCluster(cl)

会话信息

R version 4.4.3 (2025-02-28 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 11 x64 (build 26100)

Matrix products: default


locale:
[1] LC_COLLATE=English_United States.utf8  LC_CTYPE=English_United States.utf8    LC_MONETARY=English_United States.utf8
[4] LC_NUMERIC=C                           LC_TIME=English_United States.utf8    


attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] terra_1.8-42    atakrig_0.9.8.1

loaded via a namespace (and not attached):
 [1] DBI_1.2.3          KernSmooth_2.23-26 sf_1.0-20          doSNOW_1.0.20      zoo_1.8-13         spacetime_1.3-3    xts_0.14.1        
 [8] e1071_1.7-16       snow_0.4-4         sp_2.2-0           gstat_2.1-3        grid_4.4.3         classInt_0.4-11    foreach_1.5.2     
[15] FNN_1.1.4.1        intervals_0.15.5   compiler_4.4.3     codetools_0.2-20   Rcpp_1.0.14        rstudioapi_0.17.1  lattice_0.22-7    
[22] class_7.3-23       parallel_4.4.3     magrittr_2.0.3     tools_4.4.3        proxy_0.4-27       iterators_1.0.14   units_0.8-7 

内容的提问来源于stack exchange,提问作者Nikos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 12:19:52