并行计算(一)——并行计算机系统及结构模型

致谢

SMP、COW、PVP、MPP计算机相关_神.秘.人的博客-CSDN博客_并行向量处理机

1 并行计算机系统及结构模型

1.1 并行计算

在下面的讲解之前,我们先看一下并行计算的量纲。

image-20220304141137231

1.1.1 并行计算和计算机科学

随着计算机和计算机学科的发展,所有的学科都转向定量化和精确化,因此也出现了很多计算开头的学科,如计算数学、计算物理、计算生物等。目前所有的学科可以归结为三大类:即理论科学、实验科学和计算科学。其中计算科学是一个交叉学科,用计算的方法来解决应用问题,但是其中的问题也暴露出来——很多理论模型复杂或尚未建立、实验费用昂贵或无法进行。

为此,很多模型在无法实际操作的情况下,通过超级计算机的仿真模拟,可以初步探测该模型的可行性。比较常见的应用就是气象局天气预报、原子弹爆炸模拟等。

并行计算技术是一个国家的综合国力的体现,并行计算在国民经济、国防建设和科技发展中占有重要的战略地位。在飞机设计、药物设计、全球气候预测、人类基因等巨大挑战性问题时,并行计算机发挥了巨大的作用。

国家目前正在大力发展高性能计算,在军事上,我国拥有银河、神威等超级计算机;在民用上,我国拥有曙光、联想等超级计算机。需要注意的是,在08年时,我国的国产高性能计算机就已经进入TOP500前十位,总数也在大幅增加。

1.1.2 当代科学与工程问题的计算需求

并行计算需求有很多种。一般分为计算密集型应用、数据密集型应用、通信密集型应用。

计算密集型应用应用于大型科学工程计算,数值模拟等,其应用领域通常在石油、气象、CAD、核能、制药、环境监测分析、系统仿真等。

数据密集型应用则应用于数字图书馆、数据仓库、数据挖掘、计算可视化等,应用领域通常在图书馆、银行、证券、税务、决策支持系统等。

通信密集型应用应用于协同工作、网格计算、遥控和远程诊断等。其应用领域通常在网站、信息中心、搜素引擎、电信、流媒体等。

1.2 并行计算机系统互连

1.2.1 系统互连

不同带宽和距离的互连技术有多种,比较常用是:广域网WAN、城域网MAN、局域网WAN、个人区域网PAN、总线。广域网一般跨国,城域网一般城市,局域网一般一栋楼,个人区域网一般几台设备。其中广域网使用了交换技术,而局域网使用的是广播技术。如果是使用总线的话,总线是最快的,你可以理解为总结传输时不需要网络,直接用一条USB连接的那种。

网络性能指标一般由下面的参数来衡量:

  • 节点度:射入或射出一个节点的边数。在单向网络中,入射和出射之和称为节点度。
  • 网络直径:网络中任何两个节点之间的最长距离,即最大路径数。由于网络直径过长会导致两台计算机太远,通信容易延迟,所以我们一般要求网络直径要尽可能的短。
  • 对剖宽度:对分网络各半所必须移去的最少边数。
  • 对剖带宽:每秒内,在最小的对剖平面上通过所有连线的最大消息位数

1.2.2 静态互连网络

静态互联网络是处理单元间有着固定连接的一类网络,在程序执行期间,这种点到点的连接保持不变;典型静态网络有一维线性阵列、二维网孔、树连接、超立方网络、立方环、洗牌交换网、蝶状网络等。

换而言之,静态互连网络就是用一个链路把多个处理器连接起来,构成物理意义上的并行计算机,如果某个处理器想发信息给另外一个处理器,总是能通过这条链路来干这种事。

1.2.2.1 一维线性阵列(1-D Linear Array)

一维线性阵列可以看成是单链表,即每个节点只与左右相邻相连,故其别名为二近邻连接。N个结点用N-1条边串联而成,内结点度为2,直径为N-1,对剖宽度为1。

