URL:     https://linuxfr.org/forums/programmation-c/posts/openmp-synchronisation
Title:   OpenMP, synchronisation
Authors: marsup
Date:    2012-06-01T10:41:46+02:00
Tags:    openmp
Score:   3


Bonjour tout le monde, j'ai un problème de synchronisation avec openMP:

J'ai un morceau de code multithreadé. En fin de ce bloc, je voudrais synchroniser les données créées par mes différents process.
Pour cela, je dois rapatrier ces données dans celles du thread 0.
Je dois donc absolument attendre que ce dernier ait terminé de travailler avant de commencer la synchro. Pour l'instant, je fais ça :

```c
#pragma omp parallel
{
 Bla
 Bla
 Bla
#pragma omp barrier
 //On est certain que le thread 0 a terminé

#pragma omp critical
 {
   if(thread >0) do stuff
 }
}
```
Mon problème, c'est qu'avec une barrière, je dois attendre tout le monde, alors que je ne voudrais attendre QUE le thread 0.

Ma question est donc :
Est-il possible de bloquer les autres threads tant que le thread 0 n'est pas arrivé ? (s'il arrive en premier, on ne bloque personne)

Merci beaucoup
