2

这是一个有点笼统的问题,对此我深表歉意,但我无法生成重现该行为的代码示例。我的问题是:我通过将数据集细分为数据框列表,然后使用 mclapply 在 24 核 Linux 服务器的 16 核上运行评分函数来对较大的数据集(约 1100 万行,274 维)进行评分. 列表中的每个数据帧都分配给一个衍生实例并进行评分,返回一个预测数据帧列表。虽然 mclapply 正在运行各种 R 实例,但它们在不间断睡眠中花费了大量时间,超过了它们在运行中花费的时间。有没有其他人使用 mclapply 经历过这种情况?我是 Linux 新手,从操作系统的角度来看,这有意义吗?谢谢。

4

1 回答 1

2

使用 mclapply 对大型数据集进行操作时需要小心。很容易为计算机上的内存量和计算使用的内存量创建过多的工作程序。由于 R 内存管理的复杂性,很难预测内存需求,因此最好使用“top”或“htop”等工具仔细监控内存使用情况。

您可以通过将工作拆分为更多但更小的任务来减少内存使用量,因为这可能会减少计算所需的内存。我认为预调度的选择不会对内存使用产生太大影响,因为mc.cores无论mc.prescheduling.

于 2014-02-05T22:43:46.287 回答