华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)04 OpenMP并行编程(二)工作共享结构、同步与数据环境

0 華柬师免大学|数学科学学院 chool of Ma sEast China Normal University OpenMP并行编程 (二) 工作共享结构 同步与数据环境
OpenMP 并行编程 (二) —— 工作共享结构 —— 同步与数据环境

华东师范大学数学科学学院 目录页 School of Mathematical Sciences,ECNU 案 Contents 编译制导:工作共享结构(续) 2 编译制导:同步指令 编译制导:数据环境指令 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 目录页 Contents 华东师范大学 数学科学学院 School of Mathematical Sciences, ECNU http://math.ecnu.edu.cn/~jypan 1 2 编译制导:工作共享结构(续) 编译制导:同步指令 3 编译制导:数据环境指令

华东师范大学数学科学学院 目录页 School of Mathematical Sciences,ECNU 案 Contents 工作共享结构(续) sections section 1 工作共享结构 single master 2 同步结构 ■ task(略) 3 数据环境结构 http://math.ecnu.edu.cn/-jypan
http://math.ecnu.edu.cn/~jypan 目录页 Contents 华东师范大学 数学科学学院 School of Mathematical Sciences, ECNU http://math.ecnu.edu.cn/~jypan sections / section single master task(略) 1 2 工作共享结构 同步结构 3 数据环境结构 1 工作共享结构(续)

内容提要 OpenMP编译制导 ●工作共享结构: for,sections,single,master,task,workshare ●同步指令: critical,barrier,atomic,flush,ordered 。数据环境指令 threadprivate ·子句: private,firstprivate,..... http://math.ecnu.edu.cn/-jypan 4
http://math.ecnu.edu.cn/~jypan 4 内容提要 OpenMP 编译制导 工作共享结构: for,sections,single,master,task,workshare 同步指令: critical,barrier,atomic,flush,ordered 数据环境指令 threadprivate 子句: private,firstprivate,… …

