PDA

View Full Version : Consiglio multiprocessore


m_e_l_l_o
02-03-2012, 11:58
Carissimi,
ho una domanda e vorrei avere dei consigli da chi ne sa più di me.
Devo eseguire un modello fisico (un modello meteorologico) che richiede un'enorme capacità di calcolo.
E' parallelizzabile ed è scritto in fortran e c.
Nel mio centro di ricerca abbiamo la disponibilità di acquistare delle macchine per eseguire tale modello.
Vorrei capire da voi le seguenti cose:
1) Quali sono i produttori più importanti di schede madre multiprocessore?
2) che processori montare? i7, Xeon, AMD?

Seguendo un po' le discussioni sul forum mi sembra di capire che i7 siano attualmente la scelta migliore anche se vorrei capire se gli AMD ad 8 core potrebbero essere un'alternativa. Faccio presente che il modello è in grado di utilizzare tutti i core messi a disposizione dall'architettura.

Ovviamente non ho fondi infiniti, quindi non penso di poter mettere il processore top di gamma su tutti i computer, ma magari più processori meno importanti.

Vi ringrazio preventivamente per le vostre preziose risposte,


m_e_l_l_o

aldooo
02-03-2012, 12:30
XEON mi sembra la scelta obbligata per i sistemi multiprocessorea ad alte prestazioni.
L'alternativa AMD sono gli opteron.

Schede madre multiprocessore ce ne sono poche in giro per le CPU domestiche.

minuccio87
02-03-2012, 12:58
Carissimi,
ho una domanda e vorrei avere dei consigli da chi ne sa più di me.
Devo eseguire un modello fisico (un modello meteorologico) che richiede un'enorme capacità di calcolo.
E' parallelizzabile ed è scritto in fortran e c.
Nel mio centro di ricerca abbiamo la disponibilità di acquistare delle macchine per eseguire tale modello.
Vorrei capire da voi le seguenti cose:
1) Quali sono i produttori più importanti di schede madre multiprocessore?
2) che processori montare? i7, Xeon, AMD?

Seguendo un po' le discussioni sul forum mi sembra di capire che i7 siano attualmente la scelta migliore anche se vorrei capire se gli AMD ad 8 core potrebbero essere un'alternativa. Faccio presente che il modello è in grado di utilizzare tutti i core messi a disposizione dall'architettura.

Ovviamente non ho fondi infiniti, quindi non penso di poter mettere il processore top di gamma su tutti i computer, ma magari più processori meno importanti.

Vi ringrazio preventivamente per le vostre preziose risposte,


m_e_l_l_o

credo che gli xeon multi processore vadano meglio x la sk.madre intel se non sbaglio ha in listino soluzioni dual processor...

P.s. scusa se scritto in fortan e c perché non prendi una cpu media\performante e monti una o + schede nvidia e le fai lavorare con cuda??
Cuda è sicuramente veloce ed economico... una skeda video ha una velocita di calcolo in singola virgola mobile 30 volte maggiore e almeno un 50 volte sulla doppia...... poi ci sono le cpu specifiche ma costano un botto e vogliono sistemi specifici.... unica pecca dovresti ricompilare il progetto col compilatore fortan per cuda......

m_e_l_l_o
02-03-2012, 13:13
P.s. scusa se scritto in fortan e c perché non prendi una cpu media\performante e monti una o + schede nvidia e le fai lavorare con cuda??


CUDA è' una cosa a cui avevo pensato. Il problema è proprio la ricompilazione dell'intero modello con CUDA: è una cosa che non ho mai provato e non so che problemi aspettarmi. Sicuramente è qualcosa su cui vorrei cimentarmi.

m_e_l_l_o
03-03-2012, 16:15
Ma, praticamente, le CPU xeon cos'hanno di diverso dalle altre?
(scusate la domanda sciocca)

minuccio87
03-03-2012, 16:36
Ma, praticamente, le CPU xeon cos'hanno di diverso dalle altre?
(scusate la domanda sciocca)

Sono evoluzioni ( a dirla semplice) dei processori desktop in campo server\workstation, in genere sono caratterizzati da una cache più grande, un'affidabilità maggiore, ed il supporto per architetture multiprocessore.... oltre ad avere TDP sempre + bassi della controparte desktop.....

