【发布时间】:2015-01-26 07:09:36
【问题描述】:
我从 openMP 开始,我想并行化这部分代码:
for (i=0 ;i<n ;i++)
for (j=1 ;j<n ;j++)
A[i][j]+=A[i][j-1];
我找到了这个答案:
#pragma omp parallel for private(i, j) shared(A, n)
for (i = 0; i < n; ++i)
for (j = 1; j < n; ++j)
A[i][j] += A[i][j-1];
我有一些问题:
- 为什么
i是私有的而不是共享的? - 关于这个答案,如果我有 4 个线程,所以每个线程执行相同的代码,我不明白如何获得与顺序代码相同的结果?
线程如何完成这项工作?我需要你的帮助。
【问题讨论】:
标签: c++ c multithreading parallel-processing openmp