Параллельные секции и директива parallel sections

We use cookies. Read the Privacy and Cookie Policy

Параллельные секции и директива parallel sections

Директива parallel sections обеспечивает параллельное выполнение нескольких операторов, простых или составных.

{$omp parallel sections}

begin

секция 1;

секция 2;

...;

end;

Каждый оператор в блоке begin ... end, следующем за директивой является отдельной секцией.

{$omp parallel sections}

begin

оператор 1;

оператор 2;

begin

оператор 3;

оператор 4;

оператор 5;

end;

end;

Здесь описаны три параллельные секции, первая – оператор 1, вторая – оператор 2 и третья – блок begin ... end, состоящий из операторов 3-5.

Все переменные, описанные вне параллельных секций, будут разделяемыми, то есть, если в секциях есть обращение к таким переменным, то потоки, выполняющие эти секции, будут обращаться к одной и той же ячейке памяти. Все переменные, объявленные внутри секции, будут доступны только в той секции, в которой они объявлены.

Корректная работа параллельных секций возможна, только если секции независимы друг от друга – если они могут выполняться в любом порядке, не обращаются к одним и тем же переменным и не изменяют их.