Configurazione superfast PC [chiusa]


2

Ho un programma molto specifico che ho bisogno di correre il più velocemente possibile. Desidero acquistare un PC super-veloce per eseguirlo. Il programma è già stato scritto per utilizzare più core e su una macchina N-core funzionerà quasi N volte più velocemente. Il programma impiega quasi tutto il suo tempo a eseguire operazioni integer senza accesso al disco e pochissimo IO, quindi non mi interessa affatto la grafica o le prestazioni del disco rigido.

Sono nervoso di cose come il raffreddamento a liquido e l'overclocking e sospetto che la piccola velocità extra che ottieni sia piuttosto scadente per il tuo dollaro (sentiti libero di persuadermi altrimenti). Dalla mia conoscenza limitata finora, ho il sospetto che il meglio che posso fare è trovare una scheda madre che possa richiedere due processori Intel Quad Core? - anche se non ho idea di chi li faccia.

Ho notato che molto spesso, quando si cerca da PC insolitamente veloci, il prezzo per unità di potenza di elaborazione inizia a crescere quasi esponenzialmente sopra un certo livello ... Quindi immagino di cercare qualcosa che sia il più veloce possibile senza diventare molto scarso valore per soldi.

Si prega di avvisare,

MODIFICARE: Il programma è mio (e quindi può essere modificato se necessario). Usa più thread. Funziona su Windows. Ho una versione linux con interfaccia testuale, ma questa è l'ultima risorsa. Il mio budget è intorno al campo da baseball di $ 2500.


Hai bisogno anche della RAM veloce?
Greg

Non lo so. Non so come dire. Il programma è molto grande quindi c'è sicuramente il rischio che parti vitali non siano tutte nella cache, ma i cache possono fare trucchi intelligenti (così mi viene detto).
Mick

meglio supporre che hai bisogno di RAM veloce, quindi ...
quack quixote

Sono l'unico ad essere incredibilmente curioso di ciò che fa questa applicazione?
stone

È questo: www.goplusplus.com
Mick

Risposte:


2

Non ho idea di dove si trovi il tuo budget, quindi non mi spari per averlo suggerito.

Se sei follemente ricco, puoi provare a guardare i server Blade. Queste cose a volte andranno fino a 4 processori quad-core (forse anche ipertestuali come i7) su ciascun blade. Quindi è possibile impilare ciascuna lama per lavorare l'una con l'altra.

Ovviamente questo sta andando verso il genere del supercomputer.

Se guardi bene, sono sicuro che puoi trovare mobos a 4 processori in giro. Forse anche per la i7.

http://www.newegg.com/Product/Product.aspx?Item=N82E16813151204R è un esempio di scheda madre quadrupla.


