Приращение цикла OPenMP - PullRequest
       3

Приращение цикла OPenMP

1 голос
/ 16 сентября 2011

Можно ли использовать шаг приращения больше 1?

#pragma omp parallel for schedule(dynamic, 1000)
for (int i=0; i<100000; i+=10)
{
    // do something that uses i
}

Спасибо.

Ответы [ 2 ]

4 голосов
/ 16 сентября 2011

Да.

Допустимая форма для цикла for:

for (init-expr; test-expr; incr-expr) structured-block

Где incr_expr - это любое из:

++var
var++
--var
var--
var += incr
var -= incr
var = var + incr
var = incr + var
var = var - incr

См. http://www.openmp.org/mp-documents/OpenMP3.1.pdf стр. 40.

2 голосов
/ 16 сентября 2011

Другой способ думать об этом:

#pragma omp parallel for schedule(dynamic, 1000)
for (int i=0; i<100000; i+=10)
{
    // do something that uses i
}

Может быть переписан как

#pragma omp parallel for schedule(dynamic, 1000)
for (int j=0; j<10000; j++)
{
    i = 10*j;
    // do something that uses i
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...