Для распределения итераций циклов между потоками необходимо использовать следующую директиву:
Для написания кода отдельно для каждого потока необходимо использовать следующую директиву OpenMP:
Если по завершению параллельного цикла по алгоритму нет необходимости в синхронизации, тогда в этом случае нужно использовать следующее свойство директивы:
Потоки, между которыми выполняется передача данных, должны использовать общую память. Путь переменные объявлены внутри параллельного фрагмента. Тогда для того что бы их использовать для коммуникации необходимо использовать следующие свойство директивы #pragma omp paralle:
Если при распараллеливании цикла использовалась директива #pragma omp parallel for, и программист решил распределить по три итерации на поток, то необходимо использовать следующее свойство:
Если в параллельном фрагменте используються переменные, объявленные вне параллельного фрагмента, но требуется, что бы они использовались локально в каждом потоке необходимо использовать следующее свойство директивы #pragma omp paralle:
Учебное приложение Factorization решает следующую задачу:
Цикл разработки параллельных программ обычно устроен следующим образом:
Каким образом можно ограничить случаи, когда будет создан параллельный фрагмент:
Подход, состоящий в разделении множества чисел на одинаковые части по числу потоков (например, первый поток получает множество чисел от 1 до 50000, второй - от 50001 до 100000; двухъядерный процессор):