首页 > 解决方案 > 在 Windows 中具有大矩阵的并行 cv.glmnet

问题描述

我正在尝试在具有 64Gb RAM 的 Windows 机器上运行并行 cv.glmnet poisson 模型。我的数据是一个 2000 万行 x 200 列的稀疏矩阵,大小约为 10Gb。我正在使用makecluster 和doParallel,并在cv.glmnet 中设置parallel = TRUE。我目前在获取此设置时遇到两个问题:

  1. 将数据分发到不同的进程需要数小时,显着降低了加速。我知道这可以在 Linux 机器上使用 fork 来解决,但是有什么方法可以减少 Windows 上的时间吗?

  2. 我正在为具有数据和响应的多个模型运行它,因此对象大小每次都在变化。在出现“内存不足”错误之前,如何提前计算出可以运行多少个内核?我对数据的分布方式特别困惑。如果我在 4 核上运行,第一个 rsession 将使用 30Gb 的内存,而其他的将接近 10Gb。30 Gb 的用途是什么,有什么方法可以减少它?

标签: rwindowsmemoryparallel-processingglmnet

解决方案


推荐阅读