VslavX 0 25 апреля, 2006 Опубликовано 25 апреля, 2006 · Жалоба Одним из изделий наша компания занимается довольно много лет. Отрелизено уже с полсотни разных модификаций, ПО портировано под четыре разные платформы. Для общности используем утилиту nmake - компилируем одно и то же разными строчными C-компиляторами (BC/IAR/GCC/VC). Объемы исходников накопились относительно немаленькие, и как следствие - относительно большое время компиляции. Есть желание это время уменьшить за счет параллельной компиляции - большую часть исходных файлов можно компилировать одновременно и независимо. Может быть кто-нибудь сможет посоветовать многопоточный аналог make/nmake? Чтобы утилита умела одновременно запускать несколько процессов одновременно? Еще интересно было бы услышать про распределенные варианты (over LAN), если такое применяется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 25 апреля, 2006 Опубликовано 25 апреля, 2006 · Жалоба ....Еще интересно было бы услышать про распределенные варианты (over LAN), если такое применяется. Очень давно делал одну задачу. Выполняла кучу математики. Поиск некого значения путём лобового перебора. Для ускорения достижения результата - пришлось немного подшаманить скрипты загрузки рабочих станций на предприятии. Ну и грамотный драйв под досик - чтоб только при простое тачки пытался загружать её проц. На файловом серваке - сервер, раздавал задания клиентам. Быстро результаты получились однака :) Теоретически возможно. Риски - настройка станции, грамотное детектирование простоя станции. Если всё официально и мона смело забирать квант времени у станции - то проблем вообще не вижу. Под форточками думаю покатит не плохо. с уважением (круглый) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbour 0 25 апреля, 2006 Опубликовано 25 апреля, 2006 · Жалоба for gcc you may use distcc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 33 26 апреля, 2006 Опубликовано 26 апреля, 2006 · Жалоба Есть желание это время уменьшить за счет параллельной компиляции - большую часть исходных файлов можно компилировать одновременно и независимо. Может быть кто-нибудь сможет посоветовать многопоточный аналог make/nmake? Чтобы утилита умела одновременно запускать несколько процессов одновременно? Еще интересно было бы услышать про распределенные варианты (over LAN), если такое применяется. GNU make, вроде, умеет запускать тулзы в разных процессах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VslavX 0 26 апреля, 2006 Опубликовано 26 апреля, 2006 · Жалоба GNU make, вроде, умеет запускать тулзы в разных процессах. Угу, спасибо. Сейчас посмотрел make из последнего цигвина - вроде есть ключик -j[N]. Кажись - самое оно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 192 26 апреля, 2006 Опубликовано 26 апреля, 2006 · Жалоба Посмотрите еще на http://ccache.samba.org/ - очень помогает, когда объем кода большой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VslavX 0 3 мая, 2006 Опубликовано 3 мая, 2006 · Жалоба 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 :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться