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


static – распределение итераций цикла; размер блока – chunk



Pdf көрінісі
бет42/53
Дата07.06.2023
өлшемі6.58 Mb.
#474796
1   ...   38   39   40   41   42   43   44   45   ...   53
ParProg MPI OpenMP

staticраспределение итераций цикла; размер блока – chunk
Первый блок из chunk итераций выполняет нулевая нить, второй блок – 
следующая и т.д. до последней нити, затем распределение снова 
начинается с нулевой нити. Если значение chunk не указано, то всё 
множество итераций делится на непрерывные куски примерно 
одинакового размера (конкретный способ зависит от реализации), и 
полученные порции итераций распределяются между нитями. 
dynamic – динамическое распределение итераций с фиксированным 
размером блока: сначала каждая нить получает chunk итераций (по 
умолчанию chunk=1), та нить, которая заканчивает выполнение своей 
порции итераций, получает первую свободную порцию из chunk 
итераций. Освободившиеся нити получают новые порции итераций до тех 
пор, пока все порции не будут исчерпаны. Последняя порция может 
содержать меньше итераций, чем все остальные. 
guided – динамическое распределение итераций, при котором размер 
порции уменьшается с некоторого начального значения до величины 
chunk (по умолчанию chunk=1) пропорционально количеству ещё не 
распределённых итераций, делённому на количество нитей, выполняющих 
цикл. Размер первоначально выделяемого блока зависит от реализации. В 
ряде случаев такое распределение позволяет аккуратнее разделить работу 
и сбалансировать загрузку нитей. Количество итераций в последней 
порции может оказаться меньше значения chunk
auto – способ распределения итераций выбирается компилятором 
и/или системой выполнения. Параметр chunk при этом не задаётся. 
runtime – способ распределения итераций выбирается во время 
работы программы по значению переменной среды OMP_SCHEDULE
Параметр chunk при этом не задаётся. 
При распараллеливании цикла следует убедиться в том, что его 
итерации не имеют зависимостей, и их можно выполнять в любом 


63 
порядке. Несоблюдение данного требования приведет к получению 
некорректного результата [6,13].


Достарыңызбен бөлісу:
1   ...   38   39   40   41   42   43   44   45   ...   53




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

    Басты бет