Freigeben über


F. Neue Funktionen und Erläuterungen in Version 2.0

Im Anhang sind die Tonartwechsel zusammengefasst, die der Spezifikation OpenMPs C/C++ vorgenommen werden, wenn er der Version 1.0 und Version 2.0 verschoben wird.Die folgenden Elemente sind die neuen Funktionen, die der Spezifikation hinzugefügt werden:

  • Kommas sind in OpenMP-Direktiven zulässig (Abschnitt 2.1 auf Seite 7).

  • Einführung der num_threads-Klausel.Diese Klausel ermöglicht es Benutzern, eine bestimmte Anzahl von Threads für ein paralleles Konstrukt (anzufordernAbschnitt 2.3 auf Seite 8).

  • Die threadprivate-Direktiven sind so erweitert, dass Blockbereichs statische Variablen (2.7.1 Abschnitt auf Seite 23) zu übernehmen.

  • C99 Arrays variabler Länge haben vollständige Typen und können daher beliebig angegebene vollständige Typen zugelassen werden sein, z. B. in den Listen der private, firstprivateund lastprivate-Klauseln (2.7.2 Abschnitt auf Seite 25).

  • Eine private Variable in einem parallelen Bereich kann in geschachtelten - Direktive (2.7.2.1 Abschnitt auf Seite 25) erneut als privat markiert sein.

  • Die copyprivate-Klausel wurde hinzugefügt.Sie stellt einen Mechanismus bereit, um eine private Variable zu verwenden, um einen Wert aus einköpfigem eines Teams zu den anderen Membern zu übertragen.Dies ist eine Alternative zur Verwendung einer freigegebenen Variablen für den Wert, wenn eine solche freigegebene Variablen bereitstellen kann schwierig sein (z. B. in einer Rekursion, die eine andere Variable auf jeder Ebene erforderlich.)Die copyprivate-Klausel kann auf dem Einfach-Direktive (2.7.2.8 Abschnitt auf Seite 32) nur angezeigt werden.

  • Hinzufügen von Routinen omp_get_wtick und omp_get_wtime der zeitlichen Steuerung, ähnlich den MPI-Routinen.Diese Funktionen sind für das Ausführen von Wanduhr zeitlichen steuerungen notwendig (Abschnitt 3.3.1 auf Seite 44 und Abschnitt 3.3.2 auf Seite 45).

  • Ein Anhang mit einer Liste von Implementierung-definierten Verhaltens in C/C++ OpenMP wurde hinzugefügt.Eine Implementierung muss zu definieren und Dokument sein Verhalten in diesen Fällen (Anhang E auf Seite 97).

  • Die folgenden Änderungen in der vorherigen Funktionen dienen, OpenMPs API für C/C++ Spezifikation zu bestätigen oder zu korrigieren:

    • Erläutert, dass das Verhalten von omp_set_nested und omp_set_dynamic , wenn omp_in_parallel-Wert ungleich 0 (null) zurückgibt, undefined ist (3.1.7 Abschnitt auf Seite 39 und 3.1.9 Abschnitt auf Seite 40).

    • Erklärte richtungweisende Schachtelung, wenn geschachtelte Ähnlichkeit verwendet wird (Abschnitt 2.9 auf Seite 33).

    • Die Lock zerstörungs Initialisierung und die Sperren Funktionen können in einem parallelen Bereichs (3.2.1 Abschnitt auf Seite 42 und Seite 42 auf 3.2.2 Abschnitt ) aufgerufen werden.

    • Neue Beispiele wurden hinzugefügt (Anhang A auf Seite 51).