Freigeben über


F. Neue Funktionen und Erläuterungen in Version 2.0

In diesem Anhang werden die wichtigsten Änderungen zusammengefasst, die an der OpenMP C/C++-Spezifikation vorgenommen wurden, um von Version 1.0 auf Version 2.0 zu wechseln. Die folgenden Elemente sind neue Features, die der Spezifikation hinzugefügt werden:

  • Kommas sind in OpenMP-Direktiven zulässig.

  • Addition der num_threads Klausel. Mit dieser Klausel kann ein Benutzer eine bestimmte Anzahl von Threads für ein paralleles Konstrukt anfordern.

  • Die Threadprivate-Direktive wurde erweitert, um statische Blockbereichsvariablen zu akzeptieren.

  • C99 Variable Length Arrays sind vollständige Typen und können an einer beliebigen Stelle vollständiger Typen angegeben werden, z. B. in den Listen von private, und firstprivatelastprivate Klauseln (siehe Abschnitt 2.7.2).

  • Eine private Variable in einem parallelen Bereich kann in einer geschachtelten Direktive erneut als privat gekennzeichnet werden.

  • Die copyprivate Klausel wurde hinzugefügt. Sie stellt einen Mechanismus bereit, mit dem eine private Variable einen Wert von einem Mitglied eines Teams an die anderen Mitglieder übertragen kann. Dies ist eine Alternative zur Verwendung einer freigegebenen Variablen für den Wert, wenn das Bereitstellen einer solchen freigegebenen Variable schwierig wäre (z. B. in einer Rekursion, die eine andere Variable auf jeder Ebene erfordert). Die copyprivate-Klausel kann nur in der single Direktive angezeigt werden.

  • Hinzufügung von Timing-Routinen omp_get_wtick und omp_get_wtime ähnlich wie die MPI-Routinen. Diese Funktionen sind erforderlich, um Die Anzeigedauern für die Wanduhr durchzuführen.

  • Ein Anhang mit einer Liste von implementierungsdefiniertem Verhalten in OpenMP C/C++ wurde hinzugefügt. Eine Implementierung ist erforderlich, um sein Verhalten in diesen Fällen zu definieren und zu dokumentieren.

  • Die folgenden Änderungen dienen dazu, Features in der vorherigen OpenMP-API-Spezifikation für C/C++ zu klären oder zu korrigieren: