Namensräume
Varianten
Aktionen

Erweiterungen für Parallelität

Von cppreference.com
 
 
Experimentell
Technische Spezifikation
Dateisystembibliothek (Filesystem TS)
Grundlagen der Bibliothek (Library Fundamentals TS)
Grundlagen der Bibliothek 2 (Library Fundamentals TS v2)
Grundlagen der Bibliothek 3 (Library Fundamentals TS v3)
Erweiterungen für Parallelität (parallelism TS)
Erweiterungen für Parallelität 2 (Parallelism TS v2)
Erweiterungen für Nebenläufigkeit (Concurrency TS)
Erweiterungen für Nebenläufigkeit 2 (Concurrency TS v2)
Konzepte (Concepts TS)
Bereiche (Ranges TS)
Reflektion (Reflection TS)
Mathematische Spezialfunktionen (Special Functions TR)
Experimentell Nicht-TS
Pattern Matching
Lineare Algebra
std::execution
Verträge
2D-Grafik
 
 

Die C++ Extensions for Parallelism, ISO/IEC TS 19570:2015 definieren die folgenden neuen Komponenten für die C++-Standardbibliothek

Inhalt

[bearbeiten] Ausführungsrichtlinien

Die Parallelism TS beschreibt drei Ausführungsrichtlinien: sequenziell, parallel und parallel+vektor und stellt entsprechende Typen und Objekte für Ausführungsrichtlinien bereit. Benutzer können eine Ausführungsrichtlinie statisch auswählen, indem sie einen parallelen Algorithmus mit einem Ausführungsrichtlinienobjekt des entsprechenden Typs aufrufen, oder dynamisch, indem sie die Typlöschungsklasse execution_policy verwenden.

Implementierungen können als Erweiterung zusätzliche Ausführungsrichtlinien definieren. Die Semantik von parallelen Algorithmen, die mit einem Ausführungsrichtlinienobjekt eines implementierungsdefinierten Typs aufgerufen werden, ist implementierungsdefiniert.

Ausführungsrichtlinientypen
(Klasse)
Globale Ausführungsrichtlinienobjekte
(Konstante)
dynamische Ausführungsrichtlinie
(Klasse)
Prüft, ob eine Klasse eine Ausführungsrichtlinie darstellt
(Klassentemplate)

[bearbeiten] Ausnahmelisten

Definiert in Header <experimental/exception_list>
Ausnahmen, die während paralleler Ausführungen ausgelöst werden
(Klasse)

[bearbeiten] Parallelisierte Versionen vorhandener Algorithmen

Die TS stellt parallelisierte Versionen der folgenden 69 Algorithmen aus <algorithm>, <numeric> und <memory> bereit

Standardbibliotheksalgorithmen, für die parallelisierte Versionen bereitgestellt werden

[bearbeiten] Neue Algorithmen

Definiert im Header <experimental/algorithm>
ähnlich wie std::for_each, gibt aber void zurück
(function template)
wendet ein Funktions-Objekt auf die ersten n Elemente einer Sequenz an
(function template)
Definiert im Header <experimental/numeric>
(parallelism TS)
ähnlich wie std::accumulate, aber nicht-sequenziell
(Funktionstemplate) [bearbeiten]
ähnlich wie std::partial_sum, schließt das i-te Eingabeelement vom i-ten Summierergebnis aus
(function template)
ähnlich wie std::partial_sum, schließt das i-te Eingabeelement in das i-te Summierergebnis ein
(function template)
(parallelism TS)
wendet einen Funktor an, dann Reduktion außer Reihenfolge
(Funktionstemplate) [bearbeiten]
wendet einen Funktor an, dann berechnet exklusiven Scan
(function template)
wendet einen Funktor an, dann berechnet inklusiven Scan
(function template)