image-20220304145734454

这种结构虽然简单方便,但是恢复性较差。而且首尾两个计算机太远了,时延也差。所以在构造并行计算机时基本不采用。

如果将上述网络拓扑收尾节点重合,即可变为。环可以是单向可以是双向,其节点度也是2,直径为N/2或N-1,对剖宽度为2。

image-20220304150317785

1.2.2.2 二维网孔(2-D Mesh)

二维网孔是并行计算机中较为常用的。设二维网孔为n×n\sqrt{n}×\sqrt{n}n×n大小。其每个节点只与其上下左右的近邻相连,边界除外,节点度为4,网络直径为2N−12 \sqrt{N-1}2N1,对剖宽度为N\sqrt {N}N

当然,二维网孔也有拓展类型,详见下图这里不再赘述。

image-20220304151558482

1.2.2.3 树结构

一般采用树的网络拓扑结构用的大多数是二叉树。除了根、叶节点以外,每个内节点只与其父节点和子节点相连。

节点度为3,对剖宽度为1,而树的直径为2[logN]-1。如果尽量增加节点度,则直径缩小为2,此时就变成了星型网络,其对剖宽度为[n/2]。

传统的二叉树的主要问题是根容易成为通信瓶颈,且时延很低可恢复性也很差。,因而出现了新型的胖二叉树

胖树的含义是:越往根部走,通信链路就越宽,这样能够有效避免根位置出现通信瓶颈的情况。

星型模式下处于中间位置的节点会成为通信瓶颈,因为所有的通信都要经由它传输。

image-20220304152112322

1.2.2.4 超立方

当结点按正方体的模样构建拓扑结构,每个角作为结点处,那么我们把这个拓扑结构叫做3-立方,将两个3-立方对应顶点相连,则可以构成4-立方。以此类推,n-立方也可以这么干。

image-20220304152503313

这样的超立方结构虽然性能较好但是扩展性却不好,因为每扩展一次立方,每个节点的度数变高,这样扩展起来很麻烦。

我们也可以把正方体对应的角换成三节点环,就可以将拓扑结构变成立方环。

image-20220304152849348

如果是4-立方,那么每个角就要换成4个结点构成的环。

1.2.2.5 小结

image-20220304153020177

对于网络拓扑结构来说,节点度数衡量其网络的复杂度,而链路数衡量其网络的代价。

1.2.3 动态互连网络

动态网络是用交换开关构成的,可按应用程序的要求动态地改变连接组态;典型的动态网络包括总线、交叉开关和多级互连网络等。

这种网络比较普遍的是总线上面挂交换器。我们知道同一时间段中,一条总线只允许两头的设备进行信息交换,而在交换完成后,交换器可以将总线的端口改变,使其连接另外一个设备。通过这种方法,可以根据我们应用的需求,动态地选择我们需要的设备。

1.2.4 嵌入

在互联网络中还有另外一个概念叫嵌入。其做法是将网络中的各节点映射到另一个网络中去。用膨胀系数来描述嵌入的质量,它是指被嵌入网络中的一条链路在所要嵌入的网络中对应所需的最大链路数。如果该系数为1,则称为完美嵌入。

对于环网和超立方来说,两者皆可被完美嵌入到2D环绕网中。

1.2.4 标准互连网络

常用的标准互连网络如下:

  • 光纤分布式数据接口(FDDI)
  • 快速以太网
  • Myrinet
  • SCI
  • InfiniBand

1.3 并行计算机系统结构

1.3.1 并行计算机结构模型

1.3.1.1 PVP

PVP也叫并行向量处理机(Parallel Vector Processor),其内部含有为数不多、功能强大的定制向量处理器,以及定制的高带宽纵横交叉开关和高速数据访问。其价格十分昂贵,因为其组件都需定制,一般适用于国家部门。

1.3.1.2 SMP

SMP也叫对称多处理机。其访存、IO都是对称的。其用的处理器大多数是商用处理器。

