Un singolo computer che esegue un software multithreaded è limitato dal numero di core del processore in grado di contribuire al carico di lavoro.
Per approfittare di più core del processore su molti computer, avete bisogno di diverse cose:
1. Il vostro programma deve essere in grado di dividere il carico di lavoro tra più istanze. Questo può essere fatto attraverso la comunicazione interprocesso usando strumenti come MPI, o eseguendo più istanze a thread singolo e coordinando quale pezzo fa un particolare core del processore.
2. Avete bisogno di un'interconnessione ad alta velocità. In un singolo computer, i dati vengono passati tra i processi usando il bus di sistema. Un cluster usa una rete ad alta velocità per legare i nodi insieme in modo che i processi possano comunicare in modo efficiente. I cluster che gestisco hanno più interfacce ethernet da 10 gigabit su ogni chassis blade e ci stiamo muovendo verso infiniband per aiutare a risolvere i colli di bottiglia del traffico MPI.
La maggior parte dei giochi per PC sono programmi close-source che non hanno la capacità di distribuire il carico tra i sistemi. Sarebbe possibile scrivere un gioco del genere, ma i costi dell'hardware, dell'energia e del raffreddamento sarebbero molto alti e il ritorno sarebbe complessivamente piuttosto basso.
Detto questo, si potrebbe comprare un PC di fascia alta con più core, molta RAM, una memoria veloce e una scheda grafica di fascia alta e avere il sistema più veloce dell'isolato (per circa un anno). 😀