云计算入门系列目录
【云计算入门1】 云计算是什么?
【云计算入门】云部署模型
【云计算入门2】基本云安全
【云计算入门3】基础技术和并行计算模型
基础技术
计算机技术的发展
- 1970年:满足大公司和政府组织计算需求的少大型机。BM 369、CDC 6400
- 1980年:流行于小公司和大学的低成本小型计算机。DEC PDP 11和VAX系列
- 1990年:随处可见使用VLSI微处理器的个人计算机。
- 2000年:便携式计算机和通用型设备
- 至今:HPC和HTC系统不断增长扩散
互联网之上的可扩展计算
新的计算范式
- 集中式计算(传统计算方式)
将所有计算资源集中在一个物理系统之内,所有资源全部共享,并且紧耦合在一个集成式的操作系统中。 - 并行计算
所有处理器或紧耦合于中心共享内存或松耦合于分布式内存,处理器间通信通过共享内存或通过消息传递完成。通常称有并行计算能力的计算系统为并行计算机,运行在并行计算机上的程序称为并行程序 - 分布式计算
一个计算机科学和工程中研究分布式系统的领域,一个分布式系统由众多自治的计算机组成,各自拥有私有内存,通过计算机网络通信,消息交换通过消息传递的方式完成
并行计算VS分布式计算:
并行计算所有处理器间共享内存,分布式计算各计算机独占内存。
- 云计算
采用分布式计算和/或并行计算,但是可以在集中的或分布式的大规模数据中心之上,由物理的或虚拟的计算资源实现
云计算的技术基础:并行计算、分布式计算
并行计算和分布式计算为大型机计算系统到集群计算、再到网格计算的发展创造了有利条件,进而促进了云计算的发展。
云计算&虚拟化技术
云计算将计算当作是公共资源(效用计算,Utility Commputing),虚拟化是实现这一目标的必要技术。
早期的虚拟化:20世纪70年代,大型计算机同时运行多个操作系统实例,每个实例也彼此独立
虚拟化是将物理IT资源转换成虚拟IT资源的过程
- 执行虚拟化:包含了所有用于模拟执行环境的技术,为执行程序提供支持(操作系统、编译环境、应用程序…)
- 存储虚拟化:将存储资源进行逻辑视图和物理存储的分离,从而为系统提供无缝的存储资源管理
- 网络虚拟化:利用如啊年基于物理网络设备建立/模拟出虚拟网络环境的一种方式
并行计算概念和模型
并行计算
并行性(Parallelism):描述了把一个复杂问题分解成多个能同时处理的子问题的能力
并行计算(Parallel Computing):并行计算机上所进行的具有并行特性的计算(由运行在多个部件上的小任务合作来求解一个规模很大的计算问题)要实现并行计算,首先我们要有物理上能够实现并行计算的硬件设备,比如:多核CPU,每个核能同时实现算术或逻辑运算
并行度的变化
并行体系结构模型
Flynn`s Taxonomy
基于计算机硬件架构下并发指令/控制流以及数据流的数目
- 单指令流多数据流(SIMD):单一控制部件向每个处理部件分派相同指令
- 多指令流多数据流(MIMD):计算机中的每个处理器都能够独立于其他处理器对不同的数据执行不同的指令
-
PRAM模型(SIMD-SM模型)
假设有一个无限大容量的共享存储器,并且有(无限)多个功能相同的处理器,在任意时刻处理器可以访问共享存储单元
分类:
- 互斥读互斥写(EREW):每个内存单元每一时刻只能被一个处理器读写
- 并发读互斥写(CREW):多处理器同时读一个内存单元但只有一个可写
- 并发读并发写(CRCW):多处理器同时读写(并发随机访问)
- Common:仅允许写入相同数据
- Priority:仅允许优先级最高的处理器写入
- Arbitrary:允许任意处理器自由写入
结构简单,便于理论分析,但是不适用于现实。
首先容量无限大的存储器是不存在的,而且由于各方面的原因,全局访存通常要比预想的慢。其次,他忽略了通信带宽的影响。
在PRAM模型下,大多数组合问题可以用多项式个数的处理器在O(log^k n)时间复杂度内解决,例如:排序算法可用O(n)个处理器在O(logn)时间复杂度内解决。
PRAM-CRCW是最强的计算模型,PRAM-EREW可log§倍时间复杂度模拟PRAM-CRCW(Priority)
APRAM模型(MIMD-SM)
APRAM = Asynchronous PRAM
每个处理器都有自己的局部存储器、局部时钟和局部程序,处理器之间的通信通过全局共享存储器进行:无全局时钟,各处理器异步执行:处理器通过SM进行通讯。
处理器间依赖关系,需在并行程序中显式地加入同步障(Synchronization Barrier)
指令类型
- 全局读:将全局存储单元中的内容读到处理器的局部存储单元中
- 局部操作:对局部存储器中的数据执行局部操作,操作的结果存放到局部存储器中
- 全局写:将局部存储器单元中的内容写入全局存储单元中
- 同步:同步是计算中的一个逻辑点,在该点各处理器均需要等待其他的处理器也到达该点后才能继续执行它们的局部程序
BSP模型(异步MMD-DM模型)
BSP = Bulk Synchronous Parallel
支持消息传递系统,块内异步并行,块间显式同步
- 计算过程由若干超级步组成,每个超级步中各处理器执行局部操作,并通过选路器接收和发送消息
- 所有PRAM上的算法均可在BSP上模拟
LogP模型
LogP = Latency,overhead,gap,number of Processors
一种基于分布式存储和点到点通讯的多处理机模型,实行隐式同步
该模型由4个参数来描述:
- L:网络通信媒介的延迟(Latency)
- o:发送和接收消息的开销(overhead)
- g:每两个发送/接收操作间的间隔(gap),通常量化为处理器间通信带宽的倒数
- P:处理器个数(Processors),每个处理器上的一个局部操作时间相同,记为单位时间,称为一个处理器周期(processor cycle)
LogP vs BSP
- BSP→LogP:BSP块同步→BSP子集同步→BSP进程对同步=LogP
- BSP可以常数因子模拟LogP,LogP可以对数因子模拟BSP
- BSP = LogP + Barriers - Overhead
- BSP提供了更方便的程序设计环境,LogP更好地利用了机器资源
参考资料
- 中国科学院大学工程学院云计算课程PPT
- 百度搜索资料