2013-11-16 2 views
0

Если, например, я следующий цикл сделатьразделение труда в OpenMP сделать

!$OMP DO PRIVATE(i,j,k,l,...) DEFAULT(SHARED) 
do i=1,length 
    ... 
    do j=k,l 
    ... 
    end do 
end do 
!$OMP END DO 

Будет ли разделение работы между потоками быть «длина/numberofthreads»? Благодарю.

ответ

0

Расписание по умолчанию зависит от реализации. см: https://computing.llnl.gov/tutorials/openMP/

Если вы хотите, чтобы контролировать его использовать SCHEDULE(x) где х один из STATIC, DYNAMIC, GUIDED, RUNTIME, AUTO. См. Ссылку для описания.

+0

В любом случае внутренний do-loop будет частным в потоке, не так ли? – tiki

+0

Да, если вы не используете новый 'COLLAPSE', но я никогда не использовал его и не знаю его хорошо. –

+0

Как бы рухнула помощь в этом случае? Я спрашиваю об этом, потому что мои j, k, l являются частными? Или я чего-то не хватает? Благодарю. – tiki

Смежные вопросы