Н., Пескова Е. Е., Шаманаев П. А. Основы параллельного программирования с использованием технологий mpi и openmp учебное пособие саранск издательство свмо 2013 2



Pdf көрінісі
бет31/53
Дата07.06.2023
өлшемі6.58 Mb.
#474796
1   ...   27   28   29   30   31   32   33   34   ...   53
ParProg MPI OpenMP

3.3 Основные конструкции OpenMP 
 
3.3.1 Параллельные секции, переменные среды и замер времени 
 
Параллельная область задается при помощи директивы parallel


50 
#pragma omp parallel [опция [[, ] опция …] 
Рассмотрим возможные опции данной директивы. 
num_threads (целочисленное выражение)задание количества нитей
которые будут выполнять параллельную область; по умолчанию 
выбирается последнее значение, установленное с помощью функции 
omp_set_num_treads(), или значение переменной OMP_NUM_THREADS
Пример 3.1.
int main() 

 
omp_set_num_threads(4); 
 
 
#pragma omp parallel

 
printf ("Hello, world!"); 

return 0; 

В данном примере создается 4 нити, каждая из которых выводит на 
экран строку «Hello, world!».
if(условие) – определяет условие выполнения параллельных потоков 
в последующем параллельном структурном блоке; если условие 
принимает значение истина, то потоки в последующем параллельном 
структурном блоке выполняются, в противном случае не выполняются. 
shared(список) – задает список переменных, размещающихся в 
одной и той же области памяти для всех потоков. 
private(список) – задает список переменных, локальных для каждого 
из параллельных потоков; в каждом из потоков эти переменные имеют 
собственные значения и относятся к различным областям памяти: 
локальным областям памяти каждого конкретного параллельного потока. 
default(shared | none) – всем переменным параллельной области
которым явно не назначен класс shared; none означает, что всем 
переменным параллельной области должен быть явно назначен класс. 


Достарыңызбен бөлісу:
1   ...   27   28   29   30   31   32   33   34   ...   53




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет