2011-09-16 116 views
2

可以使用大於1的循環增量嗎?OPenMP循環增量

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

謝謝。

+3

爲什麼你認爲這應該是一個問題? –

回答

5

是的。

允許的形式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

3

思維的另一種方式的是:

#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 
}