Скомпилируйте программы в многоядерной или распределенной системе

Есть ли любое программное обеспечение, доступное в Linux, который компилирует исходный код, содержащий большое количество файлов parallely или в многоядерных или в распределенных системах. Библиотеки как gcc или xserver занимают очень время для компиляции на unicore/dual машине и большинство времен, печально при необходимости в партии перекомпиляции. Есть ли какая-либо техника для компиляции такого исходного кода parallely?

17
задан atv 27 December 2009 в 17:30
поделиться

3 ответа

В системах распределенной памяти можно использовать distcc для компиляции заданий на других машинах. Это займёт некоторое время настройки, но может действительно ускорить сборку, если у вас есть дополнительные машины.

На многоядерных системах с распределённой памятью вы можете просто использовать make -j, который попытается породить сборочные задания, основанные на зависимостях в ваших makefiles. Вы можете запустить так:

$ make -j

, что не будет ограничивать количество порождаемых вакансий, или вы можете запустить с целочисленным параметром:

$ make -j8

, который ограничит количество одновременно создаваемых сборочных вакансий. Здесь ограничение составляет 8 параллельных заданий. Обычно вы хотите, чтобы это было что-то близкое к количеству ядер в вашей системе.

.
30
ответ дан 30 November 2019 в 11:44
поделиться

GNU make (стандартная марка, устанавливаемая на системы Linux) поддерживает параллельное выполнение команд - взгляните на http://www.gnu.org/software/make/manual/make.html#Parallel

3
ответ дан 30 November 2019 в 11:44
поделиться

кэш можно использовать и для ускорения процесса компиляции

.
4
ответ дан 30 November 2019 в 11:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: