【发布时间】:2011-09-17 02:47:32
【问题描述】:
使用大于1的循环增量可以吗?
#pragma omp parallel for schedule(dynamic, 1000)
for (int i=0; i<100000; i+=10)
{
// do something that uses i
}
谢谢。
【问题讨论】:
-
为什么你认为这应该是个问题?
使用大于1的循环增量可以吗?
#pragma omp parallel for schedule(dynamic, 1000)
for (int i=0; i<100000; i+=10)
{
// do something that uses i
}
谢谢。
【问题讨论】:
是的。
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
【讨论】:
另一种思路是:
#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
}
【讨论】: