第一讲并行程序设计基础

体系结构? 讲授基于集群系统的并行程序设计 .... VAX : 25%/year 1978 to 1986; RISC + x86: 52%/year 1986 to 2002; RISC + x86: ??%/year 2002 to present.
展开查看详情

1.课程名称 : 并行程序设计 parallel programming 主讲教师: 赵长海 博士 办公室: 新主楼 G910 Email: zch@buaa.edu.cn Spring 2012 课程网站: CourseGrading   http://judge.buaa.edu.cn

2.小调查:为什么选修并行程序设计?

3.国内外哪些高校开设了本门课程? 清华大学 北京大学 中科大 浙江大学 国内 国外 MIT Standford UC Berkeley Princeton Cornell UIUC ( University of Illinois at Urbana-Champaign ) UW-MADISON ……

4.如何考核? 考勤 ( 40 % ) 2 . 作业 ( 60 % ) 三 次作业,机器自动评判提交的并行程序 没有考试!

5.课程目标 1 理解并行程序在计算机系统中的运行机制 从程序员角度:代码 --> 系统 看透所谓的“新技术”和“新概念” 理解并行

6.课程目标 2 如何写 高性能的并行程序 、构造高性能的系统 优化性能

7.《并行程序设计原理》中译本 Calvin Lin, Lawrence Snyder 著,陆鑫达 , 林新华 译 , 机械工业出版社, 2009 年 7 月 参考书 3 《UNIX 环境高级编程》 ( 第二版 ) W.RICHARD STEVENS , STEPHEN A.RAGO 著,尤晋元 , 张亚英 戚正伟译,人民邮电出版社, 2006 年 5 月 参 考 书 1 经典 计算机专业学生应该读的书 《 深入理解计算机系统 》中译本 Randal E.Bryant , David R.O’Hallaron 著,机械工业出版社, 2011 年 1 月 参考书 2

8.操作系统? 基于 Linux 操作系统讲授并行程序设计 Redhat Suse Ubuntu Android 乐 OS

9.体系结构? 讲授基于集群系统的并行程序设计

10.课程要讨论的内容? 第一讲:预备知识 并行编程基础 Linux 编程环境简介 第一讲

11.课程要讨论的内容? 第二讲:共享内存系统编程 多进程及进程间通信 多核(多线程)程序设计 第二讲

12.课程要讨论的内容? 第三讲:分布式内存系统编程 MPI 程序设计 MapReduce 运行原理 第三讲

13.课程要讨论的内容? 第四讲:并行程序性能分析方法 影响并行程序性能的因素 性能度量 性能优化方法 第四讲

14.课程要讨论的内容? 第五讲:并行模式 数据并行 任务并行 主 - 从模式 工作池模式 第五讲

15.本课程期望达到的目标 牛人 菜鸟 You are here!

16.第一讲 并行程序设计基础

17.本章内容 1.1 什么 是并行计算 1.2 为什么要学习并行程序设计 1 . 7 并行计算机架构及分类 1 . 6 并行的层次 1 . 5 并行计算的应用 1 . 8 并行计算的发展趋势与挑战 1.3 并行 VS. 并发 1 . 4 并行 VS. 分布式

18. 1.1 什么 是并行计算 一.并行计算的定义

19.Q Please COUNTER COUNTER 1 COUNTER 2 Serial Vs.Parallel

20.二. 传统的串行计算 程序在一台只有一个 CPU 的电脑上运行; 问题被分解成离散的指令序列; 指令被一条接一条的执行; 在任何时间 CPU 上最多只有一条指令在运行。

21.三.并行计算 (同时利用多个计算资源解决一个问题) 调用多个 CPU ; 一个问题分解成多个部分,可以被同时解决; 每一部分被细分成一系列指令; 每一部分的指令可以在不同的 CPU 上同时执行

22.并行资源 多核 multi-core processor chip multi-processor ( CMP ) GPGPU : General-purpose computing on graphics processing units GPU 很早 就进入了 多核时代

23.并行资源 SMP symmetric multi-processor : 一个计算机上汇集了一组处理器 ( 多 CPU), 各 CPU 之间共享内存子系统以及总线结构

24.并行资源 “秃鹰群”超级计算机由 1760 台索尼 PS3 游戏机组成 PC 机互联的集群 Google 的集群 集群 ( cluster ) 多个计算机通过高速网络互连

25.7/13/2016 CS194 Lecure 25 Moore’s Law Microprocessors have become smaller, denser, and more powerful. 2X transistors/Chip Every 1.5 years Called “ Moore’s Law ” Gordon Moore (co-founder of Intel) predicted in 1965 that the transistor density of semiconductor chips would double roughly every 18 months. 1 . 2 为什么要学并行程序设计 摩尔定律回顾

26.7/13/2016 26 Growth in transistors per chip Increase in clock rate ( 历史 ) 微处理器的性能提升路线 CPU 升级 ( 串行 ) 程序运行速度加快

27.Herb Sutter C++ 标准委员会主席 Free lunch is Over! The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software , 预言 OO 之后软件开发将要面临的又一次重大变革 — 并行计算 大家写的串行程序不改成并行程序,性能永远无法提升 CPU 已经进入多核时代不再提高时钟频率

28.单个 CPU 核的性能已接近极限 cache 降低内存的延迟, cache 越大,性能越高 过去 30 多年, CPU 性能提升三个主要方法 : 时钟频率 时钟频率越高,指令执行速度越快 执行优化 一个时钟周期,执行更多的指令。通过指令流水线 ( instruction pipelining ) 增强指令执行的并行性 上述改进方法都是对程序员透明的!。 注意:

29.7/13/2016 29 4004 8008 8080 8085 8086 286 386 486 Pentium® P6 1 10 100 1000 10000 1970 1980 1990 2000 2010 Year Power Density (W/cm 2 ) Hot Plate Nuclear Reactor Rocket Nozzle Sun’s Surface Source: Patrick Gelsinger , Intel  时钟频率接近极限