Delucidazione "Ottimizzare"

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
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.
Rispondi
Avatar utente
l0ck
Linux 0.x
Linux 0.x
Messaggi: 86
Iscritto il: mer 25 gen 2006, 18:45
Località: /dev/null

Delucidazione "Ottimizzare"

Messaggio da l0ck »

ciao a tutti,
in poche parole volevo sapere nel dettaglio (se possibile) cosa significa se io ad esempio, ottimizzassi un pacchetto per il mio computer.
io ho ad esempio ho un centrino core duo, come dovrei ottimizzarlo per esso? e che vantaggi potrei trarre?
grazie mille, arrivederci!

Avatar utente
absinthe
Iper Master
Iper Master
Messaggi: 2354
Iscritto il: dom 15 mag 2005, 0:00
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze
Località: Prato
Contatta:

Re: Delucidazione "Ottimizzare"

Messaggio da absinthe »

l0ck ha scritto:ciao a tutti,
in poche parole volevo sapere nel dettaglio (se possibile) cosa significa se io ad esempio, ottimizzassi un pacchetto per il mio computer.
io ho ad esempio ho un centrino core duo, come dovrei ottimizzarlo per esso? e che vantaggi potrei trarre?
grazie mille, arrivederci!
non sono espertissimo ad ogni modo la prima cosa che puoi fare "per ottimizzare" è ricvompilare il sorgente indicando al compilatore che tu non hai un generico 686 ma un centrino (non so se esiste già un set di istruzioni ad hoc... funziona come un pentium M dual core?) i vantaggi sono relativi alla velocità di esecuzione: fondamentalemtne tutto quello che sta nella slack è compilato per 486 con ottimizzazioni per 686 (non so come funzioni la cosa). per quel che si può leggere nel forum il grosso dei vantaggi lo si vede nelle applicazioni multimediali mentre altrove i vantaggi sono minimi e non vale la pena...

M

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Messaggio da giberg »

Io proprio ieri ho provato a compilare un software di calcolo statistico (R-2.3.1) privo di interfaccia grafica nella versione per Linux (anche se esiste un progetto di gui per gnome). Ho ottimizzato la compilazione per il mio pentium 3 con le seguenti opzioni da passare prima del configure:

Codice: Seleziona tutto

CFLAGS="-O3 -march=pentium3 -mcpu=pentium3" ./configure eccetera.....
Ho fatto una verifica della velocità di calcolo di uno semplice script tra la versione ottimizzata pentium3 e quella compilata per il più generico i486 (o i386. Non ricordo di default cosa vada). Quest'ultima era la versione precedente del software ma non cambia nulla per le funzioni che ho usato. In pratica ho fatto uno script nel linguaggio R che prima di tutto mi salvava l'ora di sistema in una variabile t0, poi simulava un campione di 10000000 di numeri casuali (ho abbondato tanto per farlo lavorare di più) estratti da una distribuzione normale,gli ho dato un altro semplice comando tanto per aumentare il lavoro da fargli fare e infine o estratto l'ora di sistema in t1 al termine delle operazioni. La differenza tra t1 e t0 mi da un idea del tempo impiegato. La versione compilata con l'ottimizzazione ci metteva quasi 4 secondi in meno mi pare. Ovviamente la differenza si noterebbe di più su script molto più complessi. Più semplice è lo script meno si nota.
Nelle CFLAGS ho provato a mettere -O3 che da quello che leggo negli how-to produce un programma compilato leggermente più pesante ma più veloce anche se normalmente (almeno nei pacchetti precompilati di slackware) si usa -O2 per ottimizzare le dimensioni.
È la prima volta che provo una ottimizzazione. In un processore più veloce del mio forse neanche si sarebbe notata molto la differenza di velocità.

Ciao

Edit: ho un pentium3 733Mhz

Avatar utente
gohanz
Staff
Staff
Messaggi: 5832
Iscritto il: mar 30 nov 2004, 0:00

Messaggio da gohanz »

Qui puoi trovare tutte le ottimizzazioni per i processori!
http://gentoo-wiki.com/Safe_Cflags

Avatar utente
l0ck
Linux 0.x
Linux 0.x
Messaggi: 86
Iscritto il: mer 25 gen 2006, 18:45
Località: /dev/null

Messaggio da l0ck »

gohanz ha scritto:Qui puoi trovare tutte le ottimizzazioni per i processori!
http://gentoo-wiki.com/Safe_Cflags
a me "cat /proc/cpuinfo" rileva:

Codice: Seleziona tutto

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 14
model name      : Genuine Intel(R) CPU           T2300  @ 1.66GHz
stepping        : 8
cpu MHz         : 1660.000
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov                                                                                                     
pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc pni monitor                                                                                                     
vmx est tm2 xtpr
bogomips        : 3329.20

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 14
model name      : Genuine Intel(R) CPU           T2300  @ 1.66GHz
stepping        : 8
cpu MHz         : 1660.000
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov                                                                                                     
pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc pni monitor                                                                                                     
vmx est tm2 xtpr
bogomips        : 3324.59
Quindi dovrei usare -march=pentium-m da come ho capito..

Grazie a tutti per le risposte!

Avatar utente
absinthe
Iper Master
Iper Master
Messaggi: 2354
Iscritto il: dom 15 mag 2005, 0:00
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze
Località: Prato
Contatta:

Messaggio da absinthe »

non sono sicuro che un dore duo lavori come un pentium m... :?
intanto ti posto il mio set di istruzioni...

Codice: Seleziona tutto

utente@laptop:~$ cat /proc/cpuinfo 
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 13
model name      : Intel(R) Pentium(R) M processor 1.73GHz
stepping        : 8
cpu MHz         : 798.242
cache size      : 2048 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx est tm2
bogomips        : 1599.28
sicuramente puoi settare di default un 686 invece che un 486.

M

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Messaggio da giberg »

gohanz ha scritto:Qui puoi trovare tutte le ottimizzazioni per i processori!
http://gentoo-wiki.com/Safe_Cflags
Proprio un bel link!

Però effettivamente cosa dovrebbe usare essendo centrino ma anche core duo? Vedendo cpu-family e model dovrebbe usare l'ottimizzazione per il pentium M (pentium-m se ha gcc 3.4 altrimenti pentium3). Però c'è anche quella per i core duo (prescott) dove però non scrivono per quale cpu-family e model...

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Messaggio da giberg »

Beh sì, altrimenti usa i686...

Rispondi