On Monday, 18 March 2002, Dan Nae wrote:
> > La make clean dep all, compilez distribuit pe 5 masini :-) Speedup e
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Ce folosesti pentru compilarea asta distribuita?

Niste programete scris de mine. Fiecare masina care e dispusa sa faca
compilari ruleaza un server si asculta cereri. una din cereri poate sa
fie exec <nu-stiu-ce> in directorul cu proiectul. E absolut insecure,
dar o folosesc doar in reteaua locala. Probabil ca se poate substitui
cu ssh cumva, dar ma intereseaza exit-status-ul comenzilor la
compilare asa ca am inventat un protocol simplu care sa il trimita.

Pe unul din calculatoare ruleaza un dispatcher, care primeste si el
cereri. Cand primeste mai multe cereri decat servere disponibile, se
blocheaza pana e unul liber.

Pe urma, in makefile, in loc de $(CC) $(CFLAGS) .... am un programete
care trimite cererea (exec $CC $CFLAGS ...) catre dispatcher, care o
trimite la unul din serverele libere.

In fine, "make -j 5" pe masina cu dispatcher-ul. Se pare ca make-urile
mai noi stiu sa paralelizeze mai mult decat target-uri din makefile-ul
top-level.

Ma rog, directorul cu proiectul trebuie sa fie NFS-mounted de undeva
si ceasurile de pe sisteme trebuie bine sincronizate. In afara de
asta, trebuie sa mai fii atent cand faci dependency-urile, ca "gcc
-MM" iti pune path-urile complete catre fisiere. Evident, in functie
de locul unde montezi directorul prin NFS, astea pot fi diferite.

Daca te intereseaza, iti pot trimite o arhiva cu
programele. Deocamdata sunt in stadiul de hack, dar sunt perfectibile
:)

Matei
---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to 
unsubscribe from this list.

Raspunde prin e-mail lui