目前SMP需要解决的主要问题是Cache的一致性问题。多级高速缓存可以支持数据的局部性,而其一致性可由硬件来增强。大多数SMP系统都是基于总线连接的,占据了并行计算机市场中很大的份额。

1.3.1.3 MMP

MMP也叫大规模并行处理机(Massively Parallel Processor),其规模大,性能好。

1.3.1.4 DSM

DSM又叫分布式共享存储器(Distributed Shared Memory,DSM)。在DSM中,每个节点都有本地内存,所有的节点都有一个共享空间。

1.3.1.5 COW

COW又叫工作站机群(Cluster of Workstation)。工作站机群的结构技术起点比较低,可以自己将一些服务器/微型机通过以太网连起来,加上相应的管理和通讯软件来搭建自己的工作站机群。

在集群中,每个节点都有本地磁盘,除了没有显示器没有鼠标没有键盘之外,基本上其他普通计算机该有的它都有。每个节点用I/O总线连向专门设计的多级高速网络,如前面在标准互连网络提到的那些。

机群也是构建并行计算机一种很廉价的方案,其被称为穷人的解决方案。使用这类并行计算机跑并行程序效率很低,但是由于它的性价比和搭建的简便性,使得近几年常被用于做并行科学计算和并行商用计算。

需要注意的是,机群不适合用于国家级的计算,因为由上述可知,实际上机群可以理解为是很多廉价的机器并在一起,而如果要运行速度跟快,能处理的数据更多,就需要并一个很大的机群。而如果机群并得很大,就会导致散热有问题。我们前面说过它们通过总线互联的,你总不能一个计算机在东一个计算机在西,然后一条总线连着吧。肯定是统一放在一个地方啊。而如果要处理大型的数据,一般机群所处的机房就要三四层楼那么高,篮球场那么宽,肯定不利于散热。

1.3.1.6 小结

image-20220311141519942

实际上上面的介绍的几类并行计算机结构模型现在已经慢慢地趋近于三类:分布共享存储计算机分布存储多计算机共享存储多处理机。刚刚讲过的那几个结构模型如下图所示:

image-20220311141924399

1.3.2 并行计算机访存模型

1.3.2.1 UMA

UMA(Uniform Memory Access)模型是均匀存储访问模型的简称。其特点是:

  • 物理存储器被所有处理器均匀共享
  • 所有处理器访问任何存储字取相同的时间
  • 每台处理器可带私有高速缓存
  • 外围设备也可以一定形式共享

image-20220311142305332

1.3.2.2 NUMA

与UMA与之相对的是NUMA(Nonuniform Memory Access)模型。它是非均匀存储访问模型的简称。特点是:

  • 被共享的存储器在物理上是分布在所有的处理器中的,其所有本地存储器的集合就组成了全局地址空间
  • 处理器访问存储器的时间是不一样的;访问本地存储器LM或群内共享存储器CSM较快,而访问外地的存储器或全局共享存储器GSM较慢。
  • 每台处理器照例可带私有高速缓存,外设也可以某种形式共享

1.3.2.3 COMA

COMA(Cache_Only Memory Access)模型是全高速缓存访问的简称,其特点是:

  • 各处理器节点汇总没有存储层次结构,全部高速缓存组成了全局地址空间
  • 利用分布的高速缓存目录D进行远程高速缓存的访问
  • COMA中的高速缓存容量一般都大于2级高速缓存容量
  • 使用COMA时,数据开始可任意分配,因为在运行时它最终会被迁移到要用到它们的地方

1.3.2.4 CC-NUMA

CC-NUMA(Coherent-Cache Nonuniform Memory Access)模型是高速缓存一致性非均匀访问模型的简称。其特点是:

  • 大多数使用基于目录的高速缓存一致性协议
  • 保留SMP结构易于编程的优点,也改善常规SMP的可扩放性
  • CC-NUMA实际上是一个分布共享存储的DSM多处理机系统
  • 它最显著的优点是程序员无需明确地在节点上分配数据,系统的硬件和软件开始时自动在各节点分配数据,在运行期间,高速缓存一致性硬件会自动将数据迁移到它要用的地方。

