Pagina 1 di 1
Delucidazione "Ottimizzare"
Inviato: lun 28 ago 2006, 6:00
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!
Re: Delucidazione "Ottimizzare"
Inviato: lun 28 ago 2006, 9:31
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
Inviato: lun 28 ago 2006, 10:25
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
Inviato: lun 28 ago 2006, 11:54
da gohanz
Qui puoi trovare tutte le ottimizzazioni per i processori!
http://gentoo-wiki.com/Safe_Cflags
Inviato: lun 28 ago 2006, 14:15
da l0ck
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!
Inviato: lun 28 ago 2006, 21:04
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
Inviato: lun 28 ago 2006, 21:45
da giberg
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...
Inviato: lun 28 ago 2006, 21:45
da giberg
Beh sì, altrimenti usa i686...