- 37
- 0
- 约8.14千字
- 约 65页
- 2021-02-26 发布于安徽
- 举报
OpenMP程序设计;;?;OpenMP组成;程序员
串行程序正确、稳定
找出最耗时的循环
在串行程序上添加OpenMP导语;术语;;#pragma omp parallel [子语,[子语…]]
结构块
开启一个并行区域,多个线程冗余执行结构块
只有放在本区域内的代码才可能并行执行
;#pragma omp for [子语,[子语…]]
C语言的for循环
将循环的所有迭代步分摊到各个线程上
必须放在一个omp parallel区域内,才能正真并行执行
子语用来控制数据属性、条件操作、归约操作 …
;OpenMP数据管理;共享存储编程概述
OpenMP基本概念
导语和条件编译
构造并行区域
OpenMP构件(construct)
工作分担构件
组合构件
数据环境
数据属性PRIVATE, SHARED
数据生存期子语
其它子语
运行时库函
运行环境子函数
计时子函数
;多CPU共享统一内存空间 单一内存地址 多个存储器模块
各CPU执行相同或不同指令
任何CPU直接访问任何内存地址 共享内存实现通信
可扩展性差 多CPU同时访问共享全局变量时,产生内存竞争,严重影响效率
适合中小规模计算或事务处理
;共享存储器编程标准
Pthreads
X3H5
OpenMP(最流行)
共享存储器编程特点
显式多线程库调用.(Pthreads).
编译指令(编译制导语句),OpenMP等.
语言
C/C++,Fortran77,Fortran90/95 …;POSIX1003.4a小组研究多线程编程标准. 当标准完成后,大多数支持多线程的系统都支持POSIX接口.很好的改善了多线程编程的可移植性.
IEEE Portable Operating System Interface, POSIX, 1003.1-1995标准:POSIX线程模型:pthreads.
Pthreads主要面向操作系统, 不是为高性能计算设计
“多线程并发执行”的思想被广泛地应用于高性能计算;X3H5是ANSI/X3授权的小组委员会,主要目的是在PCF(the Parallel Computing Forum)工作的基础上,发展并行计算的一个ANSI标准. PCF是一非正式的工业组织,虽在DO循环的并行化方法的标准化方面做一些工作,但在起草拟了一个标准后就草草收场.
OpenMP专门针对这类并行化问题,并完成了这项工作,同时得到工业界的广泛支持.
;The OpenMP Architecture Review Board;OpenMP规范;OpenMP基本概念;术语;?;#pragma omp parallel
结构块
导语对directive-pair,创建/开启和销毁/关闭一个并行区域
#pragma omp parallel
write(*,*) Hello world!
紧跟着导语的结构块代码被所有线程并行执行,并行区域之外的代码称为串行区域,仅被主线程执行
每个线程都有一个编号“线程号thread number”, Np个线程编号为0~Np-1, 主线程的编号为0
需要并行执行的代码必须放在某个并行区域内
;
// t5.c
#includestdio.h
int main()
{
printf(-----------\n);
#pragma omp parallel
printf(Hello\n);
printf(============\n);
return 0;
};
// t5-2.c
#includestdio.h
int main()
{
printf(-----------\n);
#pragma omp parallel
{
printf(Hello1\n);
printf(Hello2\n);
}
printf(============\n);
return 0;
};Hello执行过程;导语后面可以跟子语,用于指定并行区域的某些特性
#pragma omp parallel clause1 clause2 ...
结构块
#pragma omp后面可以跟的子语(详述在后)
if(scalar-expression)
num_threads(integer-expression )
default(shared | none)
private(list)
firstprivate(list)
shared(list)
copyin(list)
reduction(operator : list);并行区域在结构块后结束,各线程的本地变量(或称为私用变量)被销毁,主线程之外的所有线程都被杀死
关闭并行区域前,主线程等待其它线程到达,实际上,这
您可能关注的文档
- 中科曙光HPC培训教程汇总:D01-集群调试—操作系统安装.pptx
- 中科曙光HPC培训教程汇总:D02-集群调试—基础环境配置.pptx
- 中科曙光HPC培训教程汇总:D03-集群调试—软件环境配置.pptx
- 中科曙光HPC培训教程汇总:D05-Gridview-安装及作业调度介绍.pptx
- 中科曙光HPC培训教程汇总:D06-集群管理—曙光集群管理使用.pptx
- 中科曙光HPC培训教程汇总:D07-集群调试—曙光安全产品调试.pptx
- 中科曙光HPC培训教程汇总:D08-HPC集群使用.pptx
- 中科曙光HPC培训教程汇总:D09-HPC集群常见问题及解决.pptx
- 中科曙光HPC培训教程汇总:D10-高性能集群性能评价—HPLHPCG.pptx
- 中科曙光HPC培训教程汇总:D11-高性能集群性能评价—Stream.pptx
原创力文档

文档评论(0)