Ottimizzare i tempi di compilazione di un programma
Moderatore: Staff
Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Ottimizzare i tempi di compilazione di un programma
Ieri in IRC accennavo a delle prove fatte per stabilire il numero di jobs ottimale nel mio sistema nella compilazione del kernel
Ecco i risultati
http://www.dabliutri.net/2008/10/19/ott ... programma/
Ecco i risultati
http://www.dabliutri.net/2008/10/19/ott ... programma/
-
Mario Vanoni
- Iper Master

- Messaggi: 3174
- Iscritto il: lun 3 set 2007, 21:20
- Nome Cognome: Mario Vanoni
- Slackware: 12.2
- Kernel: 3.0.4 statico
- Desktop: fluxbox/seamonkey
- Località: Cuasso al Monte (VA)
Re: Ottimizzare i tempi di compilazione di un programma
Interessante, ma altri parametri sono importanti:conraid ha scritto:Ieri in IRC accennavo a delle prove fatte per stabilire il numero di jobs ottimale nel mio sistema nella compilazione del kernel
Ecco i risultati
http://www.dabliutri.net/2008/10/19/ott ... programma/
- la L2 cache del/dei processore/i
- la memoria totale disponibile
- il Makefile, kernel OK esecuzione parallela prevista
Ho compilato oggi il 2.6.27.2, statico, su 3 macchine:
make -j 3 bzImage, sono Intel Core 2 Dual 1866MHz,
una ha L2 di 2MB e 3GB RAM, le altre due 4MB e 4GB.
I tempi variano di qualche secondo +/- contro make -j 2,
tempi (con time di bash) su 6 minuti e 5...10 secondi,
contano di piu` i processi in sottofondo (crontab).
Rimango alla regola make -j NUMERO_PROCESSORI.
- Vito
- Staff

- Messaggi: 4182
- Iscritto il: mar 5 dic 2006, 17:28
- Nome Cognome: Vito
- Desktop: MacOS
- Località: Monaco (DE)
- Contatta:
Re: Ottimizzare i tempi di compilazione di un programma
Da quello che vedo anche secondo me è meglio restare al make -j Numero_processori ...ho provato a fare lo stesso sulle mie 2 macchine :una con un Intel Core 2 Duo T9300 e 4GB di Ram , l'altra con un Athlon XP 3000+ e 1GB di Ram.
"Stat rosa pristina nomina, nomina nuda tenemus." [ Umberto Eco - Il nome della rosa]
"Faber est suae quisque fortunae ." [ Appio Claudio Cieco]
"Faber est suae quisque fortunae ." [ Appio Claudio Cieco]
-
birg81
- Linux 3.x

- Messaggi: 760
- Iscritto il: lun 16 gen 2006, 10:57
- Nome Cognome: Biagio
- Slackware: 12.2
- Kernel: 3.4.7
- Desktop: LxDE
- Distribuzione: ArchLinux
- Località: Castellammare di Stabia (NA)
- Contatta:
Ottimizzare i tempi di compilazione di un programma
Si ma come si stabilisce il numero migliore?!
-
jurrehart
- Linux 0.x

- Messaggi: 3
- Iscritto il: gio 25 set 2008, 10:43
- Nome Cognome: Jurgen Hart
- Slackware: 12.1
- Kernel: 2.6.25-jur #9
- Desktop: KDE
Re: Ottimizzare i tempi di compilazione di un programma
Ciao tutti,
E molto difficile stabilire il numero migliore perche ci sono troppi fattori in gioco.
come hanno gia detto prima nel forum
nr di CPU/core
dimensione della cache
RAM
Ma puoi anche aggiungere:
Velocita disco
dipendenze dal codice durante la compilazione
quello che intendo dire se per la compilazione di un programma hai bisogno di moduli A,B,C e D ma D dipende da C che a suo tempo dipende da B che dipende da A anche se hai un -j 4 devi comunque aspettare che hai A pornto prima di poter finire B e cosi via.
E molto difficile stabilire il numero migliore perche ci sono troppi fattori in gioco.
come hanno gia detto prima nel forum
nr di CPU/core
dimensione della cache
RAM
Ma puoi anche aggiungere:
Velocita disco
dipendenze dal codice durante la compilazione
quello che intendo dire se per la compilazione di un programma hai bisogno di moduli A,B,C e D ma D dipende da C che a suo tempo dipende da B che dipende da A anche se hai un -j 4 devi comunque aspettare che hai A pornto prima di poter finire B e cosi via.
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: Ottimizzare i tempi di compilazione di un programma
Come ho scritto nel blog, a volte hai anche errori, perché magari una parte viene compilata prima e si aspetta che ce ne sia un'altra già pronta.jurrehart ha scritto: quello che intendo dire se per la compilazione di un programma hai bisogno di moduli A,B,C e D ma D dipende da C che a suo tempo dipende da B che dipende da A anche se hai un -j 4 devi comunque aspettare che hai A pornto prima di poter finire B e cosi via.
Ma devo dire che usando -j2 solo una volta mi è capitata una situazione simile, ma può succedere.
La cosa da fare sarebbe fare tutti uno stesso test, magari con le stesso .config sugli stessi kernel e postare i risultati per ogni tipologia di macchina... ma alla fine ognuno fa prima a farselo da solo
-
Mario Vanoni
- Iper Master

- Messaggi: 3174
- Iscritto il: lun 3 set 2007, 21:20
- Nome Cognome: Mario Vanoni
- Slackware: 12.2
- Kernel: 3.0.4 statico
- Desktop: fluxbox/seamonkey
- Località: Cuasso al Monte (VA)
Re: Ottimizzare i tempi di compilazione di un programma
Ho fatto dei test seri,
kernel 2.6.26.[56] statici e 2.6.27.[123] statici,
tre macchine Core 2 Dual, 3/4GB RAM, 1866MHz,
una HD IDE, le altre due HD SATA,
totale quindi 15 compilazioni, con e senza X.
Tempi +/- 3 secondi, riproducibili.
Con X attivo:
time make -j 2 bzImage 6m45
time make -j 3 bzImage 6m45
Senza X, unico schermo con sh:
time make -j 2 bzImage 6m12
time make -j 3 bzImage 6m12
Quindi incidono molto i processi in sottofondo,
_NON_ make -j NUMERO_PROCESSORI,
la diifferanza: circa 8 percento.
kernel 2.6.26.[56] statici e 2.6.27.[123] statici,
tre macchine Core 2 Dual, 3/4GB RAM, 1866MHz,
una HD IDE, le altre due HD SATA,
totale quindi 15 compilazioni, con e senza X.
Tempi +/- 3 secondi, riproducibili.
Con X attivo:
time make -j 2 bzImage 6m45
time make -j 3 bzImage 6m45
Senza X, unico schermo con sh:
time make -j 2 bzImage 6m12
time make -j 3 bzImage 6m12
Quindi incidono molto i processi in sottofondo,
_NON_ make -j NUMERO_PROCESSORI,
la diifferanza: circa 8 percento.