b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

计算机并行计算的基本问题及现状

电脑杂谈  发布时间:2019-06-26 07:04:47  来源:网络整理

并行计算机调度_并行计算机_并行计算机 架构

计算机并行计算的基本问题及现状

引言

编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。在计算集群中部署mpi环境,将openmp分别部署于计算集群中的各个计算机节点,运行计算集群,在mpi环境中可多线程并发运行程序,线程分配由人为操作来决定每个计算机节点上运行的线程数,计算集群由多个独立运行的计算机系统所组成的,并且是非共享内存的,每个计算机节点都拥有独立使用的系统资源。在并行计算机提供的并行编程环境上,具体实现并行算法,编制并行程序并运行该程序,从而达到并行求解应用问题的目的。

20世纪70年代,随着微电子技术的发展,出现了微型处理器(CPU)接着,1974年,全世界第一台个人电脑牛郎星顺利出炉。紧随其后,看到市场前景的苹果和IBM推波助澜,计算机开始进入个人时代。个人计算机同时又催生了软件业的高速发展,软件又带动CPU不断升级换代。这为并行计算摆脱高端路线,进入平民化时代打下了基础。

1并行计算的基本问题

1.1为什么需要并行计算

在个人计算机诞生后的几十年里,程序员们编写了大量的应用软件,这些软件决大部分了采用串行计算方法。所谓串行,是指软件在PC上执行,在进入CPU前被分解为一个个指令,指令在CPU中一条条顺序执行。任一时间内,CPU只能够运行一条指令。这种方式很符合我们对现实世界的思考习惯。至于软件的运行速度,则依赖硬件的处理能力,尤其CPU的处理速度。这种思维方式到了2005年遇到了挑战。在那一年,受限于制造CPU的半导体材料限制,左右CPU发展的摩尔定律开始失效了。但芯片业很快找到了一个变通的办法:在一块芯片中植入多个处理核心,通过多核的共同运算,提高运行速度。不幸的是,采用串行方法编写的软件面临着一个尴尬的局面:如果仍采用串行编程方式,运行速度将停滞不前。这样,原来需要CPU完成的提速工作,被迫需要软件自己来完成。在另一个领域:互联网,由于网络数据极速膨胀,数据量己经远远超过一台或者几台大型计算机的处理能力,需要更大数量的计算机协同完成。面对这些问题,主要的解决方案就是:并行计算。

1.2并行计算的涵义

并行计算目前还是一门发展中的学科。并行计算是相对串行计算而言的,并行计算可以分为时间上的并行计算和空间上的并行计算。

时间上的并行计算就是流水线技术,即采用指令预取技术,将每个指令分成多步,各步间叠加操作,当前指令完成前,后一指令准备就绪,缩小指令执行的时钟周期。典型的以时间换空间。

并行计算机_并行计算机调度_并行计算机 架构

空间上的并行计算是指由多个处理单元(不仅是CPU)执行的计算,是以空间换时间。空间上的并行计算分为两类:单指令多数据流(SIMD)和多指令多数据流(MIMD)

流水线上虽然一条指令仍需3个时钟周期来完成,但通过多个部件并行,使得处理器的吞吐率约为每个周期一条指令,提高了流式指令的处理速度,从而可达到 o.9 mips/mhz的指令执行速度。这样原本四工位非流水线的一个周期是 800 个皮秒的话,在流水线设计的处理器上,虽然同样的指令完成时间依然是 800 皮秒,但是第二条指令则可能只需要在第一条指令完成时间加 200 皮秒即第 1000 皮秒就能完成,而非流水线设计则需要第 1600 皮秒才能完成。intel酷睿微体系结构在提升每个时钟周期的指令数方面做了很多努力,例如新加入宏融合(macro-fusion)技术,它可以让处理器在解码的同时,将同类的指令融合为单一的指令,这样可以减少处理的指令总数,让处理器在更短的时间内,以更低的功率处理更多的指令。

MIMD大致又分为5类:工作站集群 (COW)。对称多处理机(SMP)。并行处理机(MPP)。分布共享存储处理机(DSM ) ,并行向量机(PVP)。

