【云计算入门3】基础技术和并行计算模型
云计算入门系列目录
【云计算入门1】 云计算是什么?
【云计算入门】云部署模型
【云计算入门2】基本云安全
【云计算入门3】基础技术和并行计算模型
本文目录
- 云计算入门系列目录
- 基础技术
- 计算机技术的发展
- 互联网之上的可扩展计算
- 云计算的技术基础:并行计算、分布式计算
- 云计算&虚拟化技术
- 并行计算概念和模型
- 并行计算
- 并行度的变化
- 并行体系结构模型
- Flynn`s Taxonomy
- PRAM模型(SIMD-SM模型)
- APRAM模型(MIMD-SM)
- BSP模型(异步MMD-DM模型)
- LogP模型
- 参考资料
基础技术
计算机技术的发展
- 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
- 百度搜索资料
【云计算入门3】基础技术和并行计算模型相关推荐
- 网络管理员入门与基础技术
学习基础知识当好称职网络管理员 本着就近原则,毕业后本人在一个国企当上了一名网络管理员.企业不大,机器也就500~600台左右吧:面积不大,也就700~800平方左右吧:楼房不多,也就6~7幢吧.网管 ...
- 【云计算入门3】并行互连网络、并行访存模型、当代并行机硬件架构
云计算入门系列目录 [云计算入门1] 云计算是什么? [云计算入门]云部署模型 [云计算入门2]基本云安全 [云计算入门3]基础技术和并行计算模型 [云计算入门3]并行互连网络.并行访存模型.当代并行 ...
- 从入门到深入:移动平台模型裁剪与优化的技术探索与工程实践
可以看到,通过机器学习技术,软件或服务的功能和体验得到了质的提升.比如,我们甚至可以通过启发式引擎智能地预测并调节云计算分布式系统的节点压力,以此改善服务的弹性和稳定性,这是多么美妙. 而对移动平台来 ...
- 云计算的基础架构:并行计算+资源虚拟化
云计算的基础架构:并行计算+资源虚拟化 (2011-08-20 12:15:51) 标签: 校园 分类: 工作篇 高性能云计算:从科学应用的角度 科学计算往往需要可用的数量庞大的计算机来执行大规模实验 ...
- 【继上篇】云计算架构概念和技术基础
一.云计算概述 云计算到底是什么呢?在这个问题上,可谓众说纷纭.比如,在维基百科上的定义是"云计算是一种基于互联网的计算新方式,通过互联网上异构.自治的服务为个人和企业用户提供按需即取的计算 ...
- 0基础学python难吗-零基础入门学习Python技术难不难?
原标题:零基础入门学习Python技术难不难? 近几年对python人才爆发式需求,导致很多人转行进入python开发行业,现如今Python这门语言的就业前景会非常好.相对于其他来说,它语法简单易读 ...
- 零基础学python难吗-零基础入门学习Python技术难不难?
原标题:零基础入门学习Python技术难不难? 近几年对python人才爆发式需求,导致很多人转行进入python开发行业,现如今Python这门语言的就业前景会非常好.相对于其他来说,它语法简单易读 ...
- 基于vue技术栈制作自己的简历网站问题总结篇(入门vue基础项目)
前言 目前在学习vue技术栈的同时接触到了很多以前没用过的各种工具(如webpack,npm,git等等),配合着vue全家桶里的一些东西做了一个基于vue的个人简历网站(虽然用vue框架搭简历网站优 ...
- 云计算基础技术及解决方案介绍 - ZCCT考试
文章目录 写在开头的话 云计算基础技术及解决方案介绍 00. 云计算的定义与特点 0.1 云计算概念定义 0.2 云计算交付方式分类 0.3 云计算服务分类 01. 资源池化技术 1.1 服务器虚拟化 ...
最新文章
- leetcode算法题--二叉搜索树的后序遍历序列
- 使用java调用Web天气服务
- 【Python】怎么用matplotlib画出漂亮的分析图表
- pybombs 安装
- CSS基础知识(display和visibility、overflow、文档流)
- C++项目參考解答:累加求圆周率
- Mint17/Ubuntu14.04 samba文件服务器搭建
- java多线程系类:JUC线程池:02之线程池原理(一)
- Unity WebPlayer自定义进度条界面
- Next.js基本使用
- copypng emitted errors
- Matlab论文插图绘制模板第50期—分簇散点图(Swarmchart)
- 巴菲特给出了六条人生的建议
- 用预处理指令#define 声明一个常数,用以表明一年中有多少秒
- 免费的外文文献搜索下载工具推荐
- 代码与程序的区别与联系
- MONTHS_BETWEEN函数
- 企业微信如何创建微盘共享空间?
- Office LTSC 专业增强版 2021 显示“你的许可证并非XX”横幅解决方法(亲测有效,2016专业增强版同样适用,其他版本自行测试)
- 软考网络工程师学习笔记day04