Quali sono le migliori opzioni attuali per parallelizzare un'app .NET ad uso intensivo della CPU?[Chiuso]

StackOverflow https://stackoverflow.com/questions/1387

  •  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:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top