single

 

For the latest documentation on Visual Studio 2017, see Visual Studio 2017 Documentation.

Lets you specify that a section of code should be executed on a single thread, not necessarily the master thread.

#pragma omp single [clauses]   
{  
   code_block   
}  

Parameters

clause (optional)
Zero or more clauses. See the Remarks section for a list of the clauses supported by single.

The single directive supports the following OpenMP clauses:

The master directive lets you specify that a section of code should be executed only on the master thread.

For more information, see 2.4.3 single Construct.

// omp_single.cpp  
// compile with: /openmp   
#include <stdio.h>  
#include <omp.h>  
  
int main() {  
   #pragma omp parallel num_threads(2)  
   {  
      #pragma omp single  
      // Only a single thread can read the input.  
      printf_s("read input\n");  
  
      // Multiple threads in the team compute the results.  
      printf_s("compute results\n");  
  
      #pragma omp single  
      // Only a single thread can write the output.  
      printf_s("write output\n");  
    }  
}  

read input  
compute results  
compute results  
write output  

Directives

Show: