sospetto che presto esaurire la velocità migliorando le possibilità di filettatura su più core in un singolo computer.modello per NET parallelismo di là di un singolo computer
Cosa tavolo del programmatore .NET bisogno di imparare a muoversi un problema parallelo realizzabile su più computer? La mia preferenza è di ridurre al minimo lo sforzo di programmazione del ciclo di vita totale, quindi sarebbe preferibile se ci fossero cambiamenti minimi tra la distribuzione locale e la distribuzione fuori sede.
Rispetto al programmatore di ore-uomo, è Linux, LAMP o qualche altra risma modo migliore di C# .NET su Windows per una tale domanda?
Edit: Alcune informazioni aggiuntive dai miei commenti qui sotto. La parte ad alta intensità di calcolo del problema può essere arbitrariamente grande così i costi generali da distribuire/ricombinare non sono un problema perché l'overhead sarà solo una piccola percentuale del tempo devi aspettare un risultato. Questo è un team di sviluppo one man. Solo un suggerimento e non so se è buono o no: come su WCF e XML come mezzo per distribuire il problema in modo completamente on-premise Azure-ignorante e la fiducia che si sarà (un giorno) il lavoro su Azure senza modifiche e senza i vantaggi di essere Azure consapevoli. Questo è solo un tutta da idea e spero che qualcuno ha un migliore, anche se non è una soluzione di Windows .
Un'altra modifica: Digipede ha un'offerta per il miglioramento delle prestazioni e un documento sulla distinzione tra un cluster e una griglia.
http://www.digipede.net/downloads/Digipede_CCS_Whitepaper.pdf
Dal momento che il mio problema è più di tipo grid di cluster e voglio farlo a buon mercato, io cerco solo l'approccio WCF.
Se la tua applicazione è intensa da un punto di vista computazionale con molte operazioni di tipo vettoriale in parallelo, potresti controllare CUDA, che ti consente di usare una <1.000.000 schede grafiche come un piccolo super-computer. http://www.nvidia.com/object/cuda_home_new.html –
Grazie, ma il problema con le schede aggiuntive è che ci sarà un limite al numero di carte che possono essere aggiunte durante il ciclo di vita. Quindi se il software ha una durata di 10 anni, forse nell'anno 8 o anche nell'anno 1, il limite è raggiunto. – H2ONaCl
Se il tuo algoritmo non è in modo imbarazzante parallelizzabile, la sua suddivisione su macchine non aiuta. –