kennen:parallel_algorithms
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | kennen:parallel_algorithms [2021-07-31 12:31] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Parallele Algorithmen ====== | ||
+ | |||
+ | ===== Ausführungsrichtlinien ===== | ||
+ | |||
+ | Viele der Algorithmen der Standardbibliothek in [[.: | ||
+ | |||
+ | <code cpp> | ||
+ | std:: | ||
+ | </ | ||
+ | lassen sich parallelisieren (seit C++17), indem vor den weiteren Parametern ein in [[.: | ||
+ | |||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | auf die Ausführungsweise angegeben wird: | ||
+ | |||
+ | <code cpp> | ||
+ | std:: | ||
+ | </ | ||
+ | Die in [[.: | ||
+ | '' | ||
+ | '' | ||
+ | '' | ||
+ | '' | ||
+ | haben parallelisierbare Pendants | ||
+ | '' | ||
+ | '' | ||
+ | bekommen. | ||
+ | |||
+ | Einige Algorithmen sind inhärent sequentiell: | ||
+ | '' | ||
+ | '' | ||
+ | '' | ||
+ | '' | ||
+ | '' | ||
+ | '' | ||
+ | '' | ||
+ | '' | ||
+ | '' | ||
+ | '' | ||
+ | |||
+ | Bei so elementaren Aufrufen wie '' | ||
+ | |||
+ | ===== Wettrennen und Verklemmungen ===== | ||
+ | |||
+ | Der Aufrufer muss sicherstellen, | ||
+ | Auch die Nutzung von Synchronisationsmitteln erfordert | ||
+ | [[http:// | ||
+ | Durch die nicht garantierte Reihenfolge können bei nicht assoziativen Vorgängen wie Gleitkommazahloperationen auch andere Ergebnisse entstehen. | ||
+ | |||
+ | ===== Kosten und Nutzen ===== | ||
+ | |||
+ | [[wpde> | ||
+ | Sequentielle Anteile und Kommunikations- und Synchronisationsaufwand stehen dem entgegen, | ||
+ | ebenso der Aufwand zum Starten und Beenden von nebenläufigen Threads. | ||
+ | Lese- und Schreibgeschwindigkeit der zu verarbeitenden Datenmengen in den Hauptspeicher sind ebenso begrenzende Faktoren. | ||
+ | Nur durch Messung ist entscheidbar, | ||
+ | |||
+ | ===== Verfügbare Implementierungen ===== | ||
+ | |||
+ | * [x] Visual Studio 2019 | ||
+ | * [x] g++10: erfordert Intel TBB und linken mit '' | ||
+ | |||
+ | |||
kennen/parallel_algorithms.txt · Zuletzt geändert: 2021-07-31 12:31 von 127.0.0.1