Newsgroup: it.comp.hardware.cpu
Titolo: ciclo idle al 50%

Oggi nuovo pc in ufficio: p4 2.8GHz Prescott...quando impegno la cpu al max
mi segnala sempre il ciclo idle al 50% e quindi la cpu occupata solo al 50%?
Dite che dipende dall'HT? perdo in prestazioni? Al mio programma interessa
solo un clock il piu' alto possibile, quindi di multitasking niente..Devo
disabilitare l'HT?
Grazie a tutti,
thomas

 ha scritto nel messaggio news:Lm1se.27342$75.16...@news4.tin.it...

Per uso ufficio in genere l'HT è utile e consigliato :-)
Ma se tu fai girare SOLO quel programa, lo puoi disabilitare da bios e vedere se va meglio...
Marcello

Marcello
ti spiego:
-mentre sto in ufficio creo un modello
-quando me ne vado lancio la simulazione, in modo che per la mattina
successiva ho dei risultati
di notte quindi c'è un unico processo in esecuzione...domani provo a
disabilitarlo (speriamo che il sysadmin non abbia messo la psw al bios..).
Se hai qualche altro consiglio di' pure..
Grazie,
thomas

 quindi di multitasking niente.
Attenzione, il discorso si fa più complesso: non è solo multitasking, ma
multithreading. Il programma può essere anche l'unico a girare, ma se è
multithreaded i benefici dell'HT li sente comunque.
MaxArt

 multithreaded i benefici dell'HT li sente comunque.
qua si sente la mia ignoranza: multitasking o multithreading per me sono
sempre state la stessa cosa...hai un link dove posso studiare?
thomas

 multithreaded i benefici dell'HT li sente comunque.
già che ci siamo, dato che posso ottenere i file sorgente di questa
applicazione che è scritta in fortran, esistono delle istruzioni per poter
modificare un'applicazione in modo che possa sfruttare un sistema
multiprocessore? dove posso farmi una cultura sull'argomento multi-cpu?
thomas

>
[...]
Dato che lo fai andare la notte e senza nient'altro, potresti (senza sacrificare l'ht utile di giorno) impostare la priorità del processo a supnormale o alta, in modo che il sistema operativo gli dedichi tutto quello che ha.
Marcello
--
 Se tu pagare come dici tu,
   io lavorare come dico io.
   Se tu pagare come dico io,
   io lavorare come dici tu.
               - Antico proverbio cinese

 sono sempre state la stessa cosa...hai un link dove posso studiare?
Dato che sei così volenteroso, potrei anche consigliarti di spulciare
lithium.it... qualcosa ci sarà di sicuro!
Dimmi se trovi qualcosa che ti possa aiutare.
MaxArt

 dove posso farmi una cultura sull'argomento multi-cpu?
Cosa intendi con "multi-cpu"? Direi che questo newsgroup è una buona base di
partenza.
MaxArt

 
Guarda Max che da t.m. puoi selezionare le colonne e visualizzare anche il conteggio dei thread :-) (Ok non puoi gestirli)
...O sono un'altra cosa?
Marcello
 -- 
"Sperare senza far niente e` come pescare senza esca. A volte funziona."
Anonimo

 ...O sono un'altra cosa?
Vedere il conteggio è utile a poco. Spesso in un programma complesso che 
usa un po' di librerie ti capita di vedere thread che non sai nemmeno da 
dove vengano, che per lo più stanno in attesa di qualcosa.
Process Explorer - una utility veramente simpatica che si trova su 
http://www.sysinternals.com
 - permette anche di vedere l'attività dei 
singoli thread di un processo, senza poter cambiare la priorità. Mi 
chiedo quanto possa essere utile all'utente medio, però.
Ciao
Davide

in realtà da tm->visualizzazione->colonne->conteggio thread puoi
vedere quanti thread sta usando l'applicazione..
thomas

Guarda, il programma in realtà è davvero semplice dal punto di vista
informatico: costruisce un sistema di equazioni sotto forma di matrici
(del tipo A*x=B) e lo risolve iterando. Utilizza delle librerie ma solo
in fase di creazione delle matrici iniziali, poi lavora salvandosi i
risultati in un unico file...ne ho scritto uno simile anch'io col
matlab e il matlab magari non lavora in single-thread, invece questo
codice è molto piu' vicino al linguaggio macchina. Conosco la persona
che lo ha scritto, e sebbene fluidodinamicamente parlando sia un
macello, dal pto di vista informatico è davvero semplice. Mi
piacerebbe riuscire a modificarlo in modo da farlo girare su un sistema
con piu' cpu, ma non so proprio da dove partire...
thomas

 partire...
Beh, per girarci ci gira, ma non le sfrutta!
Comunque, i newsgroup te li ho indicati. Non ne esiste uno italiano sul
Fortran, però c'è alt.comp.lang.fortran se non hai problemi con l'inglese.
MaxArt

 Fortran, però c'è alt.comp.lang.fortran se non hai problemi con l'inglese.
provero' a chiedere li'..grazie ancora,
thomas


