首页 文章

插入:选择并行后端的正确核心数

提问于
浏览
3

我正在尝试使用 caret 在具有8个CPU内核和32 GB RAM的Ubuntu机器上使用 glmnet 实现来交叉验证弹性网络模型 . 当我顺序训练时,我在一个核心上最大化CPU使用率,但平均使用50%的内存 .

  • 当我使用 doMC(cores = xxx) 时,我是否需要担心只注册xxx = floor(100 / y)内核,其中y是使用单个内核(以%为单位)时模型的内存使用量,以便不会耗尽记忆?

  • caret 是否有任何启发式可以让它找出最大值 . 要使用的核心数量?

  • 我是否可以使用任何一套启发式方法动态调整核心数量,以便在不同大小的数据和模型复杂性中最佳地使用我的计算资源?


编辑:

FWIW,尝试使用8个核心使我的机器没有响应 . 显然 caret 没有检查产卵 xxx 进程是否可能有问题 . 然后,我如何动态选择核心数?

1 回答

  • 2

    显然,插入符不会检查产卵xxx过程是否有问题 .

    真正;它无法预测您计算机的未来性能 .

    您应该了解在顺序运行时用于建模的内存量 . 您可以开始训练并使用 top 或其他方法来估计使用的ram数量然后终止该过程 . 如果按顺序依次使用X GB的RAM,则在M核上运行将需要X(M 1)GB的RAM .

相关问题