中国科学技术大学:《并行算法实践》课程教学资源(PPT课件讲稿)上篇 并行程序设计导论 单元II 并行程序编程指南 第七章 OpenMP编程指南

中图种学学计算机科学与术系 University of Science and Technology of China DEPARTMENT DF COMPUTE三巴 ENCE AND ECHNOLDD 第七章 OpenMP綸程指南 7.1 OpenMP概述 720 penMP编程风络 73 OpenMP编程简介 ■7.4运行库例程与环境变量 7.50 penMP计算实例 国家高性能计算中心(合肥) 2021/2/3
国家高性能计算中心(合肥) 4 2021/2/3 第七章 OpenMP编程指南 ▪ 7.1 OpenMP概述 ▪ 7.2 OpenMP编程风络 ▪ 7.3 OpenMP编程简介 ▪ 7.4 运行库例程与环境变量 ▪ 7.5 OpenMP计算实例

中图种学学计算机科学与术系 University of Science and Technology of China DEPARTMENT。 F COMPUTE三巴 ENCE AND ECHNOLDD OpenMP糖述 OpenMP应用编程接口APT是在共享存储体系结构上的 个编程模型 包含编译制导( Compiler Directive)、运行库例程 ( Runtime Library)和环境变量( Environment variables) 支持增量并行化( Incremental parallelization) 国家高性能计算中心(合肥) 2021/2/3
国家高性能计算中心(合肥) 5 2021/2/3 OpenMP概述 ▪ OpenMP应用编程接口API是在共享存储体系结构上的 一个编程模型 ▪ 包含编译制导(Compiler Directive)、运行库例程 (Runtime Library)和环境变量(Environment Variables) ▪ 支持增量并行化(Incremental Parallelization)

中图种学学计算机科学与术系 University of Science and Technology of China DEPARTMENT。 F COMPUTE三巴 ENCE AND ECHNOLDD OpenMP体系结构 应用 用户 编译制导 环境变量 运行库例程 0S线程 国家高性能计算中心(合肥) 2021/2/3
国家高性能计算中心(合肥) 6 2021/2/3 OpenMP体系结构 应 用 编译制导 运行库例程 OS 线 程 用 户 环境变量

中图种学学计算机科学与术系 University of Science and Technology of China DEPARTMENT。 F COMPUTE三巴 ENCE AND ECHNOLDD 什么是 OpenMP 什么是 OpenMP ■应用编程接口API( Application Programming Interface) 由三个基本API部分(编译指令、运行部分和环境变量)构成 是C/C++和 Fortan等的应用编程接口 ■已经被大多数计算机硬件和软件厂家所标准化 OpenMP不包含的性质 不是建立在分布式存储系统上的 不是在所有的环境下都是一样的 不是能保证让多数共享存储器均能有效的利用 国家高性能计算中心(合肥) 2021/2/3
国家高性能计算中心(合肥) 7 2021/2/3 什么是OpenMP ▪ 什么是OpenMP ▪ 应用编程接口API(Application Programming Interface ) ▪ 由三个基本API部分(编译指令、运行部分和环境变量)构成 ▪ 是C/C++ 和Fortan等的应用编程接口 ▪ 已经被大多数计算机硬件和软件厂家所标准化 ▪ OpenMP不包含的性质 ▪ 不是建立在分布式存储系统上的 ▪ 不是在所有的环境下都是一样的 ▪ 不是能保证让多数共享存储器均能有效的利用

中图种学学计算机科学与术系 University of Science and Technology of China DEPARTMENT。 F COMPUTE三巴 ENCE AND ECHNOLDD OpenMP的历史 1994年,第一个 ANSI X3H5草案提出,被否决 1997年, OpenMP标准规范代替原先被否决的ANSr X3H⑤,被人们认可 1997年10月公布了与 Fortran语言捆绑的第一个标准规 范 1998年11月9日公布了支持C和C+的标准规范 目前 Fortran77、 Fortran90、C、C++语言的实现规范 已经完成。 ■资源网站:htpi:www.openmp.org http://phase.hpccip/omni/ 国家高性能计算中心(合肥) 2021/2/3 8
国家高性能计算中心(合肥) 8 2021/2/3 OpenMP的历史 ▪ 1994年,第一个ANSI X3H5草案提出,被否决 ▪ 1997年,OpenMP标准规范代替原先被否决的ANSI X3H5,被人们认可 ▪ 1997年10月公布了与Fortran语言捆绑的第一个标准规 范 ▪ 1998年11月9日公布了支持C和C++的标准规范 ▪ 目前Fortran77、Fortran90、C、C++语言的实现规范 已经完成。 ▪ 资源网站:http://www.openmp.org http://phase.hpcc.jp/Omni/