空间并行计算技术包括数据并行计算和任务并行计算。数据并行计算是指将一个大的数据分解为多个小的数据,分散到多个处理单元执行。任务并行是将大的任务分解为小的任务,分散到多个处理单元执行,任务并行同时还要避免任务重复执行,协调数据的上下文关系,避免冲突发生。任务并行计算与实际应用需求紧密相关。所以,任务并行计算要比数据并行计算复杂得多。并行计算与串行计算的最大不同在于,并行计算不仅要考虑计算本身,还要考虑并行处理模型。网络通信。计算协作诸多问题。

1.3主要的并行计算体系类型

1.3.1工作站集群(COW Cluster of Workstation)

工作站集群可以理解为:PC+网络。它可以由少数几台PC扩展到数千个节点的并行系统并行计算机,既可以是廉价的并行程序调试环境,也可以成为的高性能计算平台。集群由于低成本,动态可扩充的特点,己经成为高性能计算平台的主流。目前Google搜索和云计算业务即采用这一方式。我国的联想深腾XXXX,曙光XXXX系列均属此类。

1.3.2多处理系统(SMP Symmetric Multi Processing)

它由多个紧耦合多处理器组成,最大特点就是共享全部资源。

1.3.3并行处理系统(MPP Massively Parallel Processing)

并行计算机调度_并行计算机_并行计算机 架构

由许多松祸合处理单元(不是处理器)组成的。这种结构与SMP对立,每个单元自成体系,包括CPU。内存。硬盘。操作系统,最大特点是不共享资源。刀片服务器属于此列。

1.3.4分布式共享存储多处理(DSM)

它可以视为对SMP的可扩充,将共享数据映射到不同的物理位置。数据的同步由硬件或者软件来完成。是目前高性能计算机的主流发展方向之一。

1.3.5并行向量机(PVP ,Parallel Vector Processor )

并行矩阵-向量乘法的加速比 并行矩阵-向量乘法的效率。此有限,一般用定点运算就可以满足工作要求,而雷达和声纳信号处理需要较大的数据动态范围和数据精度,按定点处理可能发生溢出,往往必需用浮点运算完成,同时,雷达信号处理不同于其他类型的信号处理,不仅运算量大,数据吞吐量也很大,这样对处理单元的输入输出速度和处理机互联网络的通信能力都有很高的要求。为了在程序处理时最大可能的利用tsl01的总线资源,提高脉压处理的速度,针对tsl01 6mbit片上存储区分为mo,m1,m2三个区域及其各区域可具有独立总线的优点,我们将程序代码放在片上存储区mo,旋转因子及匹配滤波器系数放在m2,而输入及输出乒乓存储区设置到m1,这样在进行脉压处理中最耗时间的fft和ifft运算时,便可充分利用tsioi的指令并行优势,试验证明,这样设置比将所有参与运算的数据采用其他任何方式存放至少节省10%的指令周期。

1.4并行计算的处理模式

1.4.1主从模型( MS , Master-slave )

即有一个主进程,其他是从进程。主进程负责整个系统的控制(包括任务调度。负载平衡),从进程负责对数据的处理和计算任务。Google搜索业务目前就是采用的这种编程模型。

1.4.2对称处理模型(SPM)

这种架构没有主从概念之分,所有进程的地位都是平等的。在并行执行过程中,我们可以任意选择其中一个进程执行输入输出操作,其他进程扮演同样的角色。

并行计算机调度_并行计算机_并行计算机 架构

1.4.3多程序处理模型( MPPM )

在计算机集群中,每台计算机节点执行不同的程序和相同的程序。

1.5并行计算设计原则

(1)适应性。并行算法是并行计算的基础,是为解决实际问题而出现,必须与实际应用相结合。

(2)可扩展。并行算法是否能够随计算节点增加或减少而同步的线性变化,是评价一个并行算法是否有效的重要标志之一。