Purtroppo non sono "follemente ricco" :-( ma le schede madri che gestiranno 4 processori separati certamente mi interessano.Mi sono più interessato ai processori Intel, ho sentito che sono attualmente più veloci di AMD per l'elaborazione dei numeri interi. quad "e la scheda madre in google ottieni un milione di hit riguardanti le schede madri che contengono un singolo processore quad-core, quindi la ricerca è piuttosto complicata.
Mick

Se si utilizza un sistema con molte CPU, assicurarsi che il sistema operativo in esecuzione supporti l'utilizzo di tutti i core. A volte il sistema operativo è limitato a una CPU fisica, a volte è limitato a un limite superiore sui core, a volte entrambi. Alcuni sistemi operativi non sono limitati.
Skizz

Userò Windows (probabilmente Windows 7).
Mick

2
La versione economica di Win7 supporta solo un socket mentre i più costosi (pro, enterprise e ultimate) supportano 2 socket (in base a questo: en.wikipedia.org/wiki/Windows_7_editions#Comparison_chart ). Se il tuo MoBo ha più di due socket, hai bisogno di un sistema operativo diverso.
Skizz

3
Windows 7 supporta 2 SOCKETS - non 2 Core. Può supportare 8+ core ... ma solo su due socket (il che significa che due CPU Quad Core in due SOCKET dovrebbero fornire 8 core del processore utilizzabili. CREDO che siano in realtà 16 core max).
Multiverse IT

0

Ci sono molti parametri che influenzano le prestazioni di un PC. Hardware e software devono collaborare per ottenere le migliori prestazioni. Ad esempio, se stai facendo un sacco di grafica in tempo reale, si consiglia una buona o due schede video. Se si esegue solo la numerazione, non è necessaria necessariamente una scheda grafica (è possibile configurare e mantenere il sistema utilizzando una shell remota?).

Quindi, è necessario analizzare cosa sta facendo il software e quali componenti avranno il maggiore impatto sulle prestazioni del sistema.

L'approccio è lo stesso dell'ottimizzazione del software, solo tu stai ottimizzando i sistemi.

  • Misura le tue prestazioni e analizza dove sono i colli di bottiglia (il bit sta rallentando tutto il resto).
  • Aumentare le specifiche del collo di bottiglia (CPU più veloce, più RAM, disco rigido più veloce, ecc.).
  • Ripetere.

Il tuo software può scalare su più PC? Una possibile soluzione è ottenere molti PC veramente economici e lenti e collegarli tutti insieme per creare un PC multicore virtuale super-parallelo.


Ri: "Il tuo software può scalare su più PC?" - il programma utilizza più thread. C'è un modo di multi-threading su diversi PC?
Mick

2
@Mick: non molto facilmente, dovrebbe essere gestito a livello di sistema operativo e non ci sono molti di quelli in giro. La soluzione PC multiplo potrebbe funzionare solo se il software può essere avviato e configurato per elaborare solo un sottoinsieme di tutti i dati. Quindi PC1 elabora i dati da 0 a n, PC2 fa da n + 1 a 2n, PC3 da 2n + 1 a 3n e così via. Non hai specificato cosa sia il software, quindi non so se è possibile.
Skizz

1
Dipende interamente da quale lingua / librerie hai scritto il tuo codice per sapere se può essere ridimensionato su macchine. XGrid / .NET Remoting / DCOM sono opzioni.
JBRWilkinson

0

Le linee di prodotti server offrono cpus a sei core. Se hai un budget limitato, però, otterrai molto più valore per il tuo buck passando a Linux - che consentirà l'uso di tutti i core, la memoria, ecc. Disponibili. Lo sforzo di porting è probabilmente inferiore alla licenza del massimo -alla versione per Windows di cui avresti bisogno.

Presumo, dal momento che sei molto orientato alle prestazioni, che stai già utilizzando un linguaggio completamente compilato (non .NET, ad esempio), almeno per le parti critiche per le prestazioni della tua applicazione.


Sto usando C ++. È lì qualunque versione di Windows che supporta & gt; 2 CPU fisiche?
Mick

Forse server 2008? Sarebbe azzoppato se non potesse.
Phoshi

Dipende dalla versione di Windows Server 2008, ma il massimo è 64 socket: microsoft.com/windowsserver2008/en/us/r2-compare-specs.aspx
sblair

Il 6 core cpus del server amd (solo quelli che conosco) ha più senso per una cosa della densità di potenza, per la maggior parte dei carichi di lavoro sono paragonabili al quad Intel.
Ronald Pottol

0

Un PC basato su un Intel Core i7 860 dovrebbe essere abbastanza veloce ... 4 core fisici più 4 hyperthreaded quindi il sistema operativo vede in tutto 8 core. Queste CPU supportano anche la RAM DDR3 1333 per impostazione predefinita. Di recente ho costruito un PC basato su questa CPU e ora sono in grado di transcodificare i video (da mpeg2 a mp4) a più del doppio della velocità rispetto al mio vecchio PC Quad Core Q6600.


0

L'attuale Mac Pro può eseguire Mac OS X, Windows o Linux e può essere acquistato con due processori Nehalem quad-core dotati di Hyper-Threading, per un totale di 16 core virtuali. Vedi www.apple.com/it/macpro per i dettagli.


Perché il downvote senza commenti? MacPro può eseguire Windows e ha un budget limitato ...?
JBRWilkinson

0

Per $ 2500 è possibile acquistare 8 PS3. Collegale tutti insieme a Ethernet e configurane uno come "leader" che distribuisce i carichi di lavoro. Avrai una configurazione molto più veloce di qualcosa che sarebbe in un PC da $ 2500. Ogni PS3 ha 8 SPE (Processori) e un PPE (Power Processor Element) che funge da controller per gli 8 SPE. Puoi realisticamente usare solo 7 SPE mentre il sistema ti ruba uno. Quindi i tempi di 8 PS3 7 processori sono 56 core. Considerando che hai detto che il tuo codice scala N-Core che è 7 volte più veloce di due processori 4 core su una singola scheda madre.


1
Sì, ora tutto ciò che deve fare è riscrivere la sua app per la stranissima configurazione della CPU della PS3 (una CPU PPC che non fa branching bene e 8 DSP ognuno dei quali ha 256KB di memoria propria (non un cash, il programmatore deve spostare i dati dentro e fuori dalla memoria principale o tra di essi.) Hella veloce, se il tuo codice funziona per questo, e tu fai il lavoro. Hai anche problemi di larghezza di banda di memoria.
Ronald Pottol

Non ho detto che sarebbe stato facile;)
Marcin

Questo sembra essere un documento interessante per comprendere i punti di forza e le limitazioni del clustering PS3: netlib.org/lapack/lawnspdf/lawn185.pdf
alfplayer
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.