中图种学学计算机科学与术系 University of Science and Technology of China DEPARTMENT DF COMPUTE三巴 ENCE AND ECHNOLDD OpenMP的目标 标准性 简洁实用 使用方便 可移植性 国家高性能计算中心(合肥) 2021/2/3
国家高性能计算中心(合肥) 9 2021/2/3 OpenMP的目标 ▪ 标准性 ▪ 简洁实用 ▪ 使用方便 ▪ 可移植性

中图种学学计算机科学与术系 University of Science and Technology of China DEPARTMENT。 F COMPUTE三巴 ENCE AND ECHNOLDD OpenMP并行編程模型 基于线程的并行编程模型( Programming Model) penMP使用F。rk<Join并行执行模型 主线程 FORK F0RK 并行域 并行域 国家高性能计算中心(合肥) 2021/2/3 10
国家高性能计算中心(合肥) 10 2021/2/3 OpenMP并行编程模型 ▪ 基于线程的并行编程模型(Programming Model) ▪ OpenMP使用Fork-Join并行执行模型 F O R K J O I N F O R K J O I N 主线程 并行域 并行域

中图种学学计算机科学与术系 University of Science and Technology of China DEPARTMENT。 F COMPUTE三巴 ENCE AND ECHNOLDD peMP程序结构 基于 Fortran语言的 OpenMP程序的结构 PROGRAMHELLO INTEGER VARI VAR2 VAR3 I Serial code Beginning of parallel section. Fork a team of threads I Specify variable scoping ISOMP PARALLEL PRIVATE(VARI, VAR2) SHARED(VAR3) I Parallel section executed by all threads d All threads join master thread and disband I SOMP END PARALLEL I Resume serial code END 国家高性能计算中心(合肥) 2021/2/3
国家高性能计算中心(合肥) 11 2021/2/3 OpenMP程序结构 ▪ 基于Fortran语言的OpenMP程序的结构 PROGRAM HELLO INTEGER VAR1, VAR2, VAR3 !Serial code … !Beginning of parallel section. Fork a team of threads. !Specify variable scoping !$OMP PARALLEL PRIVATE(VAR1, VAR2) SHARED(VAR3) !Parallel section executed by all threads … !All threads join master thread and disband !$OMP END PARALLEL !Resume serial code … END

中图种学学计算机科学与术系 University of Science and Technology of China DEPARTMENT。 F COMPUTE三巴 ENCE AND ECHNOLDD OpenMP程存结构 基于c/c+语言的 OpenMP程序的结构 #f include <omp. h main 0{ int varl. var2. var3 /*Serial code*/ /Beginning of parallel section. Fork a team of threads*/ /Specify variable scoping*/ #pragma omp parallel private( varl, var2) shared( var3) /*Parallel section executed by all threads/ /*All threads join master thread and disband*/ /*Resume serial code */ 国家高性能计算中心(合肥) 2021/2/3 12
国家高性能计算中心(合肥) 12 2021/2/3 OpenMP程序结构 ▪ 基于c/c++语言的OpenMP程序的结构 #include main (){ int var1, var2, var3; /*Serial code*/ … /*Beginning of parallel section. Fork a team of threads*/ /*Specify variable scoping */ #pragma omp parallel private(var1, var2) shared(var3) { /*Parallel section executed by all threads*/ … /*All threads join master thread and disband*/ } /*Resume serial code */ … }

