Bonjour

Je viens de commencer à utiliser OpenMP et je découvre peu à peu les différentes possibilités offertes par cette bibliothèques. Cepdnant, je n'arrive pas à répondre à 2 de mes questions :

1. Doit on spécifier shared ou private pour les variables déclarés à l'intérieur d'une zone parallélisée?
J'ai l'impression qu'elles sont forcément privée, puisque sinon, leur utilisation/initialisation serait périlleuse (enfin, sauf avec l'aide de zone critical ou autre, mais cela serait vraiment pas top...)

Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
#pragma omp parallel 
{
ma_liste* une_nouvelle_liste;
 
 
}
2. Dans le cas d'une fonction récursive, j'ai pensé à utiliser des sections pour paralléliser les différents appels récursif (quicksort). Cependant, cela implique de pouvoir faire de la parallélisation imbriquée et je ne sais pas si cela est supporté par l'archi qui fera tourner le programme...
Ma question principale repose sur le fait de pouvoir ou non faire appel à une pool de thread jusqu'a épuisement pour paralléliser le tout.

Car dans mon cas, j'ai une boucle principale exécutée en parallèle suivi d'une mise en commun des résultats. Ensuite, une seule thread s'occupe de trier la liste complète. J'aurais voulu pouvoir utiliser les threads inactives pour aider au tri... Est-ce possible sans pour autant fermer la zone parallel global entre ces 2 actions?

Merci d'avance