Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Параллельная компиляция - общий случай
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
VslavX
Одним из изделий наша компания занимается довольно много лет. Отрелизено уже с полсотни разных модификаций, ПО портировано под четыре разные платформы. Для общности используем утилиту nmake - компилируем одно и то же разными строчными C-компиляторами (BC/IAR/GCC/VC). Объемы исходников накопились относительно немаленькие, и как следствие - относительно большое время компиляции.
Есть желание это время уменьшить за счет параллельной компиляции - большую часть исходных файлов можно компилировать одновременно и независимо. Может быть кто-нибудь сможет посоветовать многопоточный аналог make/nmake? Чтобы утилита умела одновременно запускать несколько процессов одновременно? Еще интересно было бы услышать про распределенные варианты (over LAN), если такое применяется.
kolobok0
Цитата(VslavX @ Apr 25 2006, 17:06) *
....Еще интересно было бы услышать про распределенные варианты (over LAN), если такое применяется.



Очень давно делал одну задачу. Выполняла кучу математики. Поиск некого значения путём лобового перебора. Для ускорения достижения результата - пришлось немного подшаманить скрипты загрузки рабочих станций на предприятии. Ну и грамотный драйв под досик - чтоб только при простое тачки пытался загружать её проц. На файловом серваке - сервер, раздавал задания клиентам. Быстро результаты получились однака :)

Теоретически возможно.
Риски - настройка станции, грамотное детектирование простоя станции.
Если всё официально и мона смело забирать квант времени у станции - то проблем вообще не вижу. Под форточками думаю покатит не плохо.

с уважением
(круглый)
Harbour
for gcc you may use distcc
dxp
Цитата(VslavX @ Apr 25 2006, 20:06) *
Есть желание это время уменьшить за счет параллельной компиляции - большую часть исходных файлов можно компилировать одновременно и независимо. Может быть кто-нибудь сможет посоветовать многопоточный аналог make/nmake? Чтобы утилита умела одновременно запускать несколько процессов одновременно? Еще интересно было бы услышать про распределенные варианты (over LAN), если такое применяется.

GNU make, вроде, умеет запускать тулзы в разных процессах.
VslavX
Цитата(dxp @ Apr 26 2006, 08:32) *
GNU make, вроде, умеет запускать тулзы в разных процессах.

Угу, спасибо. Сейчас посмотрел make из последнего цигвина - вроде есть ключик -j[N]. Кажись - самое оно.
makc
Посмотрите еще на http://ccache.samba.org/ - очень помогает, когда объем кода большой.
VslavX
Цитата(VslavX @ Apr 26 2006, 11:13) *
Цитата(dxp @ Apr 26 2006, 08:32) *

GNU make, вроде, умеет запускать тулзы в разных процессах.

Угу, спасибо. Сейчас посмотрел make из последнего цигвина - вроде есть ключик -j[N]. Кажись - самое оно.

Если кому любопытно - есть первые результаты компиляции большого куска кода.
Исходные: Athlon X2 3800, WinXP_SP1 + Cygwin + IAR 4.12 for AVR + GNU make 3.80
58 секунд для "make -j1", загрузка процессоров 50-52%
31 секунда для "make -j2", загрузка процессоров практически 100%
О так - определенно есть смысл покупать X2 или PD smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.