中图种学学计算机科学与术系 University of Science and Technology of China DEPARTMENT DF COMPUTE三巴 ENCE AND ECHNOLDD 一个简单的 OpenMP程存实例 基于c/C+语言的 OpenMP程序结构的一个具体实现 #include " omp. h int main( int argc, char argvD roc char buf 32] / Fork a team of threads * #pragma omp parallel private(nthreads, tid) Obtain and print thread id*/ tid=omp get thread numo; printf("Hello World from OMP thread %d\n", tid) Only master thread does this */ nthreads =omp get num threads; printf( " Number of threads %dln", nthreads); return 0 国家高性能计算中心(合肥) 2021/2/3 13
国家高性能计算中心(合肥) 13 2021/2/3 一个简单的OpenMP程序实例 ▪ 基于C/C++语言的OpenMP程序结构的一个具体实现 #include "omp.h" int main(int argc, char* argv[]) { int nthreads, tid; int nprocs; char buf[32]; /* Fork a team of threads */ #pragma omp parallel private(nthreads, tid) { /* Obtain and print thread id */ tid = omp_get_thread_num(); printf("Hello World from OMP thread %d\n", tid); /* Only master thread does this */ if (tid==0) { nthreads = omp_get_num_threads(); printf("Number of threads %d\n", nthreads); } } return 0; }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 上海交通大学:《网络安全技术》课程教学资源(PPT课件讲稿)比特币(主讲:刘振).pptx
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第三章 数据链路层.ppt
- 同济大学:《大数据分析与数据挖掘 Big Data Analysis and Mining》课程教学资源(PPT课件讲稿)Clustering Basics(主讲:赵钦佩).pptx
- 东南大学:《C++语言程序设计》课程教学资源(PPT课件讲稿)Chapter 09 Classes A Deeper Look(Part 1).ppt
- 贵州电子信息职业技术学院:常用办公技巧(PPT讲稿,主讲:刘忠华).ppt
- 计算机软件技术基础:《Visual Basic6.0 程序设计》课程教学资源(PPT课件)第1章 Visual Basic(VB)概述.ppt
- Dynamic Pricing in Spatial Crowdsourcing:A Matching-Based Approach.pptx
- 《Java Web应用开发基础》课程教学资源(PPT课件)第8章 EL、JSTL和Ajax技术.ppt
- 《计算机组装与维修》课程电子教案(PPT教学课件)第一章 计算机系统维护维修基础.ppt
- 湖南生物机电职业技术学院:《电子商务概论》课程教学资源(PPT课件)第六章 网上支付.ppt
- 清华大学出版社:《网络信息安全技术》教材电子教案(PPT课件讲稿)第2章 密码技术.ppt
- 《网络系统集成技术》课程教学资源(PPT课件讲稿)第六章 网络互联技术.ppt
- 数据库接口技术(PPT讲稿)开放式数据库联接 Open DataBase Connectivity——ODBC.ppt
- 《网络综合布线》课程教学资源(PPT讲稿)模块2 综合布线工程设计.ppt
- 《软件工程》课程教学资源(PPT课件讲稿)第4章 软件总体设计.ppt
- 华东理工大学:《Visual Basic程序设计教程》课程教学资源(PPT课件)第四讲 VB语言基础(运算符、函数和表达式).pps
- 《数据结构》课程教学资源(PPT课件讲稿)第六章 集合与字典.ppt
- 清华大学:《网络安全 Network Security》课程教学资源(PPT课件讲稿)Lecture 01 Introduction.pptx
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第四章 汇编语言程序格式.ppt
- 《C程序设计》课程电子教案(PPT课件讲稿)第二章 基本数据类型及运算.ppt
- Online Minimum Matching in Real-Time Spatial Data:Experiments and Analysis.pptx
- 《数字图像处理 Digital Image Processing》课程教学资源(各章要求及必做题参考答案).pdf
- 北京航空航天大学:Graph Search & Social Networks.pptx
- 《C程序设计》课程电子教案(PPT课件讲稿)第四章 数组和结构.ppt
- 西安电子科技大学:《信息系统安全》课程教学资源(PPT课件讲稿)第二章 安全控制原理.ppt
- 南京航空航天大学:《数据结构》课程教学资源(PPT课件讲稿)第十章 排序.ppt
- 四川大学:《计算机操作系统 Operating System Principles》课程教学资源(PPT课件讲稿)第9章 文件管理.ppt
- 《多媒体教学软件设计》课程教学资源(PPT课件讲稿)第4章 多媒体教学软件的图文演示设计.ppt
- 河南中医药大学(河南中医学院):《计算机网络》课程教学资源(PPT课件讲稿)第三章 数据链路层.pptx
- 上海交通大学:《Multicore Architecture and Parallel Computing》课程教学资源(PPT课件讲稿)Lecture 9 MapReduce.pptx
- 西安交通大学:《网络与信息安全》课程PPT教学课件(网络入侵与防范)第四章 口令破解与防御技术.ppt
- 《机器学习》课程教学资源(PPT课件讲稿)第十二章 计算学习理论 Machine Learning.pptx
- 广西外国语学院:《计算机网络》课程教学资源(PPT课件讲稿)第9章 DHCP协议(任课教师:卢豫开).ppt
- 《信息技术基础》课程教学资源(PPT课件)信息技术基础知识的内容.ppt
- 《PHP程序设计》教学资源(PPT课件讲稿)项目二 网站用户中心.ppt
- Microsoft .NET(PPT课件讲稿)Being Objects and A Glimpse into Coding.pptx
- 《Data Warehousing & Data Mining》课程教学资源(PPT讲稿)Ch 2 Discovering Association Rules.ppt
- 《软件工程》课程教学资源(PPT课件讲稿)需求分析.ppt
- 西安电子科技大学:《微机原理与接口技术》课程教学资源(PPT课件讲稿)第八章 中断系统与可编程中断控制器8259A.pptx
- 《ARM原理与设计》课程教学资源(PPT课件讲稿)Lecture 04 Cortex M3指令集.pptx