Il programma e' stato scritto in Fortran "da zero" oppure
sono state usate delle librerie "generiche" per il calcolo
matriciale, la soluzione di sistemi lineari ecc. ecc. ?
In tal caso, prima di passare a versioni multiprocessore del
tuo programma, se sono state utilizzate tali librerie potresti
provare a far ricompilare l'applicazione con librerie ricompilate
in modo da essere ottimizzate appositamente per il P4.
Per esempio il programma Scilab (una specie di matlab open source)
dalla versione 3.1 in poi utilizza la libreria ATLAS ed in base
alla cpu presente seleziona una versione di ATLAS appositamente
compilata per tale cpu (Pentium, Pentium III, K7, P4, K8)
in modo da avere prestazioni migliori.
Una volta che hai spremuto per bene la singola cpu dovresti
poi valutare quali sono i colli di bottiglia del programma
prima di passare ad implementare il supporto per il multithreading
o per il multiprocessing (es: se scrivi un sacco di file temporanei
valuta se invece puoi tenerne almeno la parte piu riutilizzata
in memoria, ogni operazione eseguita in ram invece di fare I/O
con il disco in media ti da un guadagno da 10 a 1000 su
quell'operazione ... se ce ne sono tante il guadagno a livello
di applicazione complessiva puo anche essere notevole).
Dico questo perche se l'applicazione e' "strozzata" dall'accesso
alla ram oppure da altre cose che non vengono migliorate sensibilmente
passando al multiprocessing, conviene prima eliminare tali colli
di bottiglia e solo dopo valutare se conviene passare a
soluzioni multiprocessore/multithread.
L. Micheletto

 ho cercato poco o perchč non c'č un servizio di ricerca interno)
Prova questo:
http://www.lithium.it/articolo.asp?code=24
Comunque, da' un'occhiata anche a quel che ha detto Lorenzo, che non č 
l'ultimo arrivato ;-)
MaxArt

 soluzioni multiprocessore/multithread.
giusto, infatti su pc con poca ram o quando ho un numero di elementi enorme,
mi crea un file temporaneo e l'hd lavora..
thomas

 installarlo in ufficio senza pagare licenze?
Guarda su 
www.scilab.org
 ci sono tutte le informazioni
e' un programma open source (molto di piu di un semplice freeware
puoi anche mettere mano ai sorgenti e/o ricompilare il tutto con
compilatori piu efficienti o con settaggi ad hoc per quel che
ti serve).
E' simile a Matlab *ma* non e' stato concepito per essere
Matlab-compatibile (anche se chi proviene da Matlab ci mette
poco ad adattarsi, ci sono anche utility per convertire
gli .m file e documentazione sulle differenze tra matlab e scilab).
La versione "vecchia" (2.x) aveva pure un sacco di documentazione ben
fatta in formato postscript e pdf pronta da stampare, quella nuova (3.x)
ha tutto l'help in linea aggiornato ma devono ancora convertire tutto
il resto (anche se le differenze sono cose in piu, non in meno).
Ha anche un modulo per la simulazione interattiva (scicos)
ed un sacco di altre cosette (tipo il supporto di PVM per eseguire
calcoli distribuiti su cluster di pc), lo puoi usare
come "motore di calcolo" asservito a programmi esterni
oppure aggiungergli moduli esterni custom
infine per le cose non coperte dalla documentazione o per
avere consigli da altri utilizzatori c'e' pure un newsgroup
dedicato (comp.soft-sys.math.scilab).
Ripeto, non e' un clone di Matlab, ma e' fatto per risolvere gli
stessi problemi (ed anche qualcosa in piu), se guardi chi fa parte
dello Scilab Consortium oltre all'INRIA (ovviamente, sono loro
che ne hanno iniziato lo sviluppo) trovi anche vari sponsor
di grosso calibro il che indica un impegno serio su di esso.
L. Micheletto

 e' un programma open source (molto di piu di un semplice freeware
CUT
sembra che ti piaccia davvero tanto questo scilab..appena ne ho l'occasione
lo provo..grazie ancora per tutte le informazioni chiare ed esaurienti..
thomas

 matrici...
Non sono librerie "standard" del Fortran, sono librerie che per una
serie di ragioni sono state scritte in Fortran e sono diventate
degli standard di fatto (utilizzabili anche da altri linguaggi).
Le piu note riguardo operazioni di base, risoluzioni di sistemi lineari
in  forma matriciale, calcolo di autovalori, fattorizzazione LU
ecc. ecc. su matrici dense, sparse o a bande le trovi su netlib.
In particolare dai un occhiata a:
http://www.netlib.org/blas/
http://www.netlib.org/eispack/
http://www.netlib.org/linpack/
http://www.netlib.org/lapack/
http://www.netlib.org/atlas/
http://math-atlas.sourceforge.net/
Il pacchetto BLAS implementa le funzioni di base.
EISPACK e LINPACK sono le librerie
basate sulle funzioni di livello 1 di BLAS
ch eimplementano calcolo di autovalori e risoluzione
di sistemi lineari.
LAPACK integra le funzionalita di EISPACK e LINPACK
e sfrutta meglio sistemi SMP o con cache multilivello
perche rappresenta le matrici spezzandole in blocchi
(fondamentalmente utilizza le funzioni di livello 3 di BLAS).
ATLAS infine genera versioni ottimizzate delle BLAS in base
all'architettura su cui gira.
In origine Octave e Scilab usavano LAPACK, ora Scilab usa anche ATLAS.
L. Micheletto