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 означает, что всем
переменным параллельной области должен быть явно назначен класс.
Достарыңызбен бөлісу: