在正式开始前,我先说一下,我们的OpenMP编程在linux下写完以后编译工具为GCC,编译命令如下:
gcc -fopenmp filename.c -o filename
好!开始!
首先,我们学习一下循环的并行化,因为早并行编程中最重要的部分,其它废话不多说;其语法格式如下:
#pragma omp parallel for[clause[claue..]]
for(index=start;index<end;increment_expression)
{
body of loop;
}
使用上述语句,就是将循环的工作放到一个线程组里,而线程组中的每一线程完成循环中的一部分。编译指导语句的功能一直延伸到for循环结束的地方,也可以在句子后跟clause来具体说明parallel 的具体功能。
注意:praallel for 语与必须紧紧跟在编译指导语句 #pragma omp 后面,不要跟丢。
例1:向量相加
#pragma omp parallel for
for(int i=0;i<n;i++)
{
z[i]=x[i]+y[i];
}