parallel processing - Was sind die derzeit besten Optionen für die Parallelisierung einer CPU?

Translate

Dies ist eine offene Frage. Welche Ansätze sollte ich berücksichtigen?

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

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 abschneidet 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 funktionsfähiges Design haben, lesen Sie die Artikel im Thema "Parallelität" im Archiv des MSDN-Magazins(Verknüpfung), besonders alles, was von Jeff Richter geschrieben wurde. Diese geben Ihnen die Grundlagen für die Threading-Konstrukte, die für Windows und .NET spezifisch sind. (Der Multithreading-Abschnitt in Richters "CLR via C #"(Amazonas)ist kurz, aber sehr aufschlussreich - sehr zu empfehlen.)

Quelle
Translate

Es gibt einige parallele Erweiterungen für .NET, die derzeit getestet werden und bei Microsoft erhältlich sindParallel 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 sind aktiviertKanal 9.

Quelle
Moses Lee
Translate

Ich denke, wir könnten auch nicht .NET-spezifische Ansätze für die Parallelverarbeitung einbeziehen, wenn diese zu den besten Optionen gehören, die in Betracht gezogen werden sollten.

Quelle
Translate

@ Larsenal

Wenn Sie außerhalb von .NET verzweigen möchten, wurde viel über Intel diskutiertBausteine einfädelnDies ist eine parallele Bibliothek für C ++.

Quelle
Translate

Es gibt viele Optionen und die beste Lösung hängt von der Art des Problems ab, das Sie lösen möchten. Wenn Sie versuchen, eine zu lösenpeinlich parallelDas Problem, dann die Aufgaben zu teilen und zu parallelisieren, wird trivial sein. In diesem Fall besteht die Herausforderung darin, die verwendeten Daten zu verteilen und zu verwalten.

Einige Vorschläge wären:

Quelle