精华内容
下载资源
问答
  • 在概述并行计算云计算与什么关系之前,我们有必要先阐述一下并行计算云计算等相关的概念,是大家对本文的内容能够理解更加透彻。1、并行计算并行计算其实早就有了,所有大型编程语言都支持多线程,多线程就是一...

    在概述并行计算和云计算与什么关系之前,我们有必要先阐述一下并行计算、云计算等相关的概念,是大家对本文的内容能够理解更加透彻。

    1、并行计算

    并行计算其实早就有了,所有大型编程语言都支持多线程,多线程就是一种简单的并行计算方式,多个线程并行地争抢CPU时间。

    并行计算(Parallel Cpmputing)是指同时使用多种计算机资源解决计算问题。并行计算的主要目的是快速解决大型且复杂的计算问题。此外还包括:利用非本地资源节约成本,即使用多个“廉价”计算机资源取代大型计算机,同时克服计算机上存在的存储器限制问题。

    传统上,串行计算是指在单个计算机(具有单个中央处理单元)上执行软件写操作。CPU逐个使用一系列指令解决问题,但在每一个时刻只能执行一种指令。并行计算是在串行计算的基础上演变而来的,它努力仿真自然世界中的事物状态:一个序列中众多同时发生的、复杂且相关的事件。

    为利用并行计算,通常计算问题表现为以下特征:

    将工作分解成离散部分,有助于同时解决;

    随时并行及时得执行多个程序指令;

    多计算资源下解决问题的耗时要少与单个资源下的耗时。

    并行计算是相对于串行计算来说的,所谓并行计算分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并行地执行计算。

    2、云计算

    云计算是一种计算模式,代表了在某种程度上共享资源进行设计、开发、部署、运行应用,以及资源的可扩展收缩和应对连续性的支持。目前大部分的云计算基础架构是由用户终端向数据中心传送可申请服务的网络,以及建立在服务器上的不同层次的虚拟化技术组成的,使人们可以在任何有提供网络基础设施的地方使用这些服务。因此,云的基本概念是通过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再由多部服务器组成的庞大系统搜索、计算分析之后将处理结果回传给用户终端。让他通过这项技术,远程的服务供应商可以在数秒之内,达成处理数以千万计甚至亿计的信息,达到和“超级电脑”同样强大效能的网络服务。

    你可能会说,这不正是分布计算的概念吗?没错,云计算可以说是分布计算、并行计算、网络计算等一脉相承的技术路线,甚至可以说它们的基因是相同的。但它们给人的外貌是不同的,它们在技术架构上是有差异的。简单的说,云计算是经过商业包装的名词,它为分布存储和分布计算找到了盈利模式。从概念上讲,可把云计算看成是“存储云+计算云”的有机结合,即“云计算=存储云+计算云”。存储云的基础技术是分布存储,而计算云的基础技术是分布计算,更准确说在是并行计算。

    因此,云计算的基础架构首先是要确保能实现并行计算。并行计算的作用是将大型的计算任务拆分,然后再派发到云中的各个节点进行分布式的并行计算,最终再将结果收集后统一处理。如果说云计算是并行计算的升华的话,那么云计算基础架构更在另一层面上更大的进步:计算资源虚拟化。简单的说,就是计算云中的所有计算资源都被看成一个可分配和回收的计算资源池,用户可根据自己的实际需求申请相应的计算资源。这种资源虚拟化得益于近来兴起的虚拟机技术,采用虚拟机实现资源的虚拟化,避免了硬件异构的特性。即无论什么样的硬件机器攒在一起,其计算资源都可被量化到计算资源池中,并被动态分配和动态调整。动态调整是指不需要重新启动系统就可调整资源大小,这是虚拟化技术的最大用处之一。这种虚拟化和我们在自己机器上安装的虚拟机所采用的虚拟化技术大同小异,其不同之处在于个人用户的使用模式是将一台物理机器的资源虚拟化成多份,以使得其能同时启动多个操作系统;而云中的虚拟化技术是将多个物理机器的资源虚拟化成一个大的资源池,让用户感觉是在使用一个巨大资源的机器。

    从这个角度而言,云计算不是新技术,而是新的资源利用模式。我们可以把云计算看作是前代计算模式(比如网格计算、透明计算、效用计算)的阶段升级。云计算的实质是一种基础架构管理的方法论,是把大量的计算资源组成IT资源池,用于动态创建高度虚拟化的资源提供用户使用。在云计算环境下,所有的计算资源,比如说服务器能够动态地从硬件基础架构上增减,以适应工作任务的需求。所以,云计算最真实完整的基础架构是一个由多种产品和服务集成起来的端到端的解决方案。云计算基础架构的本质是通过整合、共享和动态的硬件设备供应来实现IT投资的利用率最大化。因此,云计算的基础架构的本质可以看成是:并行计算+资源虚拟化。

    c8005129787068c18a630bcaa0ef0b52.png

    3、云计算和并行计算

    简单而言,并行计算就是在并行计算机上所做的计算,它与常说的高性能计算(high performance computing)、超级计算(super computing)是同义词,因为任何高性能计算机和超级计算总离不开并行计算计算。并行计算是在串行计算的基础上演变而来的,它努力仿真自然世界中一个序列中含有众多同时发生的、复杂且相关的事物状态。近年来,随着硬件技术和新型应用的不断发展,并行计算也有了若干新的发展,如多核体系结构、云计算、个人高性能计算机等。所以,云计算是并行计算的一种形式,也属于高能性能计算、超级计算的形式之一。作为并行计算的最新发展计算模式,云计算意味着对于服务器端的并行计算要求的增强,因为数以万计用户的应用都是通过互联网在云端来实现的,它在带来用户工作方式和商业模式的根本性改变的同时,也对大规模并行计算的技术提出了新的要求。

    如果您还想浏览更多的内容,欢迎登陆课课家教育或关注公众号【课课家IT精品课程】,感谢对课课家教育的大力支持。

    展开全文
  • 云计算并行计算

    2014-06-22 19:50:18
    介绍相关云计算中的并行计算,介绍较为简单明了适合初学者学习。
  • 并行计算:一台电脑和处理机(当然局域网内的几台电脑也可以),多处处理机之间协同计算,最后结果由一台计算机得出;  分布计算:多台联网的计算机,有各自的主机和处理器,通过网络分配共享计算任务和计算信息;...

      并行计算:一台电脑和处理机(当然局域网内的几台电脑也可以),多处处理机之间协同计算,最后结果由一台计算机得出;

      分布计算:多台联网的计算机,有各自的主机和处理器,通过网络分配共享计算任务和计算信息;把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后  把这些计算结果综合起来得到最终的结果。

      云计算,指计算机通过网络发送计算命令给服务器,让服务器执行计算任务并将结果返还给发送命令的计算机

      不同点就是,并行计算是由一个用户完成,分布计算是由多个用户完成,云计算是由服务器完成,用户不参加计算。

      对于初学者的我来说,先暂时这样理解吧,实际上云计算是一种概念,可能云计算时就用到了分布计算,但是没那么多时间对这一块进行深究。

    转载于:https://www.cnblogs.com/hongcong/p/5755597.html

    展开全文
  • 并行计算可以划分成时间并行和空间并行。时间并行即流水线技术,空间并行使用多个处理器执行并发计算,当前研究的主要是空间的并行问题。
  • 云计算中的并行计算技术分析

    千次阅读 2015-06-19 09:31:09
    本文阐述了并行计算云计算的关系,简要回顾并行计算的历史,分析了并行计算的重要技术OpenMP、MPI和Erlang,研究了这些技术在中国电信的应用方法,并介绍了中国电信实施云计算并行计算的指导思想、原则和策略。...

    摘要

    本文阐述了并行计算和云计算的关系,简要回顾并行计算的历史,分析了并行计算的重要技术OpenMP、MPI和Erlang,研究了这些技术在中国电信的应用方法,并介绍了中国电信实施云计算、并行计算的指导思想、原则和策略。

    一、引言

    计算是一个含义丰富的概念,包括了服务、市场、技术等诸多方面。通常提到的IaaS、PaaS和SaaS,严格地说是基于服务的术语,并不是对技术的描述。从技术上看,云计算是对主机、存储、网络资源分配、使用、管理的技术。其核心是对主机资源分配、使用、管理的技术,主机资源也可称为计算资源。云计算技术包括两个似乎对立的技术,这两个技术都是用于对资源进行分配、使用和管理。


    一个技术是对资源进行分割,将资源的分配、使用的粒度变细,主机的虚拟化就是这样的技术。通过引入虚拟主机,将物理主机的能力进行分割,使主机计算能力的分配、使用不是基于单台物理主机,而是基于细分的虚拟主机。简单地说,虚拟化技术就是对资源进行拆分的技术。


    另一个技术是利用多个物理主机的能力完成一个任务。分布式并行计算就是这样的技术。分布式并行计算将任务分解为多个子任务分派给主机集群中的各个主机,子任务在多个主机上协调并行运行。简单地说,分布式并行计算技术就是对资源进行聚合的技术。事实上,分布式并行计算才更加体现出云计算的本质。云计算的名称和分布式并行计算、网格计算是一脉相承的。不过,分布式并行计算应该只是并行计算的一种,从下文的分析可以看出,对于云计算除了分布式并行计算这个主要的并行模式外,还有其他的并行模式。本文不仅分析分布式并行计算,还分析了非分布式的并行计算。


    二、并行计算的历史

    并行计算出现在20世纪60年代初期,这个时期晶体以及磁芯存储器开始出现,处理单元变得越来越小,存储器也更加小巧和廉价。这些技术的发展结果导致并行计算机的出现,这一时期的并行计算机大多是规模不大的共享存储多处理器系统,即所谓大型主机。IBM360是这一时期的典型代表。


    长久以来,并行计算在高性能计算领域发展得如火如荼,并行计算的体系结构也在不断地变化。并行计算所依赖的平台称为并行机,并行机由多个节点组成,任务被分解到各个节点,在各个节点并行运行。早期的并行节点,并不是互相完全独立的主机,更像1台主机的各个模块。到了20世纪90年代,随着网络设备的发展以及MPI/PVM等并行编程标准的发布,集群架构的并行计算机开始出现。此时的并行计算硬件平台的节点就是彼此独立的主机了。


    现代的并行机体系结构有对称多处理共享存储并行机(symmetricmultiprocesser,SMP)、分布共享存储(distributedsharedmemory,DSM)并行机、大规模并行机(massivelyparallelprocessor,MPP)、并行向量多处理机(parallelvectorprocessor,PVP)。所有这些体系结构的并行机都是高高在上位于“云”端的,但和云计算没有直接的关系。所幸的是,另外一种体系结构的并行机出现了,这就是工作站(PC)机群(clusterofworkstation(beowulfPC-cluster),COW)。PC机群的诞生背景是微处理器性能和网络带宽的飞速发展。PC机群的诞生中止了并行计算和并行机的贵族身份,让并行飞入到“寻常百姓家”。PC机群的性能绝不容轻视,如早期128台Pentium3800MHz处理器的PC通过个24端口100Mbit/s的交换机互联,其浮点峰值性能达1000亿,当时的成本不过200万亿元人民币,性价比比当时最好的大型主机并行机还要高30倍。


    PC机群为云计算的诞生奠定了基础。Google的云计算就是在PC机群的基础上发展起来的。Google的机群由遍布全球的PC通过广域网连接而成。


    三、并行计算概述

    行计算的实现层次有两个。


    单机(单个节点)内部的多个CPU、多个核并行计算,虽然单节点内部的并行计算不是实施云计算的主流,但由于目前多CPU、多核已经成为主机提高性能的一个非常重要的方面。


    集群内部节点间的并行计算。对于云计算来说,更加强调的是集群节点间的并行。目前,集群中的节点一般是通过IP网络连接,在带宽足够的前提下,各节点不受地域、空间限制。所以,云计算中的并行计算在很多时候被称作分布式并行计算。不过,多CPU、多核是主机的发展趋势,所以在一个集群内,一般2个级别的并行都要求存在,集群内多节点之间并行,节点内部多处理器、多核并行。节点间的并行计算,和虚拟化成熟的产品不同,并行计算没有成熟的产品,只有相对成熟的工具。并行计算的实现,依赖于开发者和用户对业务的熟悉,对并行工具正确、熟练的使用。


    并行应用软件从需求分析到设计再到部署,可以分为3个步骤。


    (1)在需求分析阶段,根据业务特点,将任务尽可能地分为可以并行执行的多个任务。这是实现并行计算最基础的、往往也是最有效的阶段。
    (2)在设计、编码阶段,采用并行工具进行程序设计。这个阶段所应用的并行技术是最核心的并行技术,难度最大,技术也不成熟,而且目前大部分技术人员对这个阶段所应用的技术还没有足够程度的掌握。
    (3)在应用部署阶段,采用并行部署架构和工具部署应用。这个阶段就是通过部署,使应用所占用的设备能够实现负载均衡。负载均衡本质上也属于并行计算。常用的方法为采用负载均衡设备,如F5交换机、ESB等。这个阶段所涉及的技术比较成熟,已为业界广泛采用。第二阶段的并行计算就是狭义的并行计算,本文主要分析这个阶段的并行计算技术。

    四、并行计算编程模型分析

    并行计算编程模型一直是并行计算研究领域中的重点内容,它和并行计算机体系结构紧密相关。共享存储体系结构下的并行编程模型主要是共享变量编程模型,它具有单地址空间、编程容易、可移植性差等特点,其实现有OpenMP和POSIX等。分布式存储体系结构下的并行编程模型主要有消息传递编程模型和分布式共享编程模型两种。消息传递编程模型的特点是多地址空间、编程困难、可移植性好,其实现有MPI、PVM等;分布式共享编程模型是指有硬件或软件的支持,在分布式体系结构下实现的具有共享变量编程模型特点的编程模型。后者可以按照硬件或软件的实现分为DSM和SVM,其实现有TreadMark和JiaJia等,目前研究热点的分割全局地址空间(PGAS)模型的研究有UPC等代表,具有很强的发展潜力。


    并行计算编程模型一般包括两类:一类是在原有串行编程语言基础上,引入并行控制机制,提供并行API、运行库或者并行编译指令,这类模型包括OpenMP、MPI以及大家广为熟悉的MapReduce;另一类则是并行编程语言,其语言本身就是基于并行算法的,相对影响比较大的主要有Erlang。前面说过,并行计算的实现有两个层次,一个是集群节点间的并行,另一个节点内的并行。OpenMP一般用于实现节点内并行,MPI一般用于实现节点间的并行;而Erlang既可以实现节点间的并行,也可以实现节点内的并行。对于大家已经比较熟悉MapReduce,本文就不再做分析。本文重点分析OpenMP、MPI和Erlang这3个并行计算编程技术。


    五、OpenMP

    目前从x86到小型机,多核是CPU的主流,对于单线程(singlethread)的程序,多核的处理器并没有办法提升它的处理效能;对于多线程(multithread)的程序,就可以通过不同的核同时计算来达到提高性能的目的。当然,多线程程序的执行性能依赖于对任务的分解。多线程程序的编写、维护,比单线程的程序要复杂不少。一般而言,采用了多线程编程技术,只要主机是多处理器、多核或者拥有同时执行多个线程的能力,那么多线程程序的执行性能还是远远高于单线程的。


    传统的多线程程序编写一般有两种方法:

    1、通过调用操作系统功能、开发工具自己的多线程控制语句或控制函数来实现;
    2、采用POSIX标准和方法,利用POSIX的线程控制库函数来实现。


    这些方法都是通过主thread去产生多个thread,由主要的thread把工作拆开,分给各thread去运算,最后再由主thread回收、整合结果。使用这两种方法存在以下问题。


    1、程序的开发复杂性较单线程程序增加很多。
    2、第一种方法的移植性还存在问题。
    3、若要具有好的扩展性,则更加复杂。多线程应该不只是创建固定数量的线程,而应该随着CPU核数的增加而增加线程。如果用上述方法,虽然可以实现良好的扩展性,但控制十分复杂。
    4、多线程对多核处理器的负载均衡调度需要开发者自己实现,十分复杂。

    使用OpenMP则解决了上述问题。


    OpenMP是多线程的一种编程方法,它的并行粒度是线程级别的。它的适用范围是单机内的并行计算,可以很好地利用单机内多CPU或者多核。OpenMP就是一套API和运行库,可以简化单机内的多线程开发,让设计人员和开发人员的主要精力集中到对任务的理解和拆分上,而具体的细节交给OpenMP去完成,用OpenMP的编程效率要远远高于使用一般函数库或者操作系统自带函数库的多线程编程,也大大优于POSIX标准和方法。OpenMP是作为共享存储标准而问世的。它是为在多处理机上编写并行程序而设计的一个应用编程接口,包括一套编译指导语句和一个用来支持它的函数库。


    OpenMP能通过伪指令,很简单地将程序多线程化。最简单的情形,甚至可以只加一行指导编译程序的编译伪指令,就可以将循环内的语句并行处理了。


    OpenMP起源于C/C++,但目前已经有OpenMP的Java开发包,使其可以用于Java编程。


    六、MPI

    OpenMP虽然很优秀,但只是单机内的并行计算技术。无论是并行计算还是云计算,其并行计算的主流是主机之间的并行而并非单机内的并行。因此,MPI(messagepassinginterface)才是并行计算的代表性技术。
    1994年5月1.0版的MPI标准诞生,该标准提出了一种基于消息传递的函数接口描述。目前,MPI已发展到2.0版,成为高性能计算的一种公认标准。MPI本身并不是一个具体的实现,而只是一种标准描述。MPI最为著名且被广泛使用的一个具体实现是由美国Argoone国家实验室
    (argonnenationallaboratory)开发小组完成的MPICH,MPICH是一个免费软件,它提供对Fortran和C语言等的绑定支持,以函数库的形式提供给开发者使用。


    采用MPI在程序设计上有较大的自由度,甚至可以用它实现Hadoop中的MapReduce功能。


    消息传递方式是广泛应用于并行机的一种模式,特别是分布存储并行机。10多年来,这种模式在重要的计算应用中已取得了实质进步。


    在设计MPI时,目标不是选择采用现存消息传递系统中的某一个,而是充分利用这些系统的最抽象特点。


    建立消息传递标准的主要优点是可移植性和易于使用。以低级消息传递程序为基础的较高级和(或)抽象程序所构成的分布存储通信环境中,标准化的效益特别明显。消息传递标准的定义能提供给生产商清晰定义的程序库,以便他们能有效地实现这些库或在某些情况下为库程序
    提供硬件支持,因此加强了可扩展性。


    简单地说,MPI是为编写消息传递程序而开发的广泛使用的标准。像这个接口一样,应为消息传递建立一个实际的、可移植的、有效的和灵活的标准。全部目标如下:


    设计一个应用编程接口(不必为编译器或系统实现库);

    1、允许有效的通信,避免存储器到存储器的拷贝,而允许计算和通信的重叠,尽可能给通信协同处理器卸载;
    2、对于接口,允许方便的C语言和Fortran77联接;
    3、设定一个可靠的通信接口,用户不必处理通信失败,这些失败由基本的通信子系统处理;
    4、定义一个接口,提供更大灵活性的扩展;
    5、定义一个接口,它能在基本的通信和系统软件无重大改变时,在许多生产商的平台上实现,接口的语义是独立于语言的;
    6、接口应设计成允许线索-安全(thread-safety)。

    MPI的一个非常大的优势是大范围的可移植性,在标准Unix处理器间通信协议的上层实现的MPI将给工作站群机系统和不同种类的工作站网络提供可移植性。


    这个标准包括点对点通信、集合操作、进程组、通信上下文、进程拓扑结构、与Fortran77和C语言绑定、环境管理和查询、描述接口。


    七、Erlang

    Erlang首先是一种类似于函数的编程语言,这种语言天生就是为并行计算而设计的。本来这种比Java还古老的语言,一直无人问津,但是主机的多处理器、多核的发展趋势,特别是云计算的兴起,给Erlang又带来了生机。


    业界对于并行计算的探索一直没有停止,尤其是云计算的发展促进了并行计算各种方法、模式的发展,如Java的Concurrency库、Intel推出的ThreadingBuildingBlocks库、微软为RoboticsStudio提供的CCR库等。但这些措施只是为先天串行的程序设计语言提供了后天的并行能力,属于亡羊补牢。而Erlang则是先天并行的,在单台主机上,利用多处理器和多核的优势,Erlang将传统编程方法远远甩在后面。据说使用Erlang编写的YawsWeb服务器,其并发性能是使用C编程的apache的15倍!根据实测,apache在并发4000连接时就已经崩溃,而YawsWeb服务器可实现并发8万连接。


    Erlang不仅是程序设计语言,还是包括一个类似于Java的虚拟机在内的一个完整的平台。通过虚拟机,Erlang独立于硬件平台和操作系统,在这个平台上实现了网络通信、内存管理、进程调度、并发机制和分布式计算等功能。


    Erlang最初是由爱立信专门为通信应用设计的,因此非常适合于构建分布式、实时软并行计算系统。


    Erlang具有以下特点。

    (1)并发性
    Erlang的轻量级进程可以支持极高的并发性,而且在高并发的情况下内存使用相当少。Erlang的并发性并不会受到宿主操作系统并发性的限制。

    (2)分布式
    最开始Erlang的设计目标就是实现分布式环境,Erlang的一个虚拟机就是Erlang网络上的一个节点。一个Erlang节点可以在另一个Erlang节点上创建自己的并发进程,而子进程所在的节点可能是运行其他操作系统的服务器。不同节点之间可以进行极为高效而又精确的通信,就像这些通信运行在同一个节点一样。

    (3)健壮性
    Erlang内部建设有多种错误检测原语,可以通过这些原语来架设高容错性的系统。在分布式状态下,可以把系统配置成具有Fail-over功能的分布式系统。当有其他节点出错的时候,系统会把它的运行场景自动快速地切换到备份节点上。Erlang支持9个9级别的故障率,一年只有几分钟的故障时间。

    (4)软实时
    它可以提供毫秒级别的响应。

    (5)热代码升级
    对于不能中断运行的系统,Erlang允许程序代码在运行系统中被修改。旧代码被逐步淘汰后能被新代码替换。在此过渡期间,新旧代码是共存的。这也使得安装bug补丁在运行系统上升级而不干扰系统操作成为了可能。

    (6)递增式代码装载
    用户能够控制代码被装载的细节。在嵌入式系统中,所有代码通常是在启动时就被完全装载。在开发系统中,代码是按需装载的,甚至在系统运行时被装载的。如果测试到了未覆盖的bug,那么需替换有bug的代码。

    (7)外部接口
    Erlang进程与外部世界之间的通信使用和在Erlang进程之间通信相同的消息传送机制。这种机制被用于和操作系统通信、与其他语言编写的程序交互。


    使用Erlang编写出的应用程序运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通信。进程间上下文切换对于Erlang来说仅仅只是一两个环节,比起C程序的线程切换要高效得多了。


    使用Erlang来编写分布式应用要简单得多,因为它的分布式机制是透明的,对于程序来说并不知道自己是在分布式运行。


    Erlang运行时的环境是一个虚拟机,有点像Java虚拟机,这样代码一经编译,同样可以随处运行。它运行时的系统甚至允许代码在不被中断的情况下更新。另外,如果需要更高效的话,字节代码也可以编译成本地代码运行。


    Erlang能够创建和管理大量的进程(不是操作系统级别的)。那些进程在不同的操作系统上有同样的行为,可以被垃圾回收,对运行地点透明(locationtransparent),不会破坏其他进程的运行。任意两个进程间完全独立,不共享任何状态,一切交流通过消息来传递,当然也就无需上锁。这样的设计思想造就了适合解决如下问题的Erlang。


    (1)系统高度并发
    Erlang具有优秀的并行性能,特别适合高度并发操作。
    (2)实时处理
    在并行情况下,Erlang响应迅速,性能优良。
    (3)计算高度分布
    Erlang适合集群节点间的并行,也就是基于网络的分
    布式并行。
    (4)系统要求高度可靠
    每年的脱机时间以分钟算,甚至永不宕机。
    (5)可靠性高
    Erlang内容的检测原语,极大地提高了系统的容错
    性,进而提高了系统的可靠性。


    对于经常需要更新、升级的系统,Erlang能够在线更新,无需中断系统运行,新旧代码可以同时运行。可以看出,Erlang非常适合于电信领域的应用,只是它是个小众产品和方案,熟悉它的人太少。其实,应该高度重视Erlang,并进行深入研究,根据研究结果引入到支撑系统的开发当中。


    八、云计算及并行计算在中国电信的应用和研究

    1、中国电信IT支撑系统实施云计算的指导思想、目标和策略

    随着云计算不断向广度和深度发展,中国电信对于云计算的探索和研究投入很大,但在应用上比较谨慎。

    1.1云计算实施指导思想

    按照中国电信企业信息化战略规划的要求,根据其内部IT支撑系统的特点,密切跟踪云计算技术的演进趋势,充分利用云计算技术带来的优势,积极、务实、稳妥地探索企业内部MBOSS云计算技术的应用;有效降低IT系统总体拥有成本,同时规避云计算应用过程中存在的各种风险,保证MBOSS稳定、可靠、安全运营,确保有效支撑企业业务经营、网络运营和内部管理的各项需求。

    1.2计算实施目标

    (1)降低IT系统总体拥有成本(TCO)
    重点基于PC服务器构建IaaS云计算平台,实现多应用基于IaaS平台的共享部署,提高基础设施资源利用率,降低硬件成本占比,实现IT投资结构的优化及IT总体拥有成本的降低,并做到系统的稳定、可靠运行。

    (2)更快、更好地满足业务需要
    在云计算适用的应用范围内,积极推进云计算的实施,利用IaaS云计算平台能根据业务需要快速分配资源并能够弹性扩展的特点,实现应用快速部署及处理资源动态伸缩,更好地满足业务需要。

    (3)提升云计算平台的管理和运营能力
    积极推进云计算应用的同时,加强云计算平台管理系统建设,提高平台的自动化配置及管理能力,加强IT人员云计算技术培训,提高云计算平台管理及运营能力。


    目前的指导思想是云计算在技术上分为两类:一类为以虚拟化为代表的资源分割技术,另一类则为以并行计算为代表的资源聚合技术。

    1.3 IT支撑云实施策略

    IT支撑系统的云计算实施是中国电信整个云计算实施的一个非常重要的组成部分。中国电信IT支撑云的实施核心在于提高支撑系统的运行效率,提高运行的可靠性,降低系统的运行成本。随着电信用户数量的不断攀升、业务种类迅速增加、业务规模不断扩大,支撑系统软件的规模和复杂性也在快速增加,超过了硬件性能的提升速度,用于购置、维护硬件的费用也在不断增加。实施基于集群架构的并行计算,则是满足IT支撑云核心需求的基本策略。原因如下:


    1、实施并行计算的集群总体性能,其性能提升可以随集群节点的增加而近似线性提升,目前业界的集群节点已经达到数千个,集群的总体性能远远超过单台高性能主机;

    2、集群内节点互相冗余,整个集群的可靠性远远超过单台主机;

    3、集群的节点可以采用廉价主机,未来的方向是使用x86主机集群代替高性能Unix主机。

    2、并行计算应用现状

    电信支撑系统大多属于高负载应用,这些长期以来需要运行在高性能的小型机上。近年来,逐渐引入并行计算已摆脱对高性能小型机的依赖,解决了硬件成本过高、性能提升有限的问题,主要包括以下两类。


    (1)对数据库进行分库是实现数据的分布存储和并行操作对于计费、账务这类海量数据的存储和操作规模比较大的省公司,一般是根据地域对数据进行分割,不同地域的数据存放到不同的位置,由不同的节点处理。这种并行比较原始,各节点之间耦合度很小,不需要复杂的协同。其优点是对应用无需进行改变即可利用多节点的优势。但并行度较低,资源利用率不高。

    (2)利用负载均衡工具实现并行计算
    对于应用层面,目前已经较普遍地利用负载均衡工具实现一定程度的并行计算。4层交换机是较为常见的工具,此外还有中间件服务器的负载均衡功能也得到较为普遍的应用。近几年,企业服务总线(ESB)也逐步被引入。


    除此以外,近年也在开发阶段引入并行计算。在CRM中部分采用SOA架构,模块可以由ESB等工具进行调度,实现一定程度的并行。

    3、并行计算研究

    中国电信MBOSS系统的支撑云建设重点在于并行计算。支撑系统云计算的实施主要不是对资源进行分割,而是对资源进行聚合。因为支撑系统大都属于“重型”应用,占用计算和存储资源较多,一般单节点资源已经难以满足需求,再对单节点实施分割意义不大。


    对于电信应用的并行化,首先需要对应用特点进行分类,根据不同的特点采用不同的并行策略。并行策略,也要充分考虑到当前的运行状况,在可靠性、成本等限制条件下,逐步实施。其中,可靠性是需要特别注意的。


    对电信应用的划分,可以有多个维度。这里根据计算量、并发性和数据量的大小属性进行分类。具体说,这3个属性为任务执行时间、任务的并发量、单个任务输入(即处理)的数据量。可以只对每个特点分为2个等级:大和小,至于介于大和小之间的,则呈不典型特征,可以根据偏大还是偏小而决定,具体有待进一步研究。目前,对属性值大小的判断,主要还是定性的判断,定量的判断有待进一步深入研究。下面对属性值的分类进行示例,仅供参考。


    应用3个特点的2个等级,可以有8个组合,但有些组合在实际中不可能存在,或者在电信行业不存在。具体见表1。

    这里写图片描述

    根据上面的分析,在电信的实际应用场景中,需要实施并行计算的有以下2类应用:
    1、大任务小并发大数据;
    2、小任务大并发小数据。
    下面针对具备这两个典型特点的应用,探讨并行化策略。

    3.1大任务小并发大数据

    这类应用一般为批处理应用。这类应用可以按功能耦合度和数据耦合度划分。功能耦合度指的是模块之间的功能耦合度,数据耦合度指的是各部分数据之间的耦合度。每个维度取“强”和“弱”2个值,则有表2所列4个组合。

    这里写图片描述

    需要指出的是,就总体而言,电信应用属于数据密集型应用,在应用逻辑上并不十分复杂。


    (1)现状
    目前,这类应用也做了不少集群部署,能够进行一定程度的负载均衡。其方法如下:是多实力部署,每台服务器上部署相同的应用,服务器环境配置也大致相同,实现方法不对应用逻辑进行分割,只是做多实例部署,对数据进行静态分割,具体如以下2个分布式实现方法。

    1、服务器在负载均衡器调度下形成集群,达到负载均衡。
    2、对数据进行分片,片与片之间数据基本没有关联,不同的实例处理不同片的数据。这种情况下,只是实施了负载分担,没有形成一个统一的集群,因为实例之间没有任何关系,也没有统一的管理平台进行管理,不能达到真正的负载均衡。


    (2)并行化策略
    应用并行化的策略,首先是总体架构实施SOA,对于大任务的应用更是如此。在功能上拆分的方法常常是根据任务处理的流程,将相对独立的流程处理模块独立出来,进行解耦、封装。

    不过,电信处理逻辑属于商业处理逻辑,总体来说并不复杂,从逻辑功能上对应用进行拆分,由于这些逻辑大多是流程性的,即使经过解耦,在技术上可以实施并行,但由于其对应的实际业务是流程性的,执行必须有先后顺序,所以事实上这些服务只能是分布式部署,并不一定能并行执行。

    但是,这类应用数据量的特点提供了根据数据对应用进行拆分的可能性。从前面的现状分析可以看出,目前事实上的分布式多实例部署,很多就是根据数据进行的。电信数据有一个很重要的特点,就是数据的地域独立性,同一个业务,不同地区的数据是彼此独立的。如计费数据,广州的数据和珠海的数据是彼此独立的,虽然广州的计费应用和珠海的计费应用是相同的。对同一个本地网来说,不同区的数据也是彼此独立的,如广州花都区的计费数据和广州番禺区的计费数据是彼此独立的。根据这个特点,就可以进行任务拆分,实施集群并行计算。可以选择的方法有MPI和MapReduce,但是MapReduce方法目前的实现是基于Hadoop的开源,并非是Google公开的其本身所采用的,所以其具体效果有待验证,目前中国移动已经使用MapReduce进行了较大规模的试验,中国电信股份有限公司广东研究院(简称广东电信研究院)也进行了这方面的大量研究和测试,就广东电信研究院的测试情况来看,基于Hadoop的>MapReduce实现,在处理大任务大数据方面效果明显。MPI的方法经过多年充分的实践,应该可以认为非常可靠,但是MPI模式处理失效节点方面需要设计人员予以更多的关注,因为它本身不能直接处理节点失效的情况,但由于电信应用逻辑的并发特别复杂,并发属于计算密集型,所以由应用逻辑实现节点的管理也是可以接受的。

    3.2小任务大并发小数据

    这类应用一般都是实时在线处理,对相应速度要求很高。一般应用中的Web层以及OCS、ABM都属于这类。这类应用有以下特点:

    1、实时性强,用户在线等待任务处理结果,任务处理时间短暂,响应速度必须快速;
    2、并发性高,短时间内,一般会有大量请求发生;
    3、稳定性高,这也是实时性的要求,如果服务出现不稳定(指软件故障而不是硬件故障,硬件故障有集群保证其可用性),将严重影响应用的响应速度。


    (1)现状
    目前的解决方案也是借助负载均衡器实施集群部署,按照一定的策略,根据请求的特点,将请求发送到集群中不同的节点进行处理。

    (2)并行化策略
    虽然这类任务往往是Web服务,已经表现为SOA架构,但并行化还是首先按照统一标准化的SOA架构对其进行封装。一般而言,这类应用无需再进行拆分,可以将整个应用封装为统一的、标准的SOA服务。

    在算法上有2种实现方法:一种为依然借助负载均衡设备实现集群节点间的负载均衡,在节点内部采用OpenMP实现节点内部的并行运行;另一种为采用Erlang实现全面、高效率的并行,集群节点间和节点内部的并行计算都由Erlang及其运行环境实现。

    (3)并行化策略总结
    根据上面的分析,应用的并行化按照以下两个步骤实施:对应用实施SOA服务化封装;根据特点,在算法模式
    上按照表3所列实施。
    这里写图片描述

    九、结束语

    并行计算和虚拟化一起构成了云计算技术的骨干。对于大型应用系统实施云计算的主要内容就是实施并行计算。并行计算技术除了目前炙手可热的MapReduce以外,值得推荐的还有OpenMP、MPI和Erlang。这3个技术主要应用于并行程序的开发,和其他并行策略(如SOA)一起,用于从根本上实现应用的并行化。中国电信在支撑云的研究、建设中,计划在多个层面实施并行计算,以提高应用运行效率和可靠性,降低采购和运营成本。对于条件成熟的应用,拟从业务并行开始,在开发层面即实现并行计算。目前,经过研究分析和测试,针对不同的应用,初步制定出不同的并行化解决方案,采用合适的并行计算技术实现不同层次的并行计算。

    展开全文
  • 云计算并行计算的关系

    千次阅读 2012-05-08 20:53:53
    1.并行计算不是云计算,网格计算不是云计算云计算也不是并行计算和网格计算, 随着并行计算、软件技术、网络的发展,云计算的出现时必然,但云计算不等同于云计算 2.云计算萌芽于并行计算  云计算是从计算机的...
        
    1.并行计算不是云计算,网格计算不是云计算;云计算也不是并行计算和网格计算,
    随着并行计算、软件技术、网络的发展,云计算的出现时必然,但云计算不等同于云计算
    2.云计算萌芽于并行计算
     云计算是从计算机的并行化开始萌芽的。

    人们不满足摩尔定律的CPU计算能力增长速度,为了获得更大的计算力,希望把多台计算机连到一起,并联,从而得到更大的计算力,这种方法后来被验证是相当成功的。
    3.网格计算和后来的并行计算主要用于特定的科学领域
      网格计算和后来的并行计算的提出主要是为了满足科学领域的专业的需求,主要应用在科学领域。主要相当的专业水平,不适合于大众应用。

    4.并行计算主要追求单机的高性能高计算力
    5.云计算时代不再追求单节点的计算能力

     云计算基于单节点不可性能,对单节点的计算能力要求低,通过将分散的计算力合理调度得到巨大的计算力,云计算中心的计算力和村处理可以根据客户需求的变化逐步的增加。可以动态增加计算力。

    展开全文
  • 相信不久的将来,超级计算能力将推向了大众云计算,就如天空中的朵朵白云一样无所不在,同时又让人无法察觉,为人们的生活提供着无限便利。人类有可能因此迎来一个新的信息化时代!系列文章:要使云计算真正的“落地...
  • 并行计算并行计算是相对于串行计算来说的可分为时间上的并行和空间上的 并行 时间上的并行就是指流水线技术而空间上的并行则是指用多个处理器并 发的执行计算并行计算的目的就是提供单处理器无法提供的性能处理器...
  • 云计算并行计算复习.pdf
  • 云计算是一种计算模式,代表了在某种程度上共享资源进行设计、开发、部署、运行应用,以及资源的可扩展收缩和对应用连续性的支持。目前大部 分的云计 算基础构架是由用户终端向数据中心传送可申请服务的网络,以及...
  • 云计算与其他计算的概念 分布式计算 分布式计算是一门计算机科学,主要研究对象是分布式系统。 分布式系统是由若干通过网络互联的计算机组成的软硬件系统,且这些计算机互相配合以完成一个共同的目标(往往这个...
  • 先说分布式计算和并行计算的异同: 解决对象上:都是大任务化为小任务,这是他们共同之处。 但是分布式的任务包互相之间有独立性,上一个任务包的结果未返回或者是结果处理错误,对下一个任务包的处理几乎没有什么...
  • 云计算 分布式 并行计算 虚拟化云计算 分布式 并行计算 虚拟化
  • 并行计算是一台计算机,配备有多处理机,多处理机之间进行合同协作计算,最终结果由一台计算机处理 ...关系的话,以计算机用户来说,并行计算是由单个用户完成的,分布式计算是由多个用户合作完成的,云计算是没有用...
  • 并行计算、分布式计算、网格计算与云计算都属于高性能计算(High PerformanceComputing,HPC)的范畴,主要目的在于对大数据的分析与处理,但它们却存在很多差异。电子海图云服务是基于高性能计算的理论技术、通过对...
  • matlab云计算课程-matlab并行计算讲座.pdf 魏老师讲座,可以学习一下!
  • 并行计算并行计算是相对于串行计算来说的。可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。例如基于CUDA编程。并行计算的目的就是提供单...
  • 一、并行计算概念 基本思想:用多个处理器来协同求解同一问题。 并行计算系统形式:含有多个处理器的超级计算机or以某种方式互连的若干台独立计算构成的集群。 二、Flynn分类法 概念:Michael.J.Flynn提出的根据...
  • 云计算环境下并行计算优化调度研究与仿真.pdf
  • 并行计算
  • 并行计算并行计算是相对于串行计算来说的可分为时间上的并行和空间上的并行?时间上的并行就是指流水线技术而空间上的并行则是指用多个处理器并发的执行计算并行计算的目的就是提供单处理器无法提供的性能处理器能力...
  • 并行计算 并行计算可以划分成时间并行和空间并行。时间并行即流水线技术,空间并行使用多个处理器执行并发计算,当前研究的主要是空间的并行问题。 并行计算是相对于串行计算来说的。要理解并行计算,首先需要了解...
  • 并行计算并行计算是相对于串行计算来说的。可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。例如基于CUDA编程。并行计算的目的就是提供单...
  • 基于云计算的电磁问题并行计算方法.pdf
  • 云计算环境中MapReduce并行计算优化探究.pdf
  • 分布式计算、并行计算及集群、网格、云计算的区别.pdf
  • 第三章-云计算&边缘计算&雾计算

    千次阅读 多人点赞 2019-01-07 21:31:35
    于此同时,新型应用也对数据处理的实时性提出了更高要求,传统云计算模型已经无法有效应对,边缘计算、雾计算应用而生,并且受到学术界、工业届等各行各业的青睐。那么何谓云计算、雾计算、边缘计算?以及他们之间有...
  • 1. 并行计算(Parallel Computing)   并行计算或称平行计算是相对于串行计算来说的。并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程。为执行并行计算,计算资源应包括一台配有多...
  • 对专业人员而言:是分布式处理、并行处理和网格计算的发展,或者说是这些计算机科学概念的商业实现。是指基于互联网的超级计算模式–即把原本存储于个人电脑、移动设备等个人设备上的大量信息集中在一起,在强大的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,789
精华内容 10,715
关键字:

云计算并行计算