如何指定 bazel 使用的 CPU 个内核数?

How do I specify the number of CPU cores bazel uses?

我正在用 bazel 构建 syntaxnet(tensorflow 分支)。它工作 非常 缓慢并且一直挂断。

上次我遇到这个问题(使用 caffe)有人告诉我通过添加 -j4 来更改我使用的内核数。在 bazel 中,此命令不起作用。任何像这样的 bazel 自定义命令?

CPU 规格:3.8ghz 时钟,四核

CPU 型号:AMD 4800(或类似的东西)。

我添加了--jobs 4,它成功通过了。大概和-j4.

一样

完整的命令行是:

bazel test --jobs 4 --genrule_strategy=standalone syntaxnet/... util/utf8/... 

作为Guy Coder describes in an 类似的问题,尝试--local_resources。根据我有限的经验,Bazel 消耗的内核数似乎是我设置的两倍左右,有时会消耗所有内核数秒。即使使用 bazel test -c opt --local_resources 20000,1,0.25,我也发现我的系统负载很大。 (以下是他的回答)

来自Bazel User Manual

--local_resources availableRAM,availableCPU,availableIO

This option, which takes three comma-separated floating point arguments, specifies the amount of local resources that Bazel can take into consideration when scheduling build and test activities. Option expects amount of available RAM (in MB), number of CPU cores (with 1.0 representing single full core) and workstation I/O capability (with 1.0 representing average workstation). By default Bazel will estimate amount of RAM and number of CPU cores directly from system configuration and will assume 1.0 I/O resource.

If this option is used, Bazel will ignore both --ram_utilization_factor.