Quali sono le migliori opzioni attuali per parallelizzare un'app .NET ad uso intensivo della CPU?[Chiuso]
-
08-06-2019 - |
Domanda
Questa è una domanda a risposta aperta.Quali approcci dovrei considerare?
Nessuna soluzione corretta
Altri suggerimenti
Il primo passo è trovare e comprendere il parallelismo nel tuo problema.È davvero semplice scrivere codice multi-thread che non funzioni meglio del codice a thread singolo che sostituisce."Modelli per la programmazione parallela" (Amazzonia) è un'ottima introduzione ai concetti chiave.
Una volta ottenuta una progettazione praticabile, iniziare a leggere gli articoli nell'argomento "Concurrency" negli archivi di MSDN Magazine (collegamento), in particolare qualsiasi cosa scritta da Jeff Richter.Questi ti forniranno gli elementi pratici sui costrutti di threading specifici di Windows e .NET.(La sezione multi-threading in "CLR via C#" di Richter (Amazzonia)è breve, ma molto approfondito - altamente raccomandato.)
Esistono alcune estensioni parallele a .NET attualmente in fase di test e disponibili presso Microsoft Centro per sviluppatori di calcolo parallelo.Hanno alcuni elementi interessanti che ti aspetteresti come Parallel foreach e una versione parallela di LINQ chiamata PLINQ.Alcune delle migliori informazioni sulle estensioni sono attive Canale 9.
Penso che potremmo includere anche approcci non specifici di .NET all'elaborazione parallela se queste sono tra le migliori opzioni da considerare.
@Larsenal
Se vuoi ramificarti al di fuori di .NET ci sono state molte discussioni su Intel Blocchi di creazione della filettatura che è una libreria parallela per C++.
Esistono molte opzioni e la soluzione migliore dipenderà dalla natura del problema che stai cercando di risolvere.Se stai cercando di risolvere un imbarazzantemente parallelo problema quindi dividere e parallelizzare i compiti sarà banale.In tal caso la sfida arriverà nella distribuzione e nella gestione dei dati utilizzati.
Alcuni suggerimenti sarebbero:
- Griglia del GHIACCIO che ha collegamenti per .Net e altri linguaggi comuni
- Velocità che è la versione Microsoft di Oracle (Tangersol) Coherence
- La prossima offerta HPC di Microsoft Server del cluster di calcolo
- Server della griglia di sinapsi dei dati