Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: [grid] równoległa kompilacja

Witam,

ostatnio mam okazje pobawić się programikiem IncrediBuild, idea ogolnie taka aby do budowania projektu (Visual Studio) wykorzystac wszystkie dostepne w sieci maszyny i ich rdzenie. W praktyce dziala to fajnie i projekt zamiast budowac sie 20minut jest gotowy w ciagu minuty dwuch.

Ciekawi mnie czy jest do tego jakas darmowa alternatywa dla unixow?
Jakub L.

Jakub L. Programista

Temat: [grid] równoległa kompilacja

dwóch

dmake, ale to było na wielordzeniowej maszynie a nie w sieci.

Temat: [grid] równoległa kompilacja

Jezeli program normalnie kompiluje sie 20 minut, to jest slabo zaplanowany :)
A co do IncrediBuilda to ma niestety kilka wad, m.in. linkowanie caly czas idzie na jednej maszynie, a to jest dosyc waskie gardlo, plus czasami kompilacja po prostu kladzie sie bez powodu (chyba, ze juz to poprawili).
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: [grid] równoległa kompilacja

Maciej Siniło:
Jezeli program normalnie kompiluje sie 20 minut, to jest slabo zaplanowany :)
hehe tego jeszcze nie wiem bo dopiero w ten projekt sie wdrazam :)

konto usunięte

Temat: [grid] równoległa kompilacja

Maciej Siniło:
Jezeli program normalnie kompiluje sie 20 minut, to jest slabo zaplanowany :)
A co do IncrediBuilda to ma niestety kilka wad, m.in. linkowanie caly czas idzie na jednej maszynie, a to jest dosyc waskie gardlo, plus czasami kompilacja po prostu kladzie sie bez powodu (chyba, ze juz to poprawili).

Mam wrażenie że VS 2008 kompiluje z dokładnością do funkcji (tzn jeśli zmienisz jedną funkcję to kompiluje tylko tę funkcję). Dlatego przy kompilacji do debugowania czas kompilacji jest bardzo mały.
Można to poznać po warningach - pokazują się tylko te które są zawarte w kompilowanych funkcjach.

Kompilacja (lub linkowanie - dokładnie nie pamiętam) w VS 2008 też potrafi się wyłożyć, ale na szczęście nawet nie trzeba zamykać IDE - po awarii nadal jest sprawne.
Tomasz Ziobrowski

Tomasz Ziobrowski Oprogramowanie dla
przemysłu i nie
tylko

Temat: [grid] równoległa kompilacja

Łukasz Cepowski:
Witam,

ostatnio mam okazje pobawić się programikiem IncrediBuild, idea ogolnie taka aby do budowania projektu (Visual Studio) wykorzystac wszystkie dostepne w sieci maszyny i ich rdzenie. W praktyce dziala to fajnie i projekt zamiast budowac sie 20minut jest gotowy w ciagu minuty dwuch.

Ciekawi mnie czy jest do tego jakas darmowa alternatywa dla unixow?
Dla unixów dostepny jest distcc. Działa bez zarzutów lecz nie obsługuje "precompiled headers" choć z użyciem ccache da się ten mankament rozwiązać.

Właśnie zauważyłem w twoim profilu, że adminujesz min. Gentoo. Oba programy są w repozytorium pakietów. Po instalacji wystarczy dodać 'MAKEOPTS="-jXXX" FEATURES="ccache distcc"' do /etc/make.conf i kompilowanie pakietów dostaje "kopa". Gdzie optymalne XXX to ilość dostępnych rdzeni +1.Tomasz Ziobrowski edytował(a) ten post dnia 29.10.09 o godzinie 23:11
Michał Cichoń

Michał Cichoń Student,
Politechnika Śląska
w Gliwicach

Temat: [grid] równoległa kompilacja

Maciej Siniło:
Jezeli program normalnie kompiluje sie 20 minut, to jest slabo zaplanowany :)

Albo naprawdę duży. :)

konto usunięte

Temat: [grid] równoległa kompilacja

Maciej Siniło:
Jezeli program normalnie kompiluje sie 20 minut, to jest slabo zaplanowany :)
:) nie zawsze
W mojej bywszej pracy program kompilował sie na poczatku 2 godziny.
Po miesiącu wysiłków specjalistów udało sie zmniejszyś ten czas do 1 godziny i około 10 min.