(3)粗粒度。通常情况下,粒度越大越好。这是因为在每个处理机中有很多需要计算的工作任务,如此可以充分发挥多处理机的作用。并行加速比对细粒度问题一般情况下是不会很高的,这也是为什么并行计算需要求解问题的原因所在。

(4)减少通信。一个高效的并行算法,通信是至关。提高性能的一个关键是减少数据通信量和通信次数。

在服务器的性能方面,整机柜通常只有双路计算节点、存储型节点和gpu型节点,但曙光的tc6600刀片服务器除了以上三个服务器性能外,还包含四路计算型节点和双路存储型节点。针对模型训练对计算性能的要求,青云qingcloud深度学习平台采用专为人工智能计算设计的nvidia tesla p100 gpu,并以直通的方式与平台内的节点对接,使得节点可以独占整个gpu,避免了虚拟化带来的损耗,全面释放gpu的计算能力,为用户提供极致计算性能,全力加速深度学习领域人工智能产品的开发。并且有上万种的aix商用应用软件支持、网络与信息服务以及决策支持等非科学计算领域、网络信息服务和科学计算的通用并行计算机系统,动态分区及管理由服务器聚集软件执行,其它节点进行科学计算、集成化并行编程环境和服务器聚集软件等已处于国际领先水平,单节点功能强大。

1.6并行计算设计方法

1.6.1分片

并行计算机 架构_并行计算机_并行计算机调度

(1)数据分片。数据分片包括两类:数值分片和哈希分片。数值分片适用于己知数据范围的分解,如果Int,Long类型处理。哈希分片适用于未知数据范围的数据分解,包括字符串,字节数组类型。

数据分片的并行计算最早应用于并行向量计算机(pvp))经过长期实践表明,该技术可以高效地求解大部分的科学和工程计算问题。使用计算力学方法虽然可对其进行数值求解,但由于计算模型要对实际问题进行简化,故计算结果的正确性仍须经实验应力分析的方法来验证。 在目前的cfd市场, fluent以其在非结构网格的基础上提供丰富物理模型而著称,久经考验的数值算法和鲁棒性极好的求解器保证了计算结果的精度,新的nita算法大大减少了求解瞬态问题的所需时间,成熟的并行计算能力适用于nt,linux或unix平台,而且既适用单机的多处理器又适用网络联接的多台机器。

说到.net中的并行编程,也许你的第一反应就是task并行计算机,确实task是一个非常灵活的用于并行编程的一个专用类,不可否认越灵活的东西用起来就越。在消息传递编程模型中,而传递原语中,消息的大小是一个很重要的参数,以往的编程平台要求程序员给出消息的总字节数以确定消息的大小,但由于异构机在表示同一类型的数据时,所采用的机器字长可能是不一样的,这样就不可避免地给消息传递带来问题,即表示相同类型的同样个数的数据所占缓冲区内存总字节数随机器的不同而变化,从而使得并行程序对硬件有极强的依赖性,在程序移植时,用户不仅需要深入了解机器特性,还有可能需要修改每一条消息传递原语,不利于并行程序的交流及并行计算技术的推广。以上两个并行框架如何选择,各适合那些场景(或者算法)如果数据量不大,能够fit到内存中,并且对fault tolerant要求不高 => mpi如果数据量大,内存装不下,机器比较挫且多 => mapreduce其实我觉得mpi程序和mapreduce程序的编程复杂度差不多... 2015 ...。

1.6.2通信

协调计算过程中的数据共享。通信工作目前主要由TCP/IP协议完成。

1.6.3组织

组织各任务并发执行,提高性能。在主线程的控制下,子线程在此承担具体的并发操作任务。

1.6.4映射

分配任务(分布处理。共享处理)。线程和通信共同完成。1.7并行计算应注意的事项

(1)任务分解:这是所有并行计算的核心问题,优秀的任务分解需要保证平均和处理负载的平衡,同时,随着处理器能力的动态伸缩动态调节。

(2)通信:并发处理离不开网络通信联系。相较与CPU运算,数据在网络间传递延迟是并发处理的瓶颈之一。光纤网络是目前最好的选择。

(3)并行协调:是并行运算过程中控制流程。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-108505-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...