Search code examples
cmacrosopenmppragma

Conditional "pragma omp"


I am trying different kinds of parallelization using OpenMP. As a result I have several lines of #pragma omp parallel for in my code which I (un-)comment alternating. Is there a way to make these lines conditional with something like the following, not working code?

   define OMPflag 1 
   #if OMPFlag pragma omp parallel for
   for ...

Solution

  • An OpenMP parallel construct can have an if clause specified. In Fortran I'd write something like this:

    !$omp parallel if(n>25) ... 
    

    I sometimes use this when a problem might be too small to bother parallelising. I guess you could use the same approach to check a debug flag at run time. I'll leave it up to you to figure out the C++ syntax but it's probably exactly the same.