PDA

View Full Version : dual core + codici numerici


peter2
09-02-2006, 13:38
ciao a tutti...
ho provato ad utilizzare il tasto cerca ma non funziona...

devo comprare un pc, non ho limiti di spesa.
mi occupo di simulazione numerica in campo ingegneristico. scrivo i miei programmi in fortran, senza parallerizzare il codice (per ora).
vorrei sapere se un dual core integrato mi sarebbe utile nel far girare i vari programmi (giorni di simulazioni in genere), con/senza codice parallelizzato.
al limite si possono utilizzare i due core per far girare 2 modelli in contemporaneo? sulla worksation biprocessore unix qui dove lavoro so che lo fanno. temo che in ambiente windows non si possa, giusto?

ditemi voi che tipo di macchina scegliere...

ciao

cionci
09-02-2006, 18:55
Sì, si può assegnare un dato processo ad un determinato processore...

peter2
10-02-2006, 13:14
Sì, si può assegnare un dato processo ad un determinato processore...


anche con windows xp?

^TiGeRShArK^
10-02-2006, 13:23
certo.. fa tutto in automatico..
tu fai partire i due processi separati e lo scheduler li alloca ai due core...

pinok
10-02-2006, 15:11
certo.. fa tutto in automatico..
tu fai partire i due processi separati e lo scheduler li alloca ai due core...
Fammi capire, perché nella sezione portatili mi hanno detto di no.
Io posso lanciare QEMU (l'emulatore di macchine virtuali) e XP automaticamente gli alloca uno dei due core, lasciandomi l'altro, ad es., per il sistema host ?
Per me sarebbe manna ;)...

^TiGeRShArK^
10-02-2006, 18:29
allora.. non ho cpaito bene quello ke devi fare tu...
cmq la regola generale è la seguente.....
uno scheduler assegna ad ogni PROCESSO del tempo di esecuzione di un processore....Se il processo è singlethreaded potrà girare solo su un unico processore, se il processo è multi-threaded potrà sfruttare i vari processori, uno per ogni thread in cui il processo è diviso.
Nel caso in cui tu devi lanciare ad esempio due processi impegnativi su un dual-core allora uno andrà a stressare un processore, mentre l'altro andrà sul secondo processore grazie allo scheduler del sistema operativo.
Attenzione però... se di questi processi solo uno è computazionalmente pesante, mentre l'altro è molto piu' leggero non avrai alcun vantaggio passando al dual-core poikè il tempo di esecuzione totale dipenderà soprattutto dal tempo di esecuzione del processo piu' pesante... (detto in maniera molto spicciola)...
se invece i due processi ke lanci presentano un carico computazionale abbastanza simile otterrai dei buoni vantaggi passando al dual core...
Per capire meglio però dovresti spiegarmi cosa sono i due processi ke intendi lanciare... xkè non l'ho capito bene :p

pinok
10-02-2006, 21:01
Ti ringrazio per la risposta.
In realtà non si tratta di processi che programmo io, per cui non ho ne il problema né la possibilità di ottimizzarli per un dual core.
In pratica la mia curiosità e interesse era quello di poter far girare un sistema operativo all'interno di un altro sistema operativo, cosa già possibile grazie (ad es.) a wmware o a qemu (che è free).
Questo mi permette varie cose, come ben puoi immaginare, quali sviluppare su un sistema e, con lo stesso notebook, contemporaneamente testare su un altro.
Già ora lo posso fare, ma quando lancio, ad es., un task pesante sulla macchina virtuale, anche la CPU di quella reale è impegnata con percentuale alta, quindi posso fare quello che mi serve, ma con il note iperattivo e rallentato in entrambi gli ambienti.
Se si potesse in qualche modo destinare un core alla macchina virtuale e uno a quella reale, nel caso la macchina virtuale occupasse il 100% della sua CPU, su quella reale avrei ancora una certa snellezza operativa.
Spero di avere reso l'idea ;)

^TiGeRShArK^
10-02-2006, 23:54
Ti ringrazio per la risposta.
In realtà non si tratta di processi che programmo io, per cui non ho ne il problema né la possibilità di ottimizzarli per un dual core.
In pratica la mia curiosità e interesse era quello di poter far girare un sistema operativo all'interno di un altro sistema operativo, cosa già possibile grazie (ad es.) a wmware o a qemu (che è free).
Questo mi permette varie cose, come ben puoi immaginare, quali sviluppare su un sistema e, con lo stesso notebook, contemporaneamente testare su un altro.
Già ora lo posso fare, ma quando lancio, ad es., un task pesante sulla macchina virtuale, anche la CPU di quella reale è impegnata con percentuale alta, quindi posso fare quello che mi serve, ma con il note iperattivo e rallentato in entrambi gli ambienti.
Se si potesse in qualche modo destinare un core alla macchina virtuale e uno a quella reale, nel caso la macchina virtuale occupasse il 100% della sua CPU, su quella reale avrei ancora una certa snellezza operativa.
Spero di avere reso l'idea ;)
ah ok..
ora ho capito perfettamente il tuo problema :D
teoricamente nel tuo caso dovresti ottenere buoni incrementi prestazionali derivanti da un dual core...
però quello ke ti consiglio io è di puntare su un processore con tecnologia di virtualizzazione (Vanderpool - Intel / Pacifica - AMD) che implementa in hardware delle istruzioni molto utili nel caso di virtualizzazioni...
in parole povere questa tecnologia sgrava dai calcoli la tua makkina virtuale poikè effettua in hardware delle operazioni ke altrimenti sarebbe necessario effettuare in software e addirittura consente delle operazioni ke prima erano possibili tramite dei "workarounds" (in particolare introduce un nuovo "Ring" oltre al classico Ring 0 utilizzabile proprio dai programmi di virtualizzazione se non erro)
L'unico problema è ke nn m ricordo quali tra i processori attuali supportano la tecnologia Vanderpool (VT) e pacifica... :fagiano:
prova a fare un giro sui siti ufficiali di intel e amd.. o prova a dare uno sguardo alle ultime news di HWU poikè mi pare ke ultimamente se ne è parlato di queste 2 tecnologie....
cmq imho un dual core con queste tecnologie farebbe proprio al caso tuo ;)

