我正在尝试在 cpp 中使用 openMP 学习并行化。我正在使用以下测试示例
#pragma parallel for num_threads( 4 )
for ( int i = 0 ; i < N ; i++ ){
for ( int j = 0 ; j < 100000 ; j++ ){
data[ i ] = data[ i ] + ( double ) i ;
}
}
我正在使用 4 个线程;使用 top (在 unix 中)我应该在 col %CPU 400% 或类似的东西中看到。但我得到了 100% 的串行执行情况。如果我测量时间,与串行执行相比没有速度增益。我无法弄清楚我做错了什么。