Was sind derzeit die besten Optionen zur Parallelisierung einer CPU-intensiven .NET-App?[geschlossen]

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

  •  08-06-2019
  •  | 
  •  

Frage

Dies ist eine offene Frage.Welche Ansätze sollte ich in Betracht ziehen?

Keine korrekte Lösung

Andere Tipps

Ihr erster Schritt besteht darin, die Parallelität in Ihrem Problem zu finden und zu verstehen.Es ist wirklich einfach, Multithread-Code zu schreiben, der nicht besser funktioniert als der Single-Thread-Code, den er ersetzt.„Muster für die parallele Programmierung“ (Amazonas) ist eine großartige Einführung in die Schlüsselkonzepte.

Sobald Sie ein praktikables Design haben, beginnen Sie mit der Lektüre der Artikel im Thema „Parallelität“ in den Archiven des MSDN Magazine (Verknüpfung), insbesondere alles, was von Jeff Richter geschrieben wurde.Dadurch erhalten Sie einen Überblick über die für Windows und .NET spezifischen Threading-Konstrukte.(Der Multithreading-Abschnitt in Richters „CLR via C# (Amazonas)ist kurz, aber sehr aufschlussreich – sehr zu empfehlen.)

Es gibt einige parallele Erweiterungen für .NET, die derzeit getestet werden und bei Microsoft erhältlich sind Parallel Computing Developer Center.Sie haben ein paar interessante Elemente, die Sie erwarten würden, wie Parallel foreach und eine parallele Version von LINQ namens PLINQ.Einige der besten Informationen zu den Erweiterungen finden Sie hier Kanal 9.

Ich denke, wir könnten auch nicht-.NET-spezifische Ansätze zur Parallelverarbeitung einbeziehen, wenn diese zu den besten Optionen gehören, die man in Betracht ziehen sollte.

@Larsenal

Wenn Sie außerhalb von .NET verzweigen möchten, gibt es viele Diskussionen über Intel Bausteine ​​einfädeln Das ist eine parallele Bibliothek für C++.

Es gibt viele Möglichkeiten und die beste Lösung hängt von der Art des Problems ab, das Sie lösen möchten.Wenn Sie versuchen, ein Problem zu lösen peinlich parallel Problem, dann wird das Aufteilen und Parallelisieren der Aufgaben trivial sein.In diesem Fall besteht die Herausforderung darin, die verwendeten Daten zu verteilen und zu verwalten.

Einige Vorschläge wären:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top