精华内容
下载资源
问答
  • 并行与分布式计算:并行程序设计的基本原则(三)Section 3 并行程序的基本设计原则3.1 增量并行化3.2 Foster的设计理念(四步法)3.2.1 划分数据划分任务划分Pipelining(生产线)Foster检查表3.2.2 通信Foster检查...


    鱼生苦短,争取更咸!!!

    Section 3 并行程序的基本设计原则

    设计一个并行程序,一般是从两方面出发的:

    • 从实际工程的角度考虑,我们一般试图改进已有的串行程序,而不是凭空创造并行程序,这就是所谓的增量并行化原则
    • 从并行设计的角度考虑,我们一般采用Foster的抽象模型,从而设计出逻辑严密结构清晰效率很高的并行程序

    下面我们一一进行介绍

    3.1 增量并行化

    一般并行程序的设计过程

    1. 研究一个串行程序
    2. 寻找串行性能瓶颈和并行化可能
    3. 尝试使所有处理器开始干活吧!

    3.2 Foster的设计理念(四步法)

    划分、通信、聚集、映射(吐槽:罗老师的PPT接下来的部分完全照抄了教材)
    在这里插入图片描述

    3.2.1 划分

    主要内容:选取合适的方式将计算和数据分成小模块

    • 考虑方向一:如何最大化利用数据并行(即所谓的域分解)
      • 将数据分成小块
      • 决定如何将计算与数据结合(通常考虑最大和最频繁访问的数据)
    • 考虑方向二:如何最大化利用任务并行
      • 将计算分成小块
      • 决定如何将数据与计算结合
    • 考虑方向三:利用流水线并行性
      • 如最大化利用每一个循环
      • 尽可能降低initial interval

    数据划分

    1. 决定数据应该如何在处理器间分配
    2. 决定每一个处理器的计算任务

    例子:寻找一个数组中的最大值,数组被均分给n-1个处理器,每个处理器找到最大值,将其汇总到最后一个处理器,这个处理器给出最大值

    任务划分

    1. 将计算任务分配给不同处理器
    2. 决定哪些数据元素应该被哪些处理器读写

    例子:GUI的事件处理器

    Pipelining(生产线)

    • 装配流水线式并行
      • 每一个“工人”只干一件事
      • 可以想象,每一个人干完自己的加工部分就把东西传给下一个人,然后从上一个人那里拿到材料重复这个过程

    例子:3D渲染

    在这里插入图片描述在这个例子里,处理N个data sets,需要N+3步(一个处理器只能同时搞一个数据集,故而每个数据集要排队顺次进入生产线)

    注意 生产线只能提高产量,不能解决线程间或处理器间交互延迟(这是显然的)

    • Initial Interval(II)的限制
      • 在上述举例中,四个逻辑单元要流水线式的完成两个数据集的任务,必须让第二个数据集额外等待1 step

      • 很显然,当II=1时,总产量将达到最大,但这并不总是可能的在这里插入图片描述

        • 在这个例子中,使用1间隔将引发错误(在r*v2和r+v1同时进行了,这就可能引发错误——先加的话结果就错了)
          • 第三个处理器加完v1[i-1]第四个处理器开始给r乘v2[i-1],此时第三个处理器也回过头去给r加v1[i]

    Foster检查表

    完成设计后,对划分步骤进行如下考察(后面的检查表也是同理)

    • 原始任务至少要比处理器数高一个数量级
    • 冗余计算和冗余数据结构存储最小化
    • 原始任务的大小大概相同
    • 任务数是问题规模的一个增量函数

    3.2.2 通信

    • 局部通信:部分任务之间通讯的通道
    • 全局通信:全部任务间通讯的通道

    一般来说,在算法设计阶段为任务规划通信通道并没有什么卵用

    Foster检查表

    • 平衡任务间的通讯操作
    • 每个任务仅仅与少量邻居进行通讯
    • 任务能够并发执行通讯
    • 任务能够并发执行计算

    3.2.3 聚集

    聚集是为了改善性能或简化编程而将任务合并为大的任务的过程。

    在MP程序中,一般是每个处理器一个聚集任务

    目标

    • 降低通信开销

      • 将相互通讯的原始任务聚集起来,他们之间的通信就会完全消除

      • 合并发送信息的任务组与接受信息的任务组(发送少量长信息比发送总长相等的大量短消息耗时更少)

        1

    • 维持并行设计的可扩展性

      • 例如对8x128x256的矩阵问题的第二维和第三维做聚集是目光短浅的做法,因为这将导致并行算法无法移植到具备8个以上CPU的系统上
    • 减少软件工程上的开销

      • 如果我们正在对一个串行程序进行并行化,聚集允许我们更多的使用现成的串行代码,节约开发时间和成本

    Foster检查表

    • 聚集增加了并行算法的局部性
    • 复制的计算比它们所替代的通信花费的时间要少
    • 复制的数据总量足够小,使得算法具有可扩展性
    • 聚集后的任务有相似的计算和通信开销
    • 任务数是问题规模的一个增函数
    • 任务数尽可能少,但至少要与目标计算机中的处理器数目一样多
    • 合理权衡聚集带来的好处与修改现有串行代码的开销

    3.2.4 映射

    映射是将任务分配给处理器的过程。对于集中式多处理器系统来说,操作系统会自动解决这个问题,所以我们假定目标系统为分布存储的并行计算机

    目标

    • 最大化处理器的利用率
      • 处理器利用率:执行用于求解问题的时间的平均百分比
    • 最小化处理器之间的通信
      • 尽量将通道相连的任务映射到同一个处理器
    • 两者不可兼得,要找一个合理的折中点(不过寻找这个东西的最优解是一个NP难问题,所以这句话的意思是这玩意还得靠感觉…)

    任务数固定时的映射方法

    映射方法应因地制宜,平衡利用率与通信消耗

    • 对于高度结构化的通讯
      • 每个任务都是固定的计算量
        • 将任务聚集以减少通讯
        • 每个处理器开一个聚集任务
      • 每个任务有变化的计算量
        • 周期性的将任务分配给处理器
    • 对于非结构通讯
      • 使用静态负载平衡算法(Static Load Balancing Algorithm)

    任务数量动态变化

    • 任务间有大量通讯
      • 使用动态负载平衡算法(Dynamic Load Balancing Algorithm)
    • 有大量执行时间较短的小任务
      • 使用伴随程序运行的任务分配方法(Runtime Task-Scheduling Algorithm)

    任务数动态变化时常见的任务调度算法

    • 集中式算法
      • 有一个管理者CPU,工人CPU完成任务时从管理者处申请一个任务,管理者则回复一个任务,工人完成任务后返回解并申请另一个任务
    • 分布式算法
      • 推:有太多可用任务的处理器将任务分给临近处理器
      • 拉:没有任务的处理器向临近处理器请求任务
    • 综合算法

    总结

    在这里插入图片描述

    Foster检查表

    • 是否已经考虑基于一个处理器对应一个任务和一个处理器对应多个任务的设计
    • 是否已经评估了静态和动态地将任务分配给处理器
      • 动态:管理者是否是性能的瓶颈
      • 静态:任务数与处理器个数比例不低于10:1
    展开全文
  • 并行分布仿真对复杂大规模动态系统的研究以及探索,对长远的应用提供...在分别论述四类基本的时间推进同步机制,即保守机制、乐观机制、混合机制和自适应机制的同时,还分析了各自的优缺点,指出了今后的研究发展方向
  • 转自: ...云计算与并行计算、分布式计算的区别,以计算机用户来说,并行计算是由单个用户完成的,分布式计算是由多个用户合作完成的,云计算是没有用户参与,而是交给网络另一端的服务器完成的。

    转自:http://blog.163.com/litianyichuanqi@126/blog/static/1159794412012387453794/

    一、并行计算与分布式计算

    并行计算并行计算是相对于串行计算来说的。可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。例如基于CUDA编程。并行计算的目的就是提供单处理器无法提供的性能(处理器能力或存储器),使用多处理器求解单个问题。

    总结:并行的主体 -- 处理器;进程/线程级并行。

    分布式计算 分布式计算研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。最近的分布式计算项目已经被用于使用世界各地成千上万位志愿者的计算机的闲置计算能力,通过因特网,可以分析来自外太空的电讯号,寻找隐蔽的黑洞,并探索可能存在的外星智慧生命等。
    总结:并行的主体 -- 计算机;各个计算机并行

    并行计算与分布式计算的区别 (1)简单的理解,并行计算借助 并行算法和并行编程语言 能够实现 进程级并行(如MPI)和线程级并行(如openMP)。 而分布式计算只是将任务分成小块到各个计算机分别计算各自执行。(2)粒度方面,并行计算中,处理器间的交互一般很频繁,往往具有细粒度和低开销的特征,并且被认为是可靠的。而在分布式计算中,处理器间的交互不频繁,交互特征是粗粒度,并且被认为是不可靠的。并行计算注重短的执行时间,分布式计算则注重长的正常运行时间。(3)联系,并行计算和分布式计算两者是密切相关的。某些特征与程度(处理器间交互频率)有关,而我们还未对这种交叉点(crossover point)进行解释。另一些特征则与侧重点有关(速度与可靠性),而且我们知道这两个特性对并行和分布两类系统都很重要。(4)总之,这两种不同类型的计算在一个多维空间中代表不同但又相邻的点。


    二、集群概念

    1、集群计算 计算机集群使将一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性价比要高得多。根据组成集群系统的计算机之间体系结构是否相同,集群可分为同构与异构两种。集群计算机按功能和结构可以分为,高可用性集群(High-availability (HA) clusters)、负载均衡集群(Loadbalancing clusters)、高性能计算集群(High-performance (HPC)clusters)、网格计算(Grid computing)。
         高可用性集群 一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。
         负载均衡集群 负载均衡集群运行时,一般通过一个或者多个前端负载均衡器,将工作负载分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性。这样的计算机集群有时也被称为服务器群(Server Farm)。 一般高可用性集群和负载均衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。Linux虚拟服务器(LVS)项目在Linux操作系统上提供了最常用的负载均衡软件。
         高性能计算集群  高性能计算集群采用将计算任务分配到集群的不同计算节点儿提高计算能力,因而主要应用在科学计算领域。比较流行的HPC采用Linux操作系统和其它一些免费软件来完成并行运算。这一集群配置通常被称为Beowulf集群。这类集群通常运行特定的程序以发挥HPC cluster的并行能力。这类程序一般应用特定的运行库, 比如专为科学计算设计的MPI库。HPC集群特别适合于在计算中各计算节点之间发生大量数据通讯的计算作业,比如一个节点的中间结果或影响到其它节点计算结果的情况。

    2、网格计算 网格计算是分布式计算的一种,也是一种与集群计算非常相关的技术。如果我们说某项工作是分布式的,那么,参与这项工作的一定不只是一台计算机,而是一个计算机网络,显然这种“蚂蚁搬山”的方式将具有很强的数据处理能力。网格计算的实质就是组合与共享资源并确保系统安全。网格计算通过利用大量异构计算机的未用资源(CPU周 期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供一个模型。网格计算的焦点放在支持跨管理域计算 的能力,这使它与传统的计算机集群或传统的分布式计算相区别。网格计算的目标是解决对于任何单一的超级计算机来说仍然大得难以解决的问题,并同时保持解决 多个较小的问题的灵活性。这样,网格计算就提供了一个多用户环境。

    3、集群计算与网格计算的区别 (1)简单地,网格与传统集群的主要差别是网格是连接一组相关并不信任的计算机,它的运作更像一个计算公共设施而不是一个独立的计算机。网格通常比集群支持更多不同类型的计算机集合。(2)网格本质上就是动态的,集群包含的处理器和资源的数量通常都是静态的。在网格上,资源则可以动态出现,资源可以根据需要添加到网格中或从网格中删除。(3) 网格天生就是在本地网、城域网或广域网上进行分布的。网格可以分布在任何地方。而集群物理上都包含在一个位置的相同地方,通常只是局域网互连。集群互连技 术可以产生非常低的网络延时,如果集群距离很远,这可能会导致产生很多问题。物理临近和网络延时限制了集群地域分布的能力,而网格由于动态特性,可以提供 很好的高可扩展性。(4)集群仅仅通过增加服务器满足增长的需求。然而,集群的服务器数量、以及由此导致的集群性能是有限的:互连网络容量。也就是说如果一味地想通过扩大规模来提高集群计算机的性能,它的性价比会相应下降,这意味着我们不可能无限制地扩大集群的规模。 而网格虚拟出空前的超级计算机,不受规模的限制,成为下一代Internet的发展方向。(5)集群和网格计算是相互补充的。很多网格都在自己管理的资源中采用了集群。实际上,网格用户可能并不清楚他的工作负载是在一个远程的集群上执行的。尽管网格与集群之间存在很多区别,但是这些区别使它们构成了一个非常重要的关系,因为集群在网格中总有一席之地—— 特定的问题通常都需要一些紧耦合的处理器来解决。然而,随着网络功能和带宽的发展,以前采用集群计算很难解决的问题现在可以使用网格计算技术解决了。理解网格固有的可扩展性和集群提供的紧耦合互连机制所带来的性能优势之间的平衡是非常重要的。


    三、云计算

    云计算 云计算是最新开始的新概念,它不只是计算等计算机概念,还有 运营服务 等概念了。它是 分布式计算、并行计算和网格计算 的发展,或者说是这些概念的 商业实现 。云计算不但包括分布式计算还包括分布式存储和分布式缓存。 分布式存储又包括分布式文件存储和分布式数据存储

    云计算与并行、分布式、网格和集群计算的区别 云计算是从集群技术发展而来,区别在于集群虽然把多台机器联了起来,但其某项具体任务执行的时候还是会被转发到某台服务器上,而云可以简单的认为是任务可以被分割成多个进程在多台服务器上并行计算,然后得到结果,好处在于大数据量的操作性能非常好。云可以使用廉价的PC服务器 ,可以管理大数据量与大集群,关键技术在于能够对云内的基础设施进行动态按需分配与管理。云计算与并行计算、分布式计算的区别,以计算机用户来说,并行计算是由单个用户完成的,分布式计算是由多个用户合作完成的,云计算是没有用户参与,而是交给网络另一端的服务器完成的。
    展开全文
  • 为执行并行计算,计算资源应包括一台配有多处理机(并行处理)的计算机、一个网络相连的计算机专有编号,或者两者结合使用。并行计算的主要目的是快速解决大型且复杂的计算问题。  并行计算可以划分成时间...

    1. 并行计算(Parallel Computing)  

      并行计算或称平行计算是相对于串行计算来说的。并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程。为执行并行计算,计算资源应包括一台配有多处理机(并行处理)的计算机、一个与网络相连的计算机专有编号,或者两者结合使用。并行计算的主要目的是快速解决大型且复杂的计算问题。

      并行计算可以划分成时间并行和空间并行。时间并行即流水线技术,空间并行使用多个处理器执行并发计算,当前研究的主要是空间的并行问题。以程序和算法设计人员的角度看,并行计算又可分为数据并行和任务并行。数据并行把大的任务化解成若干个相同的子任务,处理起来比任务并行简单。

      空间上的并行导致两类并行机的产生,按照Michael Flynn(费林分类法)的说法分为单指令流多数据流(SIMD)和多指令流多数据流(MIMD),而常用的串行机也称为单指令流单数据流(SISD)。MIMD类的机器又可分为常见的五类:并行向量处理机(PVP)、对称多处理机(SMP)、大规模并行处理机(MPP)、工作站机群(COW)、分布式共享存储处理机(DSM)。

     

    2. 分布式计算(Distributed Computing)

      分布式计算这个研究领域,主要研究分散系统(Distributed system)如何进行计算。分散系统是一组计算机,通过计算机网络相互链接与通信后形成的系统。把需要进行大量计算的工程数据分区成小块,由多台计算机分别计算,在上传运算结果后,将结果统一合并得出数据结论的科学。

      目前常见的分布式计算项目通常使用世界各地上千万志愿者计算机的闲置计算能力,通过互联网进行数据传输。如分析计算蛋白质的内部结构和相关药物的Folding@home项目,该项目结构庞大,需要惊人的计算量,由一台电脑计算是不可能完成的。即使现在有了计算能力超强的超级电脑,但是一些科研机构的经费却又十分有限。

       分布式计算比起其它算法具有以下几个优点: 
      1、稀有资源可以共享。
      2、通过分布式计算可以在多台计算机上平衡计算负载。
      3、可以把程序放在最适合运行它的计算机上。其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。

     

    3. 并行计算与分布式计算的区别

      (1)简单的理解,引用Answers.com上一个答案:

      Parallel computing and distributed computing are ways of exploiting parallelism in computing to achieve higher performance. Multiple processing elements are used to solve a problem, either to have it done faster or to have a larger size problem been solved. To state simply, if the processing elements share the memory, it is called parallel computing, otherwise it is called distributed computing. Some have opinion that distributed computing is a special form of parallel computing.

      并行计算与分布式计算都是运用并行来获得更高性能,化大任务为小任务。简单说来,如果处理单元共享内存,就称为并行计算,反之就是分布式计算。也有人认为分布式计算是并行计算的一种特例。

      但是分布式的任务包互相之间有独立性,上一个任务包的结果未返回或者是结果处理错误,对下一个任务包的处理几乎没有什么影响。因此,分布式的实时性要求不高,而且允许存在计算错误(因为每个计算任务给好几个参与者计算,上传结果到服务器后要比较结果,然后对结果差异大的进行验证。

      分布式要处理的问题一般是基于“寻找”模式的。所谓的“寻找”,就相当于穷举法!为了尝试到每一个可能存在的结果,一般从0~N( 某一数值)被一个一个的测试,直到我们找到所要求的结果。事实上,为了易于一次性探测到正确的结果,我们假设结果是以某个特殊形式开始的。在这种类型的搜索里,我们也许幸运的一开始就找到答案;也许不够走运以至于到最后才找到答案,这都很公平。

      这么说,并行程序并行处理的任务包之间有很大的联系,而且并行计算的每一个任务块都是必要的,没有浪费的分割的,就是每个任务包都要处理,而且计算结果相互影响,就要求每个的计算结果要绝对正确,而且在时间上要尽量做到同步,而分布式的很多任务块可以根本就不处理,有大量的无用数据块,所以说分布式计算的速度尽管很快,但是真正的“效率”是低之再低 的,可能一直在寻找,但是永远都找不到,也可能一开始就找到了;而并行处理不同,它的任务包个数相对有限,在一个有限的时间应该是可能完成的。

      分布式的编写一般用的是C++(也有用JAVA的,但是都不是主流),基本不用MPI接口。并行计算用MPI或者OpenMP。

     

    4. 集群计算(Cluster Computing)

      计算机集群将一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性价比要高得多。

      根据组成集群系统的计算机之间体系结构是否相同,集群可分为同构与异构两种。集群计算机按功能和结构可以分为,高可用性集群(High-availability (HA) clusters)、负载均衡集群(Loadbalancing clusters)、高性能计算集群(High-performance (HPC)clusters)、网格计算(Grid computing)。

      高可用性集群,一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。

      负载均衡集群,负载均衡集群运行时,一般通过一个或者多个前端负载均衡器,将工作负载分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性。这样的计算机集群有时也被称为服务器群(Server Farm)。一般高可用性集群和负载均衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。Linux虚拟服务器(LVS)项目在Linux操作系统上提供了最常用的负载均衡软件。

      高性能计算集群,高性能计算集群采用将计算任务分配到集群的不同计算节点儿提高计算能力,因而主要应用在科学计算领域。比较流行的HPC采用Linux操作系统和其它一些免费软件来完成并行运算。这一集群配置通常被称为Beowulf集群。这类集群通常运行特定的程序以发挥HPC cluster的并行能力。这类程序一般应用特定的运行库, 比如专为科学计算设计的MPI库。HPC集群特别适合于在计算中各计算节点之间发生大量数据通讯的计算作业,比如一个节点的中间结果或影响到其它节点计算结果的情况。

     

    5. 网格计算(Grid Computing)

      网格计算是分布式计算的一种,也是一种与集群计算非常相关的技术。如果我们说某项工作是分布式的,那么,参与这项工作的一定不只是一台计算机,而是一个计算机网络,显然这种“蚂蚁搬山”的方式将具有很强的数据处理能力。网格计算的实质就是组合与共享资源并确保系统安全。

      网格计算通过利用大量异构计算机的未用资源(CPU周 期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供一个模型。网格计算的焦点放在支持跨管理域计算 的能力,这使它与传统的计算机集群或传统的分布式计算相区别。网格计算的目标是解决对于任何单一的超级计算机来说仍然大得难以解决的问题,并同时保持解决 多个较小的问题的灵活性。这样,网格计算就提供了一个多用户环境。

     

    6. 集群计算与网格计算的区别

      (1)简单地,网格与传统集群的主要差别是网格是连接一组相关并不信任的计算机,它的运作更像一个计算公共设施而不是一个独立的计算机。网格通常比集群支持更多不同类型的计算机集合。

      (2)网格本质上就是动态的,集群包含的处理器和资源的数量通常都是静态的。在网格上,资源则可以动态出现,资源可以根据需要添加到网格中或从网格中删除。

      (3)网格天生就是在本地网、城域网或广域网上进行分布的。网格可以分布在任何地方。而集群物理上都包含在一个位置的相同地方,通常只是局域网互连。集群互连技 术可以产生非常低的网络延时,如果集群距离很远,这可能会导致产生很多问题。物理临近和网络延时限制了集群地域分布的能力,而网格由于动态特性,可以提供 很好的高可扩展性。

      (4)集群仅仅通过增加服务器满足增长的需求。然而,集群的服务器数量、以及由此导致的集群性能是有限的:互连网络容量。也就是说如果一味地想通过扩大规模来提高集群计算机的性能,它的性价比会相应下降,这意味着我们不可能无限制地扩大集群的规模。 而网格虚拟出空前的超级计算机,不受规模的限制,成为下一代Internet的发展方向。

      (5)集群和网格计算是相互补充的。很多网格都在自己管理的资源中采用了集群。实际上,网格用户可能并不清楚他的工作负载是在一个远程的集群上执行的。尽管网格与集群之间存在很多区别,但是这些区别使它们构成了一个非常重要的关系,因为集群在网格中总有一席之地—— 特定的问题通常都需要一些紧耦合的处理器来解决。然而,随着网络功能和带宽的发展,以前采用集群计算很难解决的问题现在可以使用网格计算技术解决了。理解网格固有的可扩展性和集群提供的紧耦合互连机制所带来的性能优势之间的平衡是非常重要的。

     

    7. 云计算(Cloud Computing)

      云计算是最新开始的新概念,它不只是计算等计算机概念,还有运营服务等概念了。它是分布式计算、并行计算和网格计算的发展,或者说是这些概念的商业实现。云计算不但包括分布式计算还包括分布式存储和分布式缓存。分布式存储又包括分布式文件存储和分布式数据存储。

     

    8. 云计算与并行、分布式、网格和集群计算的区别

      云计算是从集群技术发展而来,区别在于集群虽然把多台机器联了起来,但其某项具体任务执行的时候还是会被转发到某台服务器上,而云可以简单的认为是任务可以被分割成多个进程在多台服务器上并行计算,然后得到结果,好处在于大数据量的操作性能非常好。云可以使用廉价的PC服务器 ,可以管理大数据量与大集群,关键技术在于能够对云内的基础设施进行动态按需分配与管理。云计算与并行计算、分布式计算的区别,以计算机用户来说,并行计算是由单个用户完成的,分布式计算是由多个用户合作完成的,云计算是没有用户参与,而是交给网络另一端的服务器完成的。

    展开全文
  • 并行计算分布式计算网格高性能计算机资料收集    并行计算是相对于串行计算来说的,所谓并行计算分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行...

    并行计算分布式计算网格高性能计算机资料收集
     
     
    并行计算是相对于串行计算来说的,所谓并行计算分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。
     
     
    并行计算科学中主要研究的是空间上的并行问题。空间上的并行导致了两类并行机的产生,按照Flynn的说法分为:单指令流多数据流(SIMD)和多指令流多数据流(MIMD)。我们常用的串行机也叫做单指令流单数据流(SISD)。
     
      MIMD
    类的机器又可分为以下常见的五类:
     
     
    并行向量处理机(PVP)
     
    对称多处理机(SMP)
     
    大规模并行处理机(MPP)
     
    工作站机群(COW)
     
    分布式共享存储处理机(DSM)
      [
    编辑]访存模型
     
    并行计算机有以下四种访存模型:
     
     
    均匀访存模型(UMA
     
    非均匀访存模型(NUMA
     
    全高速缓存访存模型(COMA
     
    一致性高速缓存非均匀存储访问模型(CC-NUMA)和非远程存储访问模型(NORMA)。
     
     
     
                                                                           
     
    从物理划分上,共享内存和分布式内存是两种基本的并行计算机存储方式,除此之外,分布式共享内存也是一种越来越重要的并行计算机存储方式。
      
    存储问题在计算机中的地位越来越重要,现在计算机的性能在很大程度上决定于存储器,而且新型的计算机有可能采用以存储器为中心而不是传统的以处理器为中心。共享内存的并行计算机在编程上相对简单,容易使用,但是它有一个重要的缺点就是扩展性较差,不可能有太多的处理器共用相同的存储器,这样由于一致性访问和读写冲突等问题会引起计算效率的降低。对于分布式内存的并行计算机,其扩展性较好,增加更多的处理器引起的问题不会象共享内存一样突出,但是在这样的计算机上编写并行程序相对较难。
     
    共享内存的并行计算机
      
    对于共享内存的并行计算机,各个处理单元通过对共享内存的访问来交换信息、协调各处理器对并行任务的处理。对这种共享内存的编程,实现起来相对简单,但共享内存往往成为性能特别是扩展性的重要瓶颈。
     
    分布式内存的并行计算机
      
    对于分布式内存的并行计算机,各个处理单元都拥有自己独立的局部存储器,由于不存在公共可用的存储单元,因此各个处理器之间通过消息传递来交换信息,协调和控制各个处理器的执行。这是本书介绍的消息传递并行编程模型所面对的并行计算机的存储方式。不难看出,通信对分布式内存并行计算机的性能有重要的影响,复杂的消息传递语句的编写成为在这种并行计算机上进行并行程序设计的难点所在,但是,对于这种类型的并行计算机,由于它有很好的扩展性和很高的性能,因此,它的应用非常广泛。
     
    分布式共享内存的并行计算机
      
    分布式共享内存的并行计算机结合了前两者的特点,是当今新一代并行计算机的一种重要发展方向。对于目前越来越流行的机群计算(Cluster Computing),大多采用这种形式的结构。通过提高一个局部结点内的计算能力,使它成为所谓的"超结点",不仅提高了整个系统的计算能力,而且可以提高系统的模块性和扩展性,有利于快速构造超大型的计算系统。
     
     
    并行计算资料收集
     
     
     
    〖原创〗ANSYSCFX10并行计算全套攻略(windowslinux - 傲雪论坛
      http://www.aoxue.org/cgi-bin/bbs/topic_show.cgi?id=99554&h=1
     
     
    开发Linux下的并行程序
      http://linux.ccidnet.com/art/302/20021104/29571_1.html
     
     
    架构高性价比的分布式计算机集群
      http://linux.ccidnet.com/art/737/20021029/29111_1.html
     
      [
    转帖]PhoenicsSTAR-CDCFX三种软件的比较
      http://cfluid.imcas.net/cgi-bin/ ...  rum=7&topic=771
     
     
    高性能并行计算PDF
      http://www.sccas.cn/gb/learn/download/presentation.pdf
     
      SimWe
    仿真论坛 并行计算
      http://www.simwe.com/forum/archiver/fid-56-page-23.html
     
     
    流体力学
      http://combust.hit.edu.cn/cgi-bin/forums.cgi?forum=17
     
      [
    总结]windowsfluent并行
      http://219.232.54.3/cgi-bin/LB50 ...  m=6&topic=9849#
     
      [
    本帖最后由  zglloo   2007-10-17 19:29 编辑]
     
     

        
     
      www.equn.com
    分布式中国
          

     

    展开全文
  • 为执行并行计算,计算资源应包括一台配有多处理机(并行处理)的计算机、一个网络相连的计算机专有编号,或者两者结合使用。并行计算的主要目的是快速解决大型且复杂的计算问题。  并行计算可以划分成时间并行.....
  • 内部资料。关于分布式并行计算,无锁编程相关的最新研究方向
  • 科普:并行计算、分布式计算、集群计算和云计算   1. 并行计算(Parallel Computing)   并行计算或称平行计算是相对于串行计算来说的。并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题...
  • 并行计算、分布式计算、网格计算云计算都属于高性能计算(High Performance Computing,HPC)的范畴,主要目的在于对大数据的分析处理,但它们却存在很多差异。电子海图云服务是基于高性能计算的理论技术、通过...
  • 并行计算:并行计算是相对于串行计算来说的。...分布式计算:分布式计算研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算
  • 为执行并行计算,计算资源应包括一台配有多处理机(并行处理)的计算机、一个网络相连的计算机专有编号,或者两者结合使用。并行计算的主要目的是快速解决大型且复杂的计算问题。  并行计算可以划分成时间...
  • 为执行并行计算,计算资源应包括一台配有多处理机(并行处理)的计算机、一个网络相连的计算机专有编号,或者两者结合使用。并行计算的主要目的是快速解决大型且复杂的计算问题。    并行计算可以划分成时间并...
  • 为执行并行计算,计算资源应包括一台配有多处理机(并行处理)的计算机、一个网络相连的计算机专有编号,或者两者结合使用。并行计算的主要目的是快速解决大型且复杂的计算问题。  并行计算可以划分...
  • 高性能计算及应用专题研讨会Seminar on High Performance Computing and Applications第 35 期 (总第94期)主题报告: 迈向分布式并行计算Towards distributed parallel computing报 告 人:姜 海 博士,美国阿肯色州...
  • 分布式计算、并行计算及集群、网格、云计算的区别
  • 提高GPU性能开发分布式并行图形绘制技术成为了提高绘制性能的两个主流方向。但对大规模的场景实时绘制的应用而言单GPU的处理能力仍满足不了需求,并行绘制成为了唯一的选择。分布图形并行绘制系统从最
  • ACM网站刚刚发布消息,出生于英国的理论计算科学家、哈佛大学教授Leslie Valiant因为“对众多计算理论(包括PAC学习、枚举复杂性、代数计算和并行与分布式计算)所做的变革性的贡献”而获得最新一届计算机科学最高...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,501
精华内容 13,800
关键字:

并行与分布式方向