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 private, firstprivate et lastprivate, et les clauses (voir section 2.7.2).

  • 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, lorsque le fait de fournir une telle variable partagée serait difficile (par exemple, dans une récursion où chaque niveau nécessite une variable différente). 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++ :