【问题标题】:How to use the multicore option in vowpal wabbit如何在 vowpal wabbit 中使用多核选项
【发布时间】:2020-05-17 11:30:14
【问题描述】:
我在单台机器(8 核 Macbook pro)上运行 vowpal wabbit(ksvm 选项)。如何让它使用所有 8 个核心?
从 github 页面上的链接视频 (videolectures.net) 中,我看到有一个 --thread-bits 选项来控制线程数,但 vw --help 没有列出这个选项,所以我猜它不再存在最新版本。
使用 vowpal wobbit 的多核功能的正确方法是什么。我不想在多个节点上运行它,但我有兴趣在单台机器上使用多核功能。
【问题讨论】:
标签:
multicore
vowpalwabbit
【解决方案1】:
vowpal-wabbit 是“多核”吗?
只是部分。它默认使用 2 个内核(使用 C++ std::thread):
- IO/解析线程:murmur-hash3 用于散列功能,fast-atof 用于解析数字,& parse-example
- 学习线程(SGD 预测、估计错误和更新循环)
这些都没有使示例看起来像实并行化那样乱序。数据示例全部按顺序处理,但在(短)并行管道中。
禁用多线程(切换到单核):
使用选项:--onethread
因此,您的问题的总体答案是,目前的选项不允许您并行化超过 2 个内核。
集群模式又名 all-reduce
正如您所提到的,集群模式支持数据分区并在集群中的单独节点上处理每个部分。
--thread-bits?
Grepping(最新的)源代码,我找不到对--thread-bits的任何引用。