openmp并行化示例
时间: 2023-07-07 09:43:28 浏览: 94
C 代码 使用 OpenMP 并行化 Dijkstra 的简单示例 图形的最小距离算法.rar
下面是一个使用OpenMP并行化处理循环的示例代码:
```c++
#include <iostream>
#include <omp.h>
int main() {
const int N = 1000000;
double x[N], y[N];
// 初始化数组
for (int i = 0; i < N; i++) {
x[i] = i;
y[i] = 0;
}
#pragma omp parallel for
for (int i = 0; i < N; i++) {
y[i] = 2 * x[i] + 1; // 并行执行这个计算
}
// 输出结果
for (int i = 0; i < N; i++) {
std::cout << y[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的示例中,我们使用OpenMP并行化处理了一个简单的循环,计算出了y数组的值。使用#pragma omp parallel for指令,我们告诉编译器将循环并行化处理,使每个线程处理循环中的某个迭代。在这个例子中,我们没有指定要使用多少线程来并行化计算,因此OpenMP会默认使用所有可用的线程。
阅读全文