Is there a way to tell Bazel when building how many CPU cores it can use?
I build TensorFlow on a VMware Workstation and being a virtual machine I can adjust the number of processors and cores for the virtual machine.
In the process of building TensorFlow I found that using only one core works. When I give the Workstation four cores and build TensorFlow it eventually halts the system to the point I have to reboot.
If I wait a few hours (leave it alone overnight) it sometimes returns with the following error:
gcc: internal compiler error: Killed (program cc1plus)
While I can change the number of cores using the virtual machines configuration options I would prefer to do it without having to shut down and restart the virtual machine.
some examples for your .bazelrc
build --local_ram_resources=HOST_RAM*.5 --local_cpu_resources=HOST_CPUS-1 (leave one core free)
or
build --local_cpu_resources=1 (use a single core)
See https://docs.bazel.build/versions/master/command-line-reference.html#flag--local_cpu_resources
The currently accepted answer is deprecated.
From 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With