说我有一个循环
for(int i = 0; i < 1000; i++){
sum += i;
}
如果我使用OpenMP加速它,这个for循环如何映射到4个不同的核心?
我知道它使用fork和join,我的意思是它就像i = 0表示核0,i = 1表示核1和等或i = 0表示核0,i = 249表示核1,i = 499表示核心2等。
谢谢,
鲍勃
答案 0 :(得分:1)
根据this presentation ,它取决于编译器实现而不是OpenMP规范,但编译器可能使用i = 0表示核0,i = 249表示核1,等等。
另外,请确保您是sum
的缩减变量,否则您的示例中会出现竞争条件。