Для распределения работы в рамках ОреnМР можно использовать четыре варианта:

  1. программирование на низком уровне (OMP_GET_THREAD_NUM() );
  2. директива for для параллельного выполнения циклов;
  3. директива SECTIONS для параллельного выполнения независимых фрагментов программы (SECTIONS{ [#pragma omp section{ }]...} );
  4. директива SINGLE для однократного выполнения участка кода (SINGLE{...}).