你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 专家论坛
OpenMP的多核并行程序设计(三)
 

32 循环并行化

对于大量的科学计算程序来说,循环计算通常占有很大的比例,对循环进行并行化处理可以大大提高应用程序的运行效率,因此循环并行化在OpenMP应用程序中是一个相对独立且非常重要的组成部分。循环并行化语句的编译指导语句格式如下:

#pragma omp parallel for [clause[ [,] clause]...]

使用这个编译指导语句能将for循环中的工作分配到一个线程组中,而线程组中的每一个线程将完成循环中的一部分内容。编译指导语句的功能区域一直延伸到for循环语句的结束部分。编译指导语句后面的子句(clause)用来控制编译指导语句的具体行为。例如:

#pragma omp parallel for
for(int i=0;i<n;i++)
     a[i]=b[i]+c[i];

在上面的代码中,编译指导语句会将for循环中的工作分配到一个线程组中,编译指导语句的作用范围直到for循环结束部分。

并不是所有的循环都可以并行化,使用OpenMP对循环并行化有一定的限制:

1for循环语句必须明确循环次数,循环变量必须为整数,循环操作符必须是><>=<=

2)循环语句块必须是单出口与单入口,循环过程中不能使用breakgotoreturn语句,但可以使用continueexit

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089