1.3.2.5 NoRMA

NoRMA(No-Remote Memory Access)模型是非远程存储访问模型的简称。NORMA的特点是:

  • 所有存储器都是私有的
  • 绝大数NUMA都不支持远程存储器的访问
  • 在DSM中,NORMA就消失了

image-20220311143934120

1.3.2.6 小结

image-20220311144033729

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习实战】极大似然法

2019独角兽企业重金招聘Python工程师标准>>> http://baike.baidu.com/link?url3Ej1VIItwWd35sXeoRWRhcJkJLCFvzPzNIoTkAfai8ZIS4Ppcch4_maQ25FjNCU1Eplsp4k3oPKLyv6VIsPhsq 一、 最大似然法是一种具有理论性的点估计法,基本思想是,当从模型…

机器学习的练功方式(九)——线性回归

文章目录致谢9 线性回归再相遇9.1 再遇9.1.1 概述9.1.2 矩阵和向量9.1.3 矩阵加减乘除9.1.3.1 矩阵——矩阵加减9.1.3.2 矩阵——标量加减乘9.1.3.3 矩阵——向量相乘9.1.3.4 矩阵——矩阵相乘9.1.3.5 矩阵的逆9.1.3.6 矩阵的转置9.1.4 向量化9.1.5 广义线性模型9.2 正规方程9.…

12个月份统计分组

