3.1.7 Fonction omp_set_dynamic
La fonction d' omp_set_dynamic active ou désactive le réglage dynamique du nombre de threads disponibles pour l'exécution des régions parallèles. Le format est comme suit :
#include <omp.h>
void omp_set_dynamic(int dynamic_threads);
Si les dynamic_threads prend une valeur différente de zéro, le nombre de threads utilisés pour exécuter les régions parallèles suivantes peut être ajusté automatiquement par l'environnement d'exécution au mieux utilisent des ressources système. Par conséquent, le nombre de threads spécifiés par l'utilisateur est le nombre de threads maximale. Le nombre de threads de l'équipe qui exécute une région parallèle reste fixe pour la durée de cette région parallèle et est indiqué par la fonction d' omp_get_num_threads .
Si les dynamic_threads correspond à 0, la modification dynamique est désactivé.
Cette fonction a les effets décrits ci-dessus en cas de appel d'une partie du programme où la fonction d' omp_in_parallel retourne zéro. S'il s'agit d'une partie du programme où la fonction d' omp_in_parallel retourne une valeur différente de zéro, le comportement de cette fonction n'est pas défini.
Un appel à omp_set_dynamic est prioritaire sur la variable d'environnement OMP_DYNAMIC .
La valeur par défaut pour la modification dynamique des threads implémentation-est définie. Par conséquent, les codes d'utilisateur qui dépendent d'un nombre spécifique de threads pour l'exécution correcte doivent désactiver explicitement les threads dynamiques. Les implémentations ne sont pas requises pour vous permettre de modifier dynamiquement le nombre de threads, mais elles doivent fournir l'interface pour prendre en charge la portabilité sur toutes les plateformes.
Références croisées :
la fonction d'omp_get_num_threads , consultez section 3.1.2 à la page 37.
La variable d'environnementOMP_DYNAMIC , consultez section 4,3 à la page 49.
la fonction d'omp_in_parallel , consultez section 3.1.6 à la page 38.