- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OpenMP并行编程.ppt
OpenMP 并行编程 内容提要 并行程序设计模型 隐式并行 数据并行 共享变量 消息传递 并行编程模型 并行化方法 并行化方法 并行化方法 并行化方法 并行算法设计原则 并行程序设计步骤 内容提要 OpenMP 简介 OpenMP 简介 OpenMP 运行模式 Fork-Join Fortran 举例 C 举例 OpenMP 说明 OpenMP 说明 编译制导 编译制导指令 编译制导指令 编译制导指令 编译制导指令 编译制导指令 OpenMP子句 OpenMP子句 OpenMP子句 并行域 !OMP PARALLEL PARALLEL举例 PARALLEL举例 PARALLEL举例 工作共享指令 !OMP DO !OMP DO SCHEDULE 高速缓存 cache SCHEDULE SCHEDULE方式 SCHEDULE方式 SCHEDULE图例 SCHEDULE图例 DO 举例 DO 举例 数据竞争 PRIVATE/SHARED PRIVATE/SHARED REDUCTION REDUCTION 举例:PI PI 串行程序 PI 并行程序 PI 并行程序 PI 并行程序 作业 数据作用域属性字句 Data Scope Attribute Clauses 指定一个或多个变量为私有变量, 并且私有变量在进入并行域时,将主线程中的同名变量的值作为初值 FIRSTPRIVATE(list) 指定将线程中的私有变量的 “最后” 的值在并行处理结束后复制到主线程中的同名变量中 LASTPRIVATE(list) 配合 THREADPRIVATE,用主线程同名变量的值对 THREADPRIVATE 的变量进行初始化 COPYIN(list) 配合 SINGLE,将 SINGLE 块中串行计算得到的变量值广播到并行域中其它线程的同名变量中 COPYPRIVATE(list) 指定一个或多个变量是私有的,并且在并行处理结束后对这些变量执行指定的归约操作(如求和),并将结果返回给主线程中的同名变量 REDUCTION(op:list) 其它字句 忽略并行线程或其它制导指令中暗含的障碍同步 NOWAIT 指定循环任务的分配规则 SCHEDULE(type,chunk) 条件并行,满足指定条件时才执行相关操作 IF(log_expr) 指定并行域内线程的个数 NUM_THREADS(int_expr) 指定循环内的代码要按顺序执行 ORDERED PARALLEL 指令 产生多个线程,即创建一个并行域 并行域内的代码将被多个线程并行执行 并行域可以嵌套 并行域结束后,将回到主线程 并行域的设置与管理 #pragma omp parallel [clause clause ...] { structured-block } C/C++ !$omp parallel [clause clause ...] structured-block !$omp end parallel Fortran 结尾处有隐式同步,可用的子句(clause)包括: if (scalar-logical-expression) num_threads(scalar-integer-expression) default(private | shared | none) private(list) firstprivate(list) shared(list) copyin(list) reduction({op|intrinsic} : list) 子句用来添加一些补充信息。若有多个,则用空格隔开。 若没有指定线程个数,则产生最大可能的线程个数。 PROGRAM hello !$OMP PARALLEL write (*,*) “Hello” !$OMP END PARALLEL END PROGRAM Thread 0 Thread 0 write(*,*) “hello” Thread 1 write(*,*) “hello” Thread N write(*,*) “hello” ... 串行域 并行域 如果不指定线程数,则开启尽可能多的线程 PROGRAM hello !$OMP PARALLEL NUM_THREADS(4) write(*,*) Hello Math !$OMP END PARALLEL END PROGRAM hello NUM_THREADS(int_expr) 指定产生的线程个数 !$OMP PARALLEL NUM_THREADS(4) 以下写法等价 !$OMP PARALLEL !$OMP NUM_THREADS(4) !$O
您可能关注的文档
- MAP在氨氮废水中应用.doc
- Map建树算法性能评估.doc
- Martín De Pasquale超现实主义摄影作品.doc
- Mass Storage.ppt
- MATLAB 在其他领域中应用.ppt
- MATLAB作图其数学模型求解.ppt
- Matlab信号处理(信号处理).ppt
- MATLAB实训报告 基于MATLAB语言编程系统S平面分析.doc
- Matlab插值拟合教程.doc
- matlab矩阵分解.doc
- 2025年8月 在全市防汛工作视频会议上的讲话.docx
- 在2025年市委常委班子集中整治问题整改工作专题会议上的讲话+党课:以过硬作风护航高质量发展以实干担当书写新时代“赶考”答卷.pdf
- 国有企业2025年在“贯彻党中央决策部署和国企改革要求方面、全面从严治党责任落实方面、基层党组织建设方面、巡察整改长效机制建设四个方面”巡察整改专题民主生活会存在的原因分析.docx
- 2篇 2025年在四届区委第十三轮巡察动员部署会议上的讲话.pdf
- 在理论学习中心组巡视整改专题学习研讨会议上的讲话+在省委巡视反馈问题整改部署会上的讲话+工作领导小组会议上的讲话.pdf
- 2篇 2025年在四届区委第十三轮巡察动员部署会议上的讲话.docx
- 2025年国企理论学习中心组巡视巡察专题民主生活会会前学习研讨+(2025年四个方面)巡察整改专题民主生活会个人发言提纲.docx
- 局党组、宣传部、纪委监委关于2025年上半年意识形态工作总结及2025年下半年工作打算.pdf
- 4篇 2025年在学习贯彻《中华人民共和国监察法实施条例》研讨交流会上的发言.pdf
- 在市委理论学习中心组中央城市工作会议精神专题学习研讨会上的发言.+关于传达中央城市工作会议精神的讲话提纲.docx
文档评论(0)