/** 根据月份来统计trade里面的入账,支出,总盈利*/public function countMonth(){$in array();$out array();$res array();$year date("Y",time());$in_sql SELECT SUM(money) AS mon, FROM_UNIXTIME(cdate, "%m") AS m FR…

idea 调试技巧1

1 多线程调试 开发过多线程应用的朋友应该有体会,有些时候,为了观察多个线程间变量的不同状态,以及锁的获取等,就会想到在代码里加个断点debug一下。 在IDE里断点停下来的时候,可以切换到另外的线程中,跑其…

SQL server 复习一

第一天 下面我们从最基础的开始: 在运行里面输入:services.msc 一、启动服务 二、数据库登录的两种身份验证方式 另外一种身份验证方式就是SQL Server身份验证. sa不能使用的时候可以这样的操作: 1.用windows登录,然后在“实例”右键“属性”…

[分享]iOS开发-实现view底部控件随着键盘的弹出而上移的效果

首先说一下思路:想要达到底部控件随着键盘的弹出而上移的效果,那么我们必然需要的到键盘在弹出时的高度,以及原点坐标。说白了我们的大致思路就是,用view的高度-键盘弹出时的高度,得到的值就是底部控件与vi…

深度学习修炼(二)——数据集的加载

文章目录致谢2 数据集的加载2.1 框架数据集的加载2.2 自定义数据集2.3 准备数据以进行数据加载器训练致谢 Pytorch自带数据集介绍_godblesstao的博客-CSDN博客_pytorch自带数据集 2 数据集的加载 与sklearn中的datasets自带数据集类似,pytorch框架也为我们提供了数…

Css3之基础-5 Css 背景、渐变属性

一、CSS 背景概述背景属性的作用- 背景样式可以控制 HTML 元素的背景颜色、背景图像等 - 背景色- 设置单一的颜色作为背景- 背景图像- 以图片作为背景- 可以设置图像的位置、平铺、尺寸等二、CSS 背景属性背景色 background-color - 属性用于为元素设置背景色- 接受任何合法的颜…

机器学习的练功方式(十)——岭回归

文章目录十 岭回归10.1 岭回归的接口10.2 岭回归处理房价预测十 岭回归 岭回归是线性回归的改进,有时候迫不得已我们的参数确实不能少,这时候过拟合的现象就可能发生。为了避免过拟合现象的发生,既然不能从减少参数上面下手,那我…

OpenCV修养(一)——引入

文章目录1 引入1.1 OpenCV是啥1.2 OpenCV——Python1 引入 1.1 OpenCV是啥 OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高…

被解放的姜戈08 远走高飞

作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系。 之前在单机上实现了一个Django服务器(被解放的姜戈07 马不停蹄),现在我们可以把这个服务器推上一个云平台。这里我选择使用阿里云。 看着复仇的火焰…

OpenCV修养(二)——OpenCV基本操作

文章目录2 OpenCV基本操作2.1 IO操作2.2 图像基本操作2.2.1 图像绘制2.2.1.1 绘制直线2.2.1.2 绘制圆形2.2.1.3 绘制矩形2.2.1.4 添加文字2.2.1.5 试手2.2.2 获取/修改图像的像素点2.2.3 获取图像属性2.2.4 图像通道拆分/合并2.2.5 色彩空间改变2.2.6 边界填充2.3图像算数操作2…

ylbtech-LanguageSamples-Porperties(属性)

ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Porperties(属性)1.A,示例(Sample) 返回顶部“属性”示例 本示例演示属性为何是 C# 编程语言必不可少的一个组成部分。它演示了如何声明和使用属性。有关更多信息,请参见属性(C# 编…

Altium Designer敷铜的规则设定

InPolygon 这个词是铺铜对其他网络的设置,铺铜要离其他网络远点,因为腐蚀不干净会对 电路板有影响... 问题一:: 如下图所示,现在想让敷铜与板子边界也就是keepoutlayer的间距小一点,比如0.2MM。而与走线的间距比较大,比如0.8mm。要怎么设置规…

OpenCV修养(三)——图像处理(上)

文章目录致谢3 图像处理(上)3.1 几何变换3.1.1 图像缩放3.1.2 图像平移3.1.3 图像旋转3.1.4 仿射变换3.2 图像阈值3.3 图像平滑3.3.1 图像噪声3.3.1.1 椒盐噪声3.3.1.2 高斯噪声3.3.2 均值滤波3.3.3 方框滤波3.3.4 高斯滤波3.3.5 中值滤波3.3.6 小结3.4 …

机器学习的练功方式(十一)——逻辑回归

文章目录致谢11 逻辑回归11.1 引入11.2 激活函数11.3 损失函数11.4 梯度下降11.5 案例:癌症分类预测致谢 逻辑回归为什么用Sigmoid? - 知乎 (zhihu.com) 逻辑回归中的损失函数的解释_yidiLi的博客-CSDN博客_逻辑回归损失函数 11 逻辑回归 逻辑回归也被称…

【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈 原文:【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈摘要: 你玩魔兽不?你知道如何做一张魔兽地图不…

linux系统分两种更普遍的包,rpm和tar,这两种安装包如何解压与安装

2019独角兽企业重金招聘Python工程师标准>>> RPM软件包管理器&#xff1a;一种用于互联网下载包的打包及安装工具&#xff0c;它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。rpm -ivh xxxx.rpm <-安装rpm包 -i install的意思 -v view 查看更详细的…

C++类的数组元素查找最大值问题

找出一个整型数组中的元素的最大值。 1 /*找出一个整型数组中的元素的最大值。*/2 3 #include <iostream>4 using namespace std;5 6 class ArrayMax //创建一个类7 {8 public :9 void set_value(); 10 void max_value(); 11 void sh…

C++从0到1的入门级教学(二)——数据类型

文章目录2 数据类型2.1 简单变量2.2 基本数据类型2.2.1 整型2.2.2 实型&#xff08;浮点型&#xff09;2.2.3 字符型2.2.4 布尔类型2.3 sizeof关键字2.4 类型转换2.5 转义字符2.6 重新谈及变量2.6.1 字面值常量2.6.2 变量2.6.3 列表初始化2.7 数据的输入2 数据类型 2.1 简单变…