2008-08-29 5 views
0

Я работаю над системой с четырьмя логическими CPS (два двухъядерных процессора, если это имеет значение). Я использую make, чтобы распараллелить двенадцать тривиально параллелизуемых задач и сделать это из cron.Проблема с параллельным выполнением не всегда начинается с другого задания, когда один заканчивается

Заклятие выглядит следующим образом:

make -k -j 4 -l 3.99 -C [dir] [12 targets] 

Беда я бегу в том, что иногда одна работа завершится, но на следующий один не будет автоматически загружаться, даже если он не должен быть остановлен в среднем нагрузки ограничитель. Каждая цель занимает около четырех часов, и мне интересно, может ли это быть частью проблемы.

Редактировать: Иногда цель сбой, но я использую параметр -k, чтобы остальная часть make все еще выполнялась. Я не заметил никакой корреляции с неудачами работы, и следующая работа не началась.

ответ

0

Заставляет думать, что одна из целей не работает? Если это так, он прекратит работу после окончания рабочих заданий. Вы можете использовать -k, чтобы он продолжал работу, даже если произошла ошибка.

1

я опускать «-l»

Если все, что вы планируете запускать систему эта сборка я думаю ключ -j 4 делает то, что вы хотите.

Основываясь на моей памяти, если у вас есть что-нибудь еще работает (crond?), Что может подтолкнуть среднюю загрузку через 4.

GNU make ref

0

BCS @

Я 99,9% уверен, что -l не вызывает проблему, потому что я могу наблюдать за нагрузкой на машине, и она опускается примерно до трех, а иногда и до одного (!) без начала следующего задания.