Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce chapitre décrit les variables d’environnement d’API C et C++ OpenMP (ou des mécanismes spécifiques à la plateforme similaires) qui contrôlent l’exécution du code parallèle. Les noms des variables d’environnement doivent être en majuscules. Les valeurs qui leur sont attribuées sont insensibles à la casse et peuvent avoir des espaces blancs au début et à la fin. Les modifications apportées aux valeurs après le démarrage du programme sont ignorées.
Les variables d’environnement sont les suivantes :
- OMP_SCHEDULE définit le type de planification d’exécution et la taille de bloc.
- OMP_NUM_THREADS définit le nombre de threads à utiliser pendant l’exécution.
- OMP_DYNAMIC active ou désactive l’ajustement dynamique du nombre de threads.
- OMP_NESTED active ou désactive le parallélisme imbriqué.
Les exemples de ce chapitre montrent uniquement comment ces variables peuvent être définies dans des environnements csh (Unix C Shell). Dans les environnements Korn shell et DOS, les actions sont similaires :
csh :
setenv OMP_SCHEDULE "dynamic"
Ksh:
export OMP_SCHEDULE="dynamic"
DOS :
set OMP_SCHEDULE="dynamic"
4.1 OMP_SCHEDULE
OMP_SCHEDULE s’applique uniquement aux forparallel for directives qui ont le type runtime de planification. Le type de planification et la taille de bloc pour toutes ces boucles peuvent être définis au moment de l’exécution. Définissez cette variable d’environnement sur n’importe quel type d'horaire reconnu et sur une taille de segment facultative.
Pour for et parallel for les directives qui ont un type de planification autre que runtime, OMP_SCHEDULE est ignoré. La valeur par défaut de cette variable d’environnement est définie par l’implémentation. Si la chunk_size facultative est définie, la valeur doit être positive. Si chunk_size n’est pas définie, une valeur de 1 est supposée, sauf lorsque la planification est static. Pour un ordonnancement static, la taille par défaut du bloc est déterminée par l’espace d’itération de boucle divisé par le nombre de threads appliqués à la boucle.
Exemple :
setenv OMP_SCHEDULE "guided,4"
setenv OMP_SCHEDULE "dynamic"
Références croisées
- Directive for
- Directive de boucle parallèle
4.2 OMP_NUM_THREADS
La OMP_NUM_THREADS variable d’environnement définit le nombre par défaut de threads à utiliser pendant l’exécution.
OMP_NUM_THREADS est ignoré si ce numéro est explicitement modifié en appelant la routine de omp_set_num_threads bibliothèque. Elle est également ignorée s’il existe une clause explicite num_threads sur une parallel directive.
La valeur de la variable d’environnement OMP_NUM_THREADS doit être un entier positif. Son effet dépend du fait que l’ajustement dynamique du nombre de threads est activé. Pour obtenir un ensemble complet de règles sur l’interaction entre la variable d’environnement et l’ajustement OMP_NUM_THREADS dynamique des threads, consultez la section 2.3.
Le nombre de threads à utiliser est défini par l’implémentation si :
- la
OMP_NUM_THREADSvariable d’environnement n’est pas spécifiée, - la valeur spécifiée n’est pas un entier positif, ou
- la valeur est supérieure au nombre maximal de threads que le système peut prendre en charge.
Exemple :
setenv OMP_NUM_THREADS 16
Références croisées
- num_threads clause
- Fonction omp_set_num_threads
- fonction omp_set_dynamic
4.3 OMP_DYNAMIC
La OMP_DYNAMIC variable d’environnement active ou désactive l’ajustement dynamique du nombre de threads disponibles pour l’exécution de régions parallèles.
OMP_DYNAMIC est ignoré lorsque l’ajustement dynamique est explicitement activé ou désactivé en appelant la routine de omp_set_dynamic bibliothèque. Sa valeur doit être TRUE ou FALSE.
Si OMP_DYNAMIC est défini à TRUE, le nombre de threads utilisés pour l'exécution des régions parallèles peut être ajusté par l'environnement d'exécution afin de mieux utiliser les ressources système. Si OMP_DYNAMIC est défini sur FALSE, l’ajustement dynamique est désactivé. La condition par défaut est définie par l’implémentation.
Exemple :
setenv OMP_DYNAMIC TRUE
Références croisées
4.4 OMP_NESTED
La OMP_NESTED variable d’environnement active ou désactive le parallélisme imbriqué, sauf si le parallélisme imbriqué est activé ou désactivé en appelant la routine de omp_set_nested bibliothèque. Si OMP_NESTED est défini sur TRUE, le parallélisme imbriqué est activé. Si OMP_NESTED est défini sur FALSE, le parallélisme imbriqué est désactivé. La valeur par défaut est FALSE.
Exemple :
setenv OMP_NESTED TRUE
Référence croisée
- Fonction omp_set_nested