我正在尝试在具有64Gb RAM的Windows机器上运行并行cv.glmnet泊松模型。我的数据是一个2000万行x 200 col的稀疏矩阵,大小约为10Gb。我正在使用makecluster和doParallel,并在cv.glmnet中设置parallel = TRUE。我目前有两个问题需要进行此设置:
将数据分发到不同的进程需要数小时,从而显着降低加速。我知道这可以在linux机器上使用fork解决,但有没有办法减少在Windows上的这个时间?
我正在为包含数据和响应的多个模型运行此项,因此每次都会更改对象大小。如何在出现“内存不足”错误之前提前确定运行多少个核心?我对数据如何分配感到特别困惑。如果我在4核上运行,第一个rsession将使用30Gb内存,而其他内存将更接近10Gb。 30 Gb的目标是什么,有没有办法减少它?