有没有办法限制Bazel使用的CPU核心数量?

时间:2016-01-13 00:27:40

标签: cpu-cores bazel

有没有办法告诉Bazel在构建可以使用的CPU核心数量时?

TL; DR

我在VMware Workstation上构建TensorFlow并且作为虚拟机我可以调整虚拟机的处理器和核心数。

在构建TensorFlow的过程中,我发现只使用一个核心。 当我给Workstation提供四个内核并构建TensorFlow时,它最终将系统停止到我必须重启的程度。

如果我等了几个小时(不管它一夜之间),它有时会返回,并出现以下错误:

  

gcc:内部编译器错误:已杀死(程序cc1plus)

虽然我可以使用虚拟机配置选项更改内核数量,但我更愿意这样做,而无需关闭并重新启动虚拟机。

2 个答案:

答案 0 :(得分:13)

来自Bazel User Manual

  

--local_resources availableRAM, availableCPU ,availableIO

     

此选项,需要三个以逗号分隔的浮点数   参数,指定Bazel可以采用的本地资源量   在安排构建和测试活动时要考虑到。选项   预计可用RAM量(以MB为单位), CPU核心数(以1.0为单位)   代表单个完整核心)和工作站I / O能力(用   1.0表示平均工作站)。默认情况下,Bazel将直接从系统估计RAM的数量和CPU内核的数量   配置并假设1.0 I / O资源。

     

如果使用此选项,Bazel将忽略这两个选项   --ram_utilization_factor。

答案 1 :(得分:4)

.bazelrc的一些示例

build --local_ram_resources=HOST_RAM*.5 --local_cpu_resources=HOST_CPUS-1 (leave one core free)

build --local_cpu_resources=1 (use a single core)

请参见https://docs.bazel.build/versions/master/command-line-reference.html#flag--local_cpu_resources

不建议使用当前接受的答案。