Frage

Ich möchte ppl vs. openmp in Bezug auf ihre Leistung vergleichen, aber keine detaillierte Untersuchung im Web finden.Ich glaube, es gibt nicht viele Leute, die mit PPL erfahren sind.

Ich entwickle meine Software unter Windows unter Verwendung von Visual Studio 2010 und möchte es nicht in kurzer Zeit in irgendwo anders portieren.

Wenn die Portabilität kein Thema ist, und nur Sorge ist die Leistung, was denkst du über diese beiden Methoden?

War es hilfreich?

Lösung

Es hängt wahrscheinlich von Ihrem Algorithmus ab. Diese Forschung zeigt jedoch an, dass PPL schneller sein kann, dann OpenMP:

http:// www.codeproject.com/articles/373305/visual-cplusplus-11-Beta-Benchmark-of-Parallel-LOO

generasacodicetagpre.

Andere Tipps

Auf MSDN gibt es eine Großer Vergleich der Eigenschaften OpenMP und CONTRT (Kern von PPL):

Das OpenMP-Modell ist ein besonders gutes Spiel für leistungsstarkes Rechenaufwand, in dem sehr große Rechenprobleme auf die Verarbeitungsressourcen eines einzelnen Computers verteilt werden. In diesem Szenario ist die Hardware-Umgebung bekannt und der Entwickler kann vernünftigerweise erwarten, einen ausschließlichen Zugriff auf Rechenressourcen zu haben, wenn der Algorithmus ausgeführt wird.

Andere, andere, weniger eingeschränkte Rechenumgebungen sind möglicherweise nicht ein gutes Spiel für OpenMP. Beispielsweise sind rekursive Probleme (z. B. der QuickSort-Algorithmus oder das Durchsuchen eines Datenbaums) mit OpenMP schwieriger zu implementieren. Die Parallel- Laufzeit ergänzt die Funktionen von OpenMP durch Bereitstellen der parallelen Musterbibliothek (PPL) und der Bibliothek der asynchronen Agenten. Im Gegensatz zu OpenMP stellt die Parallelitätslaufzeit einen dynamischen Zeitplaner bereit, der sich den verfügbaren Ressourcen anpasst und den Parallelitätsgrad als Workloads-Änderung anpasst.

so, die wichtigsten Nachteile von OpenMP:

  • statisches Sheduling-Modell.
  • enthält nicht den Abkündigungsmechanismus (sehr großer Nachteil, in vielen Paradorithmuskündigungen in der Nähe ist erforderlich).
  • enthält nicht Concurrence Agent-Ansatz.
  • Probleme mit Ausnahmen in Paralelcode.

Wenn Ihr einziges Anliegen die Leistung ist, dann, was ich denke, ist über die beiden Ansätze völlig irrelevant.Dies ist eine Frage, die von einem empirischen Ansatz auflösbar ist, nicht durch Argumentation.

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