SECTIONS结构 !Somp sections [clause clause ... !Somp section structured-block Fortran !Somp section structured-block !Somp end sections [nowait] #pragma omp sections [clause clause...] { #pragma omp section C/C++ structured-block #pragma omp section structured-block ●sections也可以与parallel合并,即#pragma omp parallel sections http://math.ecnu.edu.cn/-jypan 5
http://math.ecnu.edu.cn/~jypan 5 SECTIONS 结构 Fortran !$omp sections [clause clause ...] !$omp section structured-block !$omp section structured-block !$omp end sections [nowait] C/C++ #pragma omp sections [clause clause ...] { #pragma omp section structured-block #pragma omp section structured-block . . . . . . . . . . . . } sections 也可以与 parallel 合并,即 #pragma omp parallel sections

SECTIONS结构 ●指令sections创建一个工作共享域 ·域中的子任务由指令section创建,必须是一个相对独立的完整代码块 ·每个子任务都将只被一个线程执行 ●结束处隐含障碍同步,除非显式指明nowait ●sections可用的字句有 private(list) firstprivate(list) lastprivate(list) reduction(op:list) nowait http://math.ecnu.edu.cn/-jypan 6
http://math.ecnu.edu.cn/~jypan 6 SECTIONS 结构 指令 sections 创建一个工作共享域 域中的子任务由指令 section 创建,必须是一个相对独立的完整代码块 每个子任务都将只被一个线程执行 结束处隐含障碍同步,除非显式指明 nowait sections 可用的字句有 private(list) firstprivate(list) lastprivate(list) reduction(op : list) nowait

SECTIONS示例 #pragma omp parallel num_threads(3) #pragma omp sections #pragma omp section printf("Hello world!\n"); #pragma omp section printf("Hello Math!\n"); #pragma omp section printf("Hello OpenMP!\n"); OMP sections 01.c OMP_sections_02.c ●注意sections和section的区别 ●#pragma omp section必须在sections域中 ·共享域中的每个子任务必须由section指令创建 ●第一个子任务前面的section指令可以省略 ●子任务个数小于线程个数时,多余的线程空闲等待 ·子任务个数大于线程个数时,任务分配由编译器指定,尽量负载平衡 http://math.ecnu.edu.cn/-jypan
http://math.ecnu.edu.cn/~jypan 7 SECTIONS 示例 注意 sections 和 section 的区别 #pragma omp section 必须在 sections 域中 共享域中的每个子任务必须由 section 指令创建 第一个子任务前面的 section 指令可以省略 子任务个数小于线程个数时,多余的线程空闲等待 子任务个数大于线程个数时,任务分配由编译器指定,尽量负载平衡 #pragma omp parallel num_threads(3) #pragma omp sections { #pragma omp section printf("Hello world!\n"); #pragma omp section printf("Hello Math!\n"); #pragma omp section printf("Hello OpenMP!\n"); } OMP_sections_01.c OMP_sections_02.c

SINGLE结构 !Somp single [clause clause ... Fortran structured-block !Somp end single [nowait copyprivate(list)] #pragma omp single [clause clause ... C/C++ structured-block ●用在并行域中,指定代码块只能由一个线程执行(不一定是主线程) ●第一个遇到single指令的线程执行相应的代码,其它线程则在single 结尾处等待,除非显式指明nowait ·可用的字句有 private(list) firstprivate(list) copyprivate(Iist)//将串行计算的值广播给并行域中的同名变量 nowait http://math.ecnu.edu.cn/-jypan 8
http://math.ecnu.edu.cn/~jypan 8 SINGLE 结构 Fortran !$omp single [clause clause ...] structured-block !$omp end single [nowait copyprivate(list)] C/C++ #pragma omp single [clause clause ...] { structured-block } 用在并行域中,指定代码块只能由一个线程执行(不一定是主线程) 第一个遇到 single 指令的线程执行相应的代码,其它线程则在 single 结尾处等待,除非显式指明 nowait 可用的字句有 private(list) firstprivate(list) copyprivate(list) // 将串行计算的值广播给并行域中的同名变量 nowait

MASTER结构 !Somp master Fortran structured-block !Somp end master #pragma omp master C/C++ structured-block ●master块仅由线程组中的主线程执行 ·其它线程跳过并继续执行下面的代码,即结尾处没有隐式同步 ●通常用于I/O ●与single [nowait]的区别: master指定由主线程执行,而single由最先到达的线程执行 http://math.ecnu.edu.cn/~jypan 9
http://math.ecnu.edu.cn/~jypan 9 MASTER 结构 Fortran !$omp master structured-block !$omp end master C/C++ #pragma omp master { structured-block } master 块仅由线程组中的主线程执行 其它线程跳过并继续执行下面的代码,即结尾处没有隐式同步 通常用于 I/O 与 single [nowait] 的区别: master 指定由主线程执行,而 single 由最先到达的线程执行

华东师范大学数学科学学院 目录页 School of Mathematical Sciences,ECNU 案 Contents 同步结构 Synchronization Constructs critical ■ barrier 工作共享结构 ■ atomic 2 同步结构 flush ordered 3 数据环境结构 taskwait/taskyield http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 目录页 Contents 华东师范大学 数学科学学院 School of Mathematical Sciences, ECNU http://math.ecnu.edu.cn/~jypan critical barrier atomic flush ordered taskwait/taskyield(略) 1 2 工作共享结构 同步结构 3 数据环境结构 2 同步结构 Synchronization Constructs
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)OpenMP Application Programming Interface Examples Version 4.0.2.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)OpenMP Application Programming Interface Version 5.0.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)OpenMP Application Program Interface Version 4.0.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)OpenMP API 5.0.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)OpenMP API 4.0.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)04 OpenMP并行编程(一)并行编程介绍、并行域与工作共享.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)应用 - 矩阵乘积的快速算法.pdf
- 华东师范大学:《C语言程序设计》课程教学资源(学习笔记)C语言程序设计学习笔记.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)C Reference Card.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)03 C语言编程介绍.pdf
- Linux操作系统《Linux就该这么学》书籍电子版(第2版)Linux就该这么学(刘遄,2021).pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)Linux操作系统 - Vim Cheat Sheet for Programmers.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)Linux操作系统 - VIM命令小结.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)Linux操作系统 - Vi简介(visual interface).pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)Linux操作系统 - Linux Command Quick Reference.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)02 Linux操作系统介绍.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)01 并行计算介绍 Parallel and High Performance Computing(主讲:潘建瑜).pdf
- 兰州交通大学:《单片机原理与接口技术》课程授课教案(打印版)第十二章 单片机的其它接口.pdf
- 兰州交通大学:《单片机原理与接口技术》课程授课教案(打印版)第十一章 单片机与I2C总线芯片的接口(2/2)单片机与PCF8591接口.pdf
- 兰州交通大学:《单片机原理与接口技术》课程授课教案(打印版)第十一章 单片机与I2C总线芯片的接口(1/2).pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)04 OpenMP并行编程(三)运行库函数、环境变量.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)05 矩阵 - 向量乘积并行算法(OpenMP).pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)05 矩阵 - 矩阵乘积并行算法(OpenMP).pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)06 线性方程组直接法并行计算.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)07 消息传递编程接口 MPI(一)编程基础.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)MPI - A Message-Passing Interface Standard Version 3.1.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)MPI - A Message-Passing Interface Standard Version 4.0.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)07 消息传递编程接口MPI(二)消息传递.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)08 矩阵向量乘积并行算法(基于MPI).pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)08 矩阵矩阵乘积并行算法(基于MPI).pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)07 消息传递编程接口MPI(三)MPI 数据类型.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)07 消息传递编程接口MPI(四)进程与通信器操作.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)09 线性方程组并行直接法(基于 MPI).pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)10 二维Poisson方程的并行求解算法(基于MPI).pdf
- 大连大学:信息与计算科学专业课程教学大纲汇编(2010).doc
- 大连大学:物理学(多媒体与网络技术)专业课程教学大纲汇编(2010).doc
- 大连大学:计算机科学与技术专业课程教学大纲汇编(2010).doc
- 石河子大学:《编译原理》课程教学资源(教案讲义)编译原理教案 Principle of Compiler(负责人:张丽).doc
- 石河子大学:《编译原理》课程教学资源(试卷习题)第一套.doc
- 石河子大学:《编译原理》课程教学资源(试卷习题)第二套.doc