Athlon
03-03-2012, 17:50
Se il problema e' parallelizzabile in modo che i thread abbiano poco bisogno di scambiarsi i dati puoi pensare ad una parallelizzazione con dei Workers e delle Work unit , cioe usi una macchina come Dispatcher per creare ed allocare i pacchetti e tante altre machine fisiche separate come esecutori.
Nella Work Unit deve essere contenuto abbastanza lavoro da tenere impegnata la macchina almeno per circa 5 minuti , in modo che il dispatcher abbia modo di allorare le altre WU alle altre macchina prima che la WU sia pronta per il ritiro.

Un infrastruttura di questo tipo garantisce prestazioni a parita' di costo di circa un ordine di grandezza superiori rispetto all' uso di macchine di classe server.

Se pensi di utilizzare in futuro il calcolo di tipo GPGPU ti consiglio di usare come workers dei Llano che integrano in un unico package sia CPU che GPU con un ottima resa computazionale.



Come dispatcher puoi usare la tua stessa workstation di lavoro , il task di dispacciamento e' decisamente leggero , come configurazione di worker io mi sono trovato bene con questa configurazione:


10 Worker composti da

- Motherboard GIGABYTE GA-A75M-S2V
- Processore APU A6-3650
- Ram 4Gb CL9 1,5V
- alimentatore 300W 80+ silent
- chiavetta usb 8gb per SO e programma

ogni worker costa circa 230 euro , ma comperandone 10 si ottengono buoni sconti , questo vuol dire che con circa 2000 euro ottieni :

40 core , 40 Gb di ram e 10 GPU con cui processare il tuo programma .

Inoltre il sistema e' abbastanza tollerante al failure , se un nodo dovesse andare offline , semplicemente il dispatcher reinvierebbe la stessa WU ad un altro nodo , senza ritardi per l'elaborazione complessiva

Athlon
03-03-2012, 18:05
Se invece hai bisogno di una macchina singola ( cioe' i thread devono poter parlare in maniera relativamente veloce tra di loro ) conosco altri ricercatori che si sono trovati bene con questa soluzione

- mainboard ASUS - Motherboard KGPE-D16
- 2x OPTERON 12-CORE 6238
- 8x 4gb CL9 1,5V
- Alimentatore 1kw 80+ silent
- 2x Nvidia GTX 560

anche qui con una spesa di circa 2000 euro per ottenere :

24 core elaborativi
32 Gb di ram
2 GPU

Athlon
03-03-2012, 18:08
un altro processore moto adatto a costruire dei worker e' il Core i5-2320

m_e_l_l_o
05-03-2012, 13:44
Se invece hai bisogno di una macchina singola ( cioe' i thread devono poter parlare in maniera relativamente veloce tra di loro ) conosco altri ricercatori che si sono trovati bene con questa soluzione


La tua proposta di avere piccolemacchine con llano sopra mi sembra molto interessante. In pratica si perde in potenza di clock e si guadagna in multiprocessori.
Ovviamente questo solo se il codice permette una forte scalabilità. giusto?
Mi domando a questo punto perchè prendere llano e non andare direttamente per CPU ancora più economiche, oppure spendere qualche euro in più a CPU per prendere degli i5. (E' una vera domanda, non una critica alla tua risposta.)

Athlon
05-03-2012, 15:18
perche' in Llano c'e' sia una discreta CPU che una GPU tuto sommato abbastanza potente e nel caso si utilizzi li GPGPU ottieni dei workers davvero molto buoni in un chip solo , nel caso degli Ix invece bisogna aggiungere una VGA separata che oltre ad aggiungere costo e consumo porta via molto spazio ( se non ci sono schede aggiuntive le mainboard Llano possono venir impilate una sopra l'altra usando pochissimo spazio se si usano dissipatori a basso profilo)

m_e_l_l_o
06-03-2012, 13:40
Grazie a tutti per i preziosi suggerimenti.

troppotardi
06-03-2012, 14:01
interesting :cool:

m_e_l_l_o
06-03-2012, 18:56
Aggiungo una postilla alla discussione. Ho visto che il più famoso negozio on linedi libri americano (non posso fare nomi) è estremamente attivo anche nell'ambito del cloud computing, inclusa la parte di calcolo parallelo.
Dovendo far girare il mio modello per 6 ore al giorno, tutti il giorni, andrei a spendere qualcosa come 7000 dollari l'anno.
Spesa assolutamente in linea con l'acquisto, la gestione e le spese di un cluster home made.
Trovo questa cosa molto interessante. Ovviamente tutto è molto scalabile e si possono richiedere risorse in più o in meno a seconda delle esigenze.
Non so se esiste un tread sull'argomento, ma vi terrò informati.

Saluti

M_e_l_l_o