konto usunięte

Temat: [grid] równoległa kompilacja

Piotr P.:
Maciej Siniło:
Jezeli program normalnie kompiluje sie 20 minut, to jest slabo zaplanowany :)
:) nie zawsze
W mojej bywszej pracy program kompilował sie na poczatku 2 godziny.
Po miesiącu wysiłków specjalistów udało sie zmniejszyś ten czas do 1 godziny i około 10 min.

A tak z ciekawości, a jakie to były wysiłki? To co piszą w internecie czy coś specjalnego? Zwykle zaleca się "ciało funkcji poza nagłówkiem". Co jeszcze można zrobić?

Temat: [grid] równoległa kompilacja

Piotr Likus:
A tak z ciekawości, a jakie to były wysiłki? To co piszą w internecie czy coś specjalnego? Zwykle zaleca się "ciało funkcji poza nagłówkiem". Co jeszcze można zrobić?
- PIMPL
- precompiled headers
- forward declarations gdzie sie da
- wciaganie z naglowkow minimalnej ilosci innych naglowkow, szczegolnie systemowych

Temat: [grid] równoległa kompilacja

Michał Cichoń:
Maciej Siniło:
Jezeli program normalnie kompiluje sie 20 minut, to jest slabo zaplanowany :)

Albo naprawdę duży. :)
Zapewne. _Naprawde_ :) Projekt przy ktorym aktualnie pracuje buduje sie w ~5 minut (bez IncrediBuilda). Ma pod 4mln linii. Zatem, zeby dobic do 20 musialby miec okolo 15-16 (pewnie troche mniej, bo dochodzi linkowanie). Tyle ma Windows 95, ale nie wiem czy wiele osob pracuje przy projektach tej skali :)

konto usunięte

Temat: [grid] równoległa kompilacja

Piotr Likus:
Piotr P.:

Po miesiącu wysiłków specjalistów udało sie zmniejszyś ten czas do 1 godziny i około 10 min.

A tak z ciekawości, a jakie to były wysiłki? To co piszą w internecie czy coś specjalnego? Zwykle zaleca się "ciało funkcji poza nagłówkiem". Co jeszcze można zrobić?
Nie, nie :)
Pod względem pisania kodu nie było problemu, był pisany zgodnie ze wszelkimi regułami sztuki programistycznej.

Przeróbki dotyczyły samego procesu budowania aplikacji.
Proces ten rozbito na wiele wątków tak by mogły wykonywać sie równolegle.
A program to był system dla koputera pokładowgo dla Mercedasa (nawigacja, browser, sterowanie funkcjami wewnętrznymi samochodu itd).

piotr

konto usunięte

Temat: [grid] równoległa kompilacja

Piotr P.:
Przeróbki dotyczyły samego procesu budowania aplikacji.
Proces ten rozbito na wiele wątków tak by mogły wykonywać sie równolegle.
A program to był system dla koputera pokładowgo dla Mercedasa (nawigacja, browser, sterowanie funkcjami wewnętrznymi samochodu itd).

Wow, nie wiedziałem że tyle softu mieści się w komputerze pokładowym... Browser www?

Chyba najwięcej czasu zżerają nagłówki które odwołują się do nagłówków, które mają nagłówki... (tak jak napisał Maciej).
Jak kiedyś tego nie pilnowałem to nawet banalne programy potrafiły się długo kompilować.

konto usunięte

Temat: [grid] równoległa kompilacja

Piotr Likus:
Wow, nie wiedziałem że tyle softu mieści się w komputerze pokładowym...
Dużo. W końcu pracowało nad tym setki programistów z całych Niemiec, od Hamburga po Monachium.
Browser www?
Tak. Pozwala oglądać internet i jednocześnie służy jak Board-Buch.

Chyba najwięcej czasu zżerają nagłówki które odwołują się do nagłówków, które mają nagłówki... (tak jak napisał Maciej).
Jak kiedyś tego nie pilnowałem to nawet banalne programy potrafiły się długo kompilować.
Prawda. Ale my używaliśmy specjalnego Frameworku (Mocca), który takich rzeczy pilnował.

piotr

Następna dyskusja:

Kompilacja do systemów x64




Wyślij zaproszenie do