Partager via


F. Nouvelles fonctionnalités et clarifications de la version 2.0

Cette annexe récapitule les principales modifications apportées à la spécification OpenMP C/C++ en passant de la version 1.0 à la version 2.0. Les éléments suivants sont de nouvelles fonctionnalités ajoutées à la spécification :

  • Les virgules sont autorisées dans les directives OpenMP.

  • Ajout de la num_threads clause. Cette clause permet à un utilisateur de demander un nombre spécifique de threads pour une construction parallèle.

  • La directive threadprivate a été étendue pour accepter les variables d’étendue de bloc statiques.

  • Les tableaux de longueur variable C99 sont des types complets et peuvent être spécifiés n’importe où les types complets sont autorisés, tels que dans les listes de , et les clauses (voir la section 2.7.2).lastprivate firstprivateprivate

  • Une variable privée dans une région parallèle peut être marquée à nouveau privée dans une directive imbriquée.

  • La copyprivate clause a été ajoutée. Il fournit un mécanisme permettant d’utiliser une variable privée pour diffuser une valeur d’un membre d’une équipe vers les autres membres. Il s’agit d’une alternative à l’utilisation d’une variable partagée pour la valeur lorsqu’une telle variable partagée est fournie (par exemple, dans une récursivité nécessitant une variable différente à chaque niveau). La clause copyprivate ne peut apparaître que sur la single directive.

  • Ajout de routines de minutage omp_get_wtick et omp_get_wtime similaires aux routines MPI. Ces fonctions sont nécessaires pour effectuer des minutages d’horloge murale.

  • Une annexe avec une liste de comportements définis par l’implémentation dans OpenMP C/C++ a été ajoutée. Une implémentation est nécessaire pour définir et documenter son comportement dans ces cas.

  • Les modifications suivantes permettent de clarifier ou de corriger les fonctionnalités de la spécification précédente de l’API OpenMP pour C/C++ :