Функции для определения количества нитей и номера нити
Функции omp_get_thread_num и omp_get_num_threads возвращают соответственно номер нити и количество задействованных в данной точке программы нитей. В примере показано использование этих функций.
Пример 3:
Отметим, что при объявлении переменных id, nt внутри параллельной области эти переменные являются локальными (т.е. каждая нить имеет свой экземпляр этих переменных) внутри области и не существуют вне этой области.
Отметим, что, зная номер нити и их количество, можно организовать явным образом распределение работы между нитями. Так, в данном примере печать количества нитей осуществляется только нитью с номером 0.
Задания
1. Изучить Главу 1 учебного пособия по Openmp.
2. Воспроизвести на кластере Hybrilit вышеприведенные примеры по организации параллельной области, установлению количества нитей и определению номера нити и их числа.
3. Подготовить и запустить программу, в которой организовать c помощью прагмы parallel и опции num_threads параллельную область с количеством нитей, равным 8. Нить с максимальным номером должна вызвать функцию omp_get_num_threads и напечатать количество нитей в параллельном блоке. Нить-мастер (с номером 0) должна напечатать слово «Hello» и свой номер.
Дата добавления: 2020-11-23; просмотров: 136; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!