Как указать количество ядер ЦП, которые использует Bazel?

Я создаю синтаксическую сеть (форк тензорного потока) с помощью bazel. Он работает очень медленно и постоянно зависает.

В последний раз, когда у меня была эта проблема (с кофе), кто-то сказал мне изменить количество ядер, которые я использовал, добавив -j4. В базеле эта команда не работала. Любая пользовательская команда для bazel, подобная этой?

Характеристики процессора: тактовая частота 3,8 ГГц, четырехъядерный процессор

Модель процессора: AMD 4800 (или что-то в этом роде).


person Rushat    schedule 13.06.2016    source источник
comment
по умолчанию он должен использовать все ядра. IE, я запускаю его на 12-ядерном компьютере, и top показывает 12 clang команд, работающих параллельно и использующих все 100% ЦП, это не так для вас?   -  person Yaroslav Bulatov    schedule 13.06.2016


Ответы (2)


Я добавил --jobs 4, и ему удалось пройти. Вероятно, это то же самое, что и -j4.

Полная командная строка была:

bazel test --jobs 4 --genrule_strategy=standalone syntaxnet/... util/utf8/... 
person dmansfield    schedule 13.06.2016
comment
ааа ладно. Намного лучше, чем --local_resources!! - person Rushat; 14.06.2016
comment
Обратите внимание, что согласно docs.bazel.build/versions/master/bazel -user-manual.html значение заданий по умолчанию равно 200. Это действует как верхняя граница для bazel, и он пытается выяснить, какой параллелизм возможен на основе памяти, количества процессоров и т. д. - person Twirrim; 17.09.2017

Как описывает Guy Coder в ответить на похожий вопрос, попробуйте --local_resources. По моему ограниченному опыту кажется, что Bazel потребляет примерно вдвое больше ядер, чем я установил, и иногда потребляет все ядра в течение многих секунд. Даже с bazel test -c opt --local_resources 20000,1,0.25 я вижу значительную нагрузку на свою систему. (Ниже его ответ)

Из Руководства пользователя Bazel.

--local_resources доступный ОЗУ, доступный ЦП,доступныйIO

Этот параметр, который принимает три аргумента с плавающей запятой, разделенных запятыми, указывает объем локальных ресурсов, которые Bazel может учитывать при планировании действий по сборке и тестированию. Параметр предполагает объем доступной оперативной памяти (в МБ), количество ядер ЦП (где 1,0 соответствует одному полному ядру) и возможности ввода-вывода рабочей станции (где 1,0 представляет среднюю рабочую станцию). По умолчанию Bazel оценивает объем ОЗУ и количество ядер ЦП непосредственно из конфигурации системы и предполагает ресурс ввода-вывода 1,0.

Если используется этот параметр, Bazel будет игнорировать оба параметра --ram_utilization_factor.

person sage    schedule 20.07.2018