pinok
11-02-2006, 00:09
mmmhhh...
Mi interessava il centrino duo per il discorso legato al portatile (quindi durata delle batterie, basso calore, ecc.) e per il fatto che non uso perennemente il doppio sistema operativo (mi dirai, giustamente: "se lo usi poco, un processore vale l'altro" ;)).
Mi sa che i processori che hai citato non sono ancora destinati ai portatili :(, comunque lo terrò presente e darò un'occhiata ai vari siti.
Grazie per le info.

^TiGeRShArK^
11-02-2006, 00:40
mmmhhh...
Mi interessava il centrino duo per il discorso legato al portatile (quindi durata delle batterie, basso calore, ecc.) e per il fatto che non uso perennemente il doppio sistema operativo (mi dirai, giustamente: "se lo usi poco, un processore vale l'altro" ;)).
Mi sa che i processori che hai citato non sono ancora destinati ai portatili :(, comunque lo terrò presente e darò un'occhiata ai vari siti.
Grazie per le info.
eh bhè.... x i portatili odierni il centrino duo è il non plus ultra! :D
e te lo dice uno "tendenzialmente" pro AMD....
imho l'unico difetto degli yonah (il nome in codice dei processori dei portatili centrino duo) è il mancato supporto ai 64 bit che tra un pò di tempo "potrebbe" farsi sentire...
se lo devi prendere subito il portatile vai tranquillamente sul centrino duo (disponibilità economica permettendo)... altrimenti se puoi attendi l'uscita di merom (se non sbaglio :p) per il 3 trimestre di quest'anno(a meno di ritardi)...
cmq imho oggi km oggi un processore dual core o a 64 bit su un portatile è un investimento x il futuro dato ke solitamente questi computer hanno una vita media molto + lunga di un PC fisso (ancora ho un portatile con un Pentium 133 e uno con un Pentium 233 mmz.... l'ultimo ankora lo usano ogni tanto mio padre e i miei fratelli dato ke io mi sono fregato il centrino 1.7 :D)
buon acquisto ;)

pinok
11-02-2006, 01:56
buon acquisto ;)
Grazie ;)
Per ora sta ancora girando abbastanza bene il centrino 1.3, quindi non ho una fretta eccessiva. Aspetto l'occasione buona e, soprattutto, HP con una sua proposta per il centrino duo.
Toshiba ha poca durata delle batterie, Asus non mi convince ancora al 100% e Acer mi fa venire l'orticaria solo a sentirlo nominare :D
Con HP/Compaq mi sono sempre trovato bene (anche con il primo toshiba, peccato che ora che hanno livellato i prezzi hanno le batterie scarse...) e in genere offrono anche prezzi decenti.

peter2
15-02-2006, 13:17
vedo che il mio post ha suscitato molte adesioni...sono contento.
ritornando al mio problema:
io devo far girare due programmi singlethreaded in fortran che ci mettono ore (10-20) per dare i risultati.
se ne avvio 2 contemporaneamente chi mi assicura che ognuno venga eseguito da un core diverso dall'altro?
e se riscrivo e ricompilo i programmi in multi thread la cosa cambia o qualche thread viene eseguito dall'altro procio?
PS devo stare attento a chiamare gli eseguibili in modo diverso o possono avere lo stesso nome?

ciao

^TiGeRShArK^
15-02-2006, 16:48
semplicemente puoi provare col tuo pc attuale a fare partire due istanze di questo programma e vedi se funzionano correttamente ;)

peter2
15-02-2006, 17:57
semplicemente puoi provare col tuo pc attuale a fare partire due istanze di questo programma e vedi se funzionano correttamente ;)

nel senso che tu sai già la risposta oppure il tentativo è una prova vera? :D :D

^TiGeRShArK^
15-02-2006, 21:24
nel senso che tu sai già la risposta oppure il tentativo è una prova vera? :D :D
:rotfl:
ancora non sono nostradamus! :D
però con una probabilità del 90% in teoria dovrebbe andare..
se ti partono due istanze diverse del programma non avrai problemi... e questo è vero nella maggior parte dei casi, ma qualke programma a volte quando lo fai partire due volte in realtà non si avvia...
in generale... a meno di non condividere risorse di rete (es. server ke utilizzano la stessa porta) o un altro tipo di risorse (es. skeda video) i vari programmi partono con due istanze diverse..
per avere la certezza assoluta fai la prova ke ti ho detto.. se vedi ke partono due processi separati (ke puoi vedere dal task manager di windows) non dovresti avere problemi... a meno delle risorse condivise di cui sopra :D