并行计算-openMP学习笔记(2)

        在正式编写并行程序前,需要先了解一下共享任务结构。所谓共享任务结构,即将结构中所包含的代码分给线程组中各个线程去执行。第一个线程为0,也即主线程,在共享任务结构的入口没有路障,而出口(即结束处)有一个隐含的路障,只有线程0可以从头执行到尾。

        OpenMP有3种典型的共享任务结构,for 语句、sections 语句和 single 语句,此外还有 parallel for 语句和 parallel sections 语句。

1. for语句

for语句的一般格式如下:([ ]表示可选可不选,| 表示或者)
#pragma omp for [schedule(static|dynamic[,CHUNKSIZE]) | ordered | private(var) | firstprivate(var) | 
lastprivate(var) | shared(var) | reduction(operator:var) | nowait] newline
最后的newline指换行,具体可以看一下例子
#include<stdio.h>
#include<omp.h>
#include<time.h>

#define CHUNKSIZE 100
#define N 10000
int main(){
	int i;
	float a[N], b[N], c[N];
	clock_t t=0;
	for (i = 0; i < N; i++)
		a[i] = b[i] = i*1.0;
	t -= clock();
	#pragma omp parallel shared(a,b,c) private(i)  //一定要换行,即newline的意思
	{
	    #pragma omp for schedule(static,CHUNKSIZE)    //for语句只能作用于一个for循环,for循环可以嵌套,但不能用{}套住for循环
		for (i = 0; i < N; i+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值