【发布时间】:2021-04-28 11:33:44
【问题描述】:
我的代码有问题,它应该打印一定数量的出现次数。
我想用 OpenMP 并行化这段代码,我尝试对数组使用归约,但它显然没有按我的意愿工作。
错误是:“分段错误”。一些变量应该是私有的吗?还是我尝试使用减少的方式有问题?
我认为每个线程都应该计算数组的一部分,然后以某种方式合并它。
#pragma omp parallel for reduction (+: reasult[:i])
for (i = 0; i < M; i++) {
for(j = 0; j < N; j++) {
if ( numbers[j] == i){
result[i]++;
}
}
}
N 是一个大数字,告诉我有多少个数字。 Numbers 是所有数字的数组和每个数字之和的结果数组。
【问题讨论】:
标签: arrays c multithreading parallel-processing openmp