OpenMP and Multithreading: Difference between revisions

From LPTMS Wiki
Jump to navigation Jump to search
(Created page with "=== simple parallelization === * brute force loop parallelization with direct access to elements using [] (for instance with int[], vectors<T>, valarray<T>...) <source lang="cp...")
(No difference)

Revision as of 10:29, 7 April 2011

simple parallelization

  • brute force loop parallelization with direct access to elements using [] (for instance with int[], vectors<T>, valarray<T>...)

<source lang="cpp"> Container cont;

  1. pragma omp parallel for

for(int i=0; i < cont.size(); i++)

  foo(cont[i]);

</source>


  • with stl iterators on containers, provided foo() does independent processes:

<source lang="cpp"> Container cont; Container::iterator It;

  1. pragma omp parallel private(It)

{

   for(It = cont->begin(); It != cont->end(); It++)
   {
  1. pragma omp single nowait

{

    foo(It);

}

   }

} </source>