Функции для определения количества нитей и номера нити



 

Функции 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!