r - 在 Windows 中具有大矩阵的并行 cv.glmnet
问题描述
我正在尝试在具有 64Gb RAM 的 Windows 机器上运行并行 cv.glmnet poisson 模型。我的数据是一个 2000 万行 x 200 列的稀疏矩阵,大小约为 10Gb。我正在使用makecluster 和doParallel,并在cv.glmnet 中设置parallel = TRUE。我目前在获取此设置时遇到两个问题:
将数据分发到不同的进程需要数小时,显着降低了加速。我知道这可以在 Linux 机器上使用 fork 来解决,但是有什么方法可以减少 Windows 上的时间吗?
我正在为具有数据和响应的多个模型运行它,因此对象大小每次都在变化。在出现“内存不足”错误之前,如何提前计算出可以运行多少个内核?我对数据的分布方式特别困惑。如果我在 4 核上运行,第一个 rsession 将使用 30Gb 的内存,而其他的将接近 10Gb。30 Gb 的用途是什么,有什么方法可以减少它?
解决方案
推荐阅读
- c - 在 libcurl/RTSP 之后 pthread_create 时在 genops 中出现段错误
- python - 我需要一个 epub 到 Python 中的文本解决方案
- c - 所有数组元素在 C 中都是相同的 fgets 吗?
- automated-tests - 模拟器中的 Appium ToggleWiFi 停止测试
- postman - Postman 请求正文中的文件未保存在集合中
- ruby - Faker gem 生成 2-3 个字母字符串
- python - 数组就地旋转器返回错误值
- javascript - 如何在 Owl 轮播中创建导航箭头
- android - Camera2 API 中支持的 FPS
- javascript - 检测浏览器问题