Extensions for parallelism
Die C++-Erweiterungen für Parallelität, ISO/IEC TS 19570:2015 definiert die folgenden neuen Komponenten für die C++-Standardbibliothek:
Inhaltsverzeichnis |
Ausführungsrichtlinien
Der Parallelismus TS beschreibt drei Ausführungsrichtlinien:
sequentiell
,
parallel
, und
parallel+vector
, und stellt entsprechende Ausführungsrichtlinien-Typen und -Objekte bereit. Benutzer können eine Ausführungsrichtlinie statisch auswählen, indem sie einen parallelen Algorithmus mit einem Ausführungsrichtlinien-Objekt des entsprechenden Typs aufrufen, oder dynamisch durch Verwendung der typgelöschten
execution_policy
-Klasse.
Implementierungen können zusätzliche Ausführungsrichtlinien als Erweiterung definieren. Die Semantik von parallelen Algorithmen, die mit einem Ausführungsrichtlinienobjekt eines implementierungsdefinierten Typs aufgerufen werden, ist implementierungsdefiniert.
|
Definiert im Header
<experimental/execution_policy>
|
|
|
Ausführungsrichtlinien-Typen
(Klasse) |
|
|
Globale Ausführungsrichtlinien-Objekte
(Konstante) |
|
|
Dynamische Ausführungsrichtlinie
(Klasse) |
|
|
Prüft, ob eine Klasse eine Ausführungsrichtlinie repräsentiert
(Klassentemplate) |
|
Ausnahmelisten
|
Definiert in Header
<experimental/exception_list>
|
|
|
Ausnahmen, die während paralleler Ausführungen ausgelöst wurden
(Klasse) |
|
Parallelisierte Versionen bestehender Algorithmen
Der TS stellt parallelisierte Versionen der folgenden 69 Algorithmen aus <algorithm>, <numeric> und <memory> bereit:
Neue Algorithmen
|
Definiert im Header
<experimental/algorithm>
|
|
|
ähnlich wie
std::for_each
, gibt jedoch void zurück
(Funktions-Template) |
|
|
wendet ein Funktionsobjekt auf die ersten n Elemente einer Sequenz an
(Funktions-Template) |
|
|
Definiert im Header
<experimental/numeric>
|
|
|
(parallelism TS)
|
ähnlich wie
std::accumulate
, jedoch außerhalb der Reihenfolge
(Funktions-Template) |
|
ähnlich wie
std::partial_sum
, schließt das i
te
Eingabeelement von der i
ten
Summe aus
(Funktions-Template) |
|
|
ähnlich wie
std::partial_sum
, schließt das i
te
Eingabeelement in der i
ten
Summe ein
(Funktions-Template) |
|
|
(parallelism TS)
|
wendet einen Funktor an und reduziert dann außerhalb der Reihenfolge
(Funktions-Template) |
|
wendet einen Funktor an und berechnet dann exklusiven Scan
(Funktions-Template) |
|
|
wendet einen Funktor an und berechnet dann inklusiven Scan
(Funktions-Template) |
|