【发布时间】:2012-10-25 09:50:09
【问题描述】:
考虑:
void saxpy_worksharing(float* x, float* y, float a, int N) {
#pragma omp parallel for
for (int i = 0; i < N; i++) {
y[i] = y[i]+a*x[i];
}
}
和
void saxpy_tasks(float* x, float* y, float a, int N) {
#pragma omp parallel
{
for (int i = 0; i < N; i++) {
#pragma omp task
{
y[i] = y[i]+a*x[i];
}
}
}
使用任务和 omp 并行指令有什么区别?为什么我们可以用任务编写诸如归并排序之类的递归算法,但不能用工作共享?
【问题讨论】: