云计算的基础架构:并行计算+资源虚拟化

(2011-08-20 12:15:51)

标签:

校园

分类: 工作篇
高性能云计算:从科学应用的角度
科学计算往往需要可用的数量庞大的计算机来执行大规模实验。传统上,这些需求已通过使用高性能计算机解决方案和安装集群和超级计算机等设施来解决,这些设施很难建立,维护和操作。云计算为科学家提供了利用计算基础设施的完全新模式。计算资源,存储资源,以及应用程序,可动态提供的(和现有的基础设施集成)基础上按使用量付费。他们不需要的时候,这些资源可以被释放。提供这种服务通常是在保证所需服务质量的服务水平协议范围内。Aneka,一个企业云计算解决方案,通过利用私有云和公有云的计算资源向用户提供所需的服务质量。其灵活性和基础设施服务支持多种编程模式,使Aneka适用各种不同的场景:从财务应用程序到科学计算。作为在云中进行的科学计算案例,提出了利用Aneka进行基因表达数据分类和脑功能磁共振成像工作流程执行的初步案例研究。
一、引言
科学计算包括数学模型和数值求解技术来解决科学,社会科学和工程问题。这些模型往往需要大量的计算资源进行大规模的实验,或计算复杂性削减到一个合理的时间框架。这些需求已初步具有专用高性能计算(HPC)的基础设施,如集群或同一部门联网的机器群,这些基础设施由“CPU周期清道夫”管理,如秃鹰软件。随着网格计算的到来,给科学家提供了新的机会:与电网完全类比,计算网格可以按需提供“马力”从事大型实验,依托机器的网络潜在的延伸到世界各地。计算网格引入新的功能,动态发现服务,依靠大量属于管理域的资源和发现满足应用要求的最佳机器设置的能力。科学计算网格已变得如此成功,以至于许多国际项目导致了建立世界范围的基础设施提供给科学计算。开放科学电网,最初设想使大型强子对撞机数据分析便利,连接25000台主机设备和为不同学科的数据密集型研究提供支持,比如生物,化学,粒子物理,地理信息系统。欧洲高效电子科学网络起初由欧盟委员会资助,连接亚欧、美国超过91个机构,建立世界最大的各种科学的计算网格基础设施。TeraGRID是一个国家科学基金会资助的项目,提供科学家大量的建立在9个资源提供商伙伴网站的资源顶部。它被用于4000个用户,200多所大学的在分子生物学,海洋科学,地球科学,数学,神经科学,设计与制造,以及其他学科的先进研究。这些仅仅是科学网格计算最具代表性的例子。
尽管网格技术在科学计算上的广泛使用,由大量运用上述计算网格的项目证实,有些问题仍然不像描述的使用这种技术这么容易。有些问题是官僚的:这些网格在全球范围内分享,研究团体要提交提案描述他们希望来进行的研究类型。这种做法导致了竞争地使用科学网格,使小型研究项目无法获得。其他问题是技术,更重要的是:在大多数情况下的科学网格功能预包装应用程序将被执行的环境,有时具体的工具和API不得不使用,有可能在宿主操作系统或运行环境所提供的服务有限制。虽然网格计算有动态发现的服务,以及对各种应用的运行环境,在实践中一组有限的选项供科学家选择,有时它们不能有足够的弹性来应付需求。一个实际的例子,关于具体软件的使用,可能在程序执行的运行环境中无法使用。在一般情况下,运行在科学网格中的应用程序以任务包的形式实现,应用程序,工作流程和MPI(消息传递接口)并行过程。一些科学实验无法适应这些模型,必须进行重组或重新设计来使用科学网格。鉴于官僚问题可以是一个小问题,技术问题是科学计算的基本障碍。从这个方面上讲,PlanetLab提出的基于虚拟机的方法很有用。PlanetLab是用于开发,部署和访问行星规模服务的开放平台。用户赋予一个接入PlanetLab基础设施节点集虚拟机的刀片机,因此,一个刀片机可按照具体用途完全定制。目前,PlanetLab是作为一个试验台主要用于计算机网络和分布式系统的研究,它是唯一能够访问隶属于企业和大学的PlanetLab节点的基础设施。这使得它被用于计算科学相当有限。
云计算,目前提供IT服务出现的新趋势,许多上述问题可以解决。通过虚拟化技术手段,云计算为最终用户提供一个涵盖整个计算堆栈的各种服务,从硬件到应用级,按每使用收取。另一个重要的特征,科学家可以从中受益,能够根据应用需求和用户预算来自动伸缩使用计算基础设施的规模大小。科学家通过使用基于云技术可以很容易获得大型分布式基础设施和完全定制自己的执行环境,从而实现实验中完美的设置。此外,通过租用的按每使用支付的基础设施上,他们可以在没有任何容量计划立即获得所需的资源,当他们不再需要时,可以自由地释放资源。云计算为提供IT服务的每级计算堆栈提供灵活的机制:从硬件级到应用级。硬件设备和应用解决方案分别由硬件虚拟化和软件即服务提供。这使得有非常多的选择可供科学家,足以满足他们的任何具体研究需要。
云计算解决方案的热度正在快速增长。结果,他们已经在很多领域被采用了,如社交网络,商业应用和信息传递网络。目前,计算科学利用云计算仍然是有限,但实现这一目标的第一步已经完成了。今年,能源部(DOE)的国家实验室开始探索利用云计算服务进行科学计算。在2009年4月,雅虎公司宣布,它已经扩展了在美国各大顶尖大学的合作关系,推动云计算的研究和计算科学和工程的应用。第一个基于云的计算科学基础设施,科学云,已经由芝加哥大学,伊利诺伊,普渡大学和马萨里克大学共同部署。从研究观点,初步的研究已经进行了可行性的科学计算用云计算。一些研究通过分析使用的高性能计算科学应用的表现或科学实验在亚马逊云计算基础设施的表现来调查使用云计算技术的好处。
不同的解决方案可从传统的科学网格移动到云计算模式中。一些厂商,如亚马逊网络服务和VMWare靠硬件级虚拟化和按需提供计算和存储资源来提供服务。谷歌AppEngine和微软Azure更侧重于通过实施一个具体的应用模式来实现应用程序级的虚拟化,充分利用其巨大的基础设施和按需服务。其他的解决方案提供最终用户一个云计算应用程序的平台,从而提供用户一个更好的服务质量。Aneka是一个用于开发应用程序的云计算平台,可以按需利用虚拟资源的CPU周期,桌面台式机和集群。它支持多种编程模式,提供科学家表达他们的应用程序逻辑的不同选择:任务包,分布式线程,数据流,或MapReduce。它的服务导向架构提供用户一个完全定制的基础设施,能够满足应用程序所需的服务质量。
本文的其余部分的组织如下:第一,我们通过云计算参考模型和范例的关键要素概述云计算。然后,我们将介绍Aneka,并详细讨论它的特征,强调如何支持计算科学。作为个案研究,我们将介绍基因表达数据的分类和在亚马逊EC2上执行的科学工作流程。最后讨论关于作为科学计算有效支持的云计算的未来发展方向的思考和展望。
二、 云的发展
云计算这个术语包括许多方面,范围从最终用户在使用这项技术带来新机遇的经验到系统实现使这些机会变成现实。在本节中,我们将给出云计算的特征,引入云计算参考模型,并确定这项新技术提供的关键服务。
A 云的定义
虽然,云计算这个术语过于宽泛,很难给出一个单一的定义,它有可能确定一些这方面趋势特点的关键要素。阿布鲁斯特等认为,“云计算不仅指通过互联网的应用程序作为服务,而且是数据中心的硬件和软件系统提供这些服务”。然后,他们定义云是由硬件和软件构成的数据中心。Buyya等给出一个更具结构化的定义,定义为“并行和分布式的互联和虚拟化的计算机的集合,是动态供应和作为一个或多个统一的计算资源提出了基于服务水平协议组成的系统类型”。云计算的特征的主要特点之一是提供基础设施和软件作为服务的能力。更确切地说,它是一种技术,旨在提供随需应变的按每使用支付的IT资源。先前趋势仅限于特定的用户类,或者特定种类的IT资源。云计算的目标是成为全球性的:它提供了上述服务给各行各业,从最终用户在因特网上的个人文件到企业外包其整个IT基础设施到外部数据中心。
B 云计算的参考模型
图1给出了一个云计算述设想的方案概述。它提出了一个分层视图包括IT基础设施,服务和应用程序,即构成云计算堆栈。它可以区分四个不同的层次,从系统向最终用户逐步过渡。堆栈的最低级的特点是物理资源部署在基础设施之上这些资源可以是不同的类型:集群,数据中心,备用台式机。基础设施支持商业云部署更可能由数百或上千台机器的数据中心构成,而私有云能提供更多的异构环境,即使是备用台式机的的空闲CPU周期用于计算工作量。这一级提供云的“马力”。
物理基础设施由核心中间件层管理,其目的是为应用程序提供适当的运行环境,并利用最佳的物理资源。为了提供优质的服务,如应用程序隔离,服务质量,沙盒,核心中间件可以依靠虚拟化技术。在不同的虚拟化解决方案中,硬件级虚拟化和编程语言级的虚拟化是最流行的。硬件级虚拟化保证应用程序完全隔离和通过虚拟机的物理资源分割,如内存和CPU。编程级虚拟化提供沙盒,托管执行应用程序开发一种具体技术或编程语言。(即Java,.NET,和Python)的。在此之上,核心中间件提供一系列广泛的服务,可以协助服务提供者给最终用户提供专业的和商业的服务。这些服务包括:开票和服务质量协商,接入控制,执行管理和监督,会计和计费。连同物理基础设施,核心中间件代表部署在云端的应用程序的平台之上。很少有直接用户级来访问这一层。更普遍的是,核心中间件提供的服务可通过一个用户级中间件接入。这提供了环境和工具简化了开发和部署云应用。它们是:Web2.0接口,命令行工具,库和编程语言。用户级中间件构成了到云端的应用程序接入点。
C 云计算服务产品
由云计算堆栈公开的服务种类繁多,可分组为三种主要的产品,提供给最终用户,科研机构和企业。它们是:基础设施即服务(IaaS),平台即服务(PaaS),和软件即服务(SaaS)。图2给出了这样的分类。
术语基础设施即服务或硬件即服务指的是基于虚拟化或物理资源的基础设施向商品一样提供给消费者。这些资源满足对最终用户对内存,CPU类型和能力,存储,并在大多数情况下操作系统的需求。用户按使用计费的基础上支付,必须建立他们的系统在这些资源之上,被托管和管理在卖方所拥有的数据中心。亚马逊是提供基础设施即服务解决方案的主要公司之一。亚马逊弹性计算云(EC2)提供了一个大的计算基础设施和基于硬件虚拟化的服务。通过使用亚马逊网络服务,用户可以创建亚马逊机器映像(AMIs),并将它们保存为可以运行多个实例的模板。它可以运行Windows或Linux虚拟机和用户费用按运行每实例每小时收取。亚马逊还通过亚马逊简单存储服务(S3)提供存储服务,用户可以使用Amazon S3访问来自任何地方接入的大量数据。
平台即服务解决方案提供一个应用程序或开发平台,用户可以开发自己的应用程序在云端运行。PaaS的实现提供了一个应用程序框架和一组API,可被开发人员用来编程或组成云端的应用程序。在某些情况下,PaaS的解决方案通常作为一个综合系统交付,同时提供一个开发平台和应用程序在这之上执行的IT基础设施。采用这一策略的公司主要有谷歌和微软。
谷歌AppEngine是一个用于开发可伸缩的Web应用的平台,运行在谷歌基础设施服务器上。它提供了一套API和应用程序模型,允许开发者谷歌提供的另外服务,如邮件,数据存储,内存缓存和其它的。按照所提供的应用模型,开发人员可以用Java,Python和JRuby创建应用程序。这些应用程序将运行在一个沙箱中,AppEngine会按需自动调整。谷歌提供了一个免费但有限的服务,同时利用每天和每分钟配额,应用需要专业的服务。Azure是微软提供为开发云端可扩展应用的解决方案。这是一个云服务操作系统的平台,作为Azure服务平台的开发,运行时间,控制环境。通过使用微软Azure的SDK,开发人员可以利用.NET框架创建服务。这些服务必须通过微软Azure门户上传,为了在Windows Azure上执行。附加服务用来构建企业应用程序,如工作流执行和管理,Web服务业务流程,和获得SQL数据。
Aneka是Manjrasoft的产品,是一个纯粹的软件即服务,并提供最终用户和开发者在云端使用.NET技术开发分布式应用程序的一个平台技术。该Aneka核心价值是一个面向服务的运行环境- Aneka容器-这是部署在物理和虚拟基础设施,并允许由不同的编程模型开发的应用程序的执行。Aneka提供了一个软件开发工具包(SDK)帮助开发人员开发任何语言支持.NET云应用程序,和在Windows和Linux系统上建立和部署云的工具集。作为一个纯粹的平台即服务解决方案,Aneka不提供的IT硬件基础设施建立计算云,但系统管理员可以轻松地通过在集群上部署Aneka容器,数据中心,简单的桌面电脑,甚至在亚马逊机器映像上捆绑来建立Aneka云。
软件即服务解决方案是在云计算堆栈的顶端,它们提供最终用户集成的服务,包括硬件,开发平台和应用程序。用户不能定制服务,但可以访问云端特定的应用程序。软件即服务实现的历史是谷歌提供的办公自动化,如谷歌文档和谷歌日历,免费提供给因特网用户,而且是专业优质的服务。
Salesforce.com和Clarizen.com的商业解决方案例子是,分别服务提供在线客户关系管理和项目管理服务。
表一给出了一些最具代表性公司在提供云计算基础设施即服务/平台即服务的功能比较。在论文其余的部分,我们将主要集中在Aneka,以及它如何被用来在云端进行科学计算。
二、 ANEKA
Aneka是一个软件平台和在云端开发分布式应用程序的框架。它按需利用台式机和服务器或数据中心异构网络的计算资源。Aneka为开发人员提供了丰富的API,以便透明地利用这些资源和通过各种编程抽象来表示应用程序逻辑。系统管理员可以利用一系列工具监测和控制部署的基础设施。通过互联网公共云提供给任何人,而企业的私有云由一些访问受限的节点构成。
灵活且面向服务设计的Aneka及其它完全可定制的体系结构使Aneka云能够支持不同的方案。Aneka云可以提供纯净的财务应用所需的计算能力,可以是一个分布式计算的教学参考模型,也可以构成一个更复杂的网络组件,用来满足大规模科学实验的需要。这也是由各种应用程序模式通过可扩展的编程模型集来实现。为开发者上线他们的分布式应用程序定义逻辑和抽象。作为一个例子,为了运行科学实验,可能依靠一个经典的任务模式包,或者为了实现应用程序作为一个相互作用的线程或MPI进程的集合,相互关联的任务集定义一个工作流程,或一系列MapReduce的任务。如果可用的选项不符合要求的,是有可能的用新的编程抽象无缝扩展系统。
Aneka云可建立在不同的物理基础设施之上,与其他云计算解决方案集成,如亚马逊EC2,以按需扩展它们的能力。在这种特殊情况下,Aneka充当中间人,减少用户的应用程序访问公共云。作为应用服务提供商,通过使用精细和复杂的定价政策,最大限度地利用所租的虚拟资源和分享用户花费。一个特别重要的是届时,当Aneka集成公共云会计和定价服务如何运作。
图3给出了Aneka架构概述。为了开发云计算应用程序,给开发者提供了软件开发工具包组成的框架来编程,一个监测和管理Aneka云的管理工具包和一个可配置的基于容器的服务,构成Aneka云的基石。在本节我们将主要集中于三个主要特点:Aneka云架构,应用模型和Aneka和公共云整合提供的服务。
A Aneka云
Aneka云是一个软件守护进程的集合-所谓容器-可托管在物理或虚拟资源,通过因特网或专用Intranet连接。Aneka容器是整个系统的基石,并公开一个自定义应用程序运行环境服务的集合。
它为单一节点提供了基本管理功能,并利用托管服务来执行所有的其他操作。我们可以识别光纤和基础服务。光纤服务通过平台抽象层与节点直接交互,执行硬件分析和动态资源配置。基础服务识别Aneka基础设施的核心系统,他们提供基本特征集,每个Aneka容器可专用于执行具体的任务集。Aneka的主要特点之一是能够通过不同的编程模型来提供多种分布式应用程序上线的方法; 执行服务主要是关注提供实现这些模型的中间件。额外的服务横向到整个堆栈由容器托管的服务,如持久性和安全性。
容器的网络可以是不同部署方案的结果:它可以代表一个完全由相同管理域的物理机(台式机和集群)构成的私有云,如企业或大学部。另一方面,一个完全虚拟的基础设施是可能的,整个Aneka云可以托管在公共云,如亚马逊EC2或桉树管理的私人数据中心。混合系统也允许的,他们也是最常见的。在这种情况下,当地的基础设施利用额外的虚拟资源扩展,如图4所示。
Aneka云能按需伸缩和提供其他节点或释放时一些不再需要的节点。这些节点可以是虚拟或物理资源。物理节点可以通过网络只需关闭节点中的容器就能释放,而在虚拟资源情况下,它还需要终止托管容器的虚拟机。这个过程可以手动执行或由调度对云状态弹性和自主地管理。除供应政策,托管在虚拟机或物理资源中的容器没有区别,因为所有的硬件相关的任务都封装在平台抽象层。如图3所示,供应模块属于光纤服务,并公开其服务给其他操作不同的组件。
一个服务集总是部署在Aneka云端。除了光纤服务,该容器的执行核心是基础服务,履行管理Aneka云的基本操作。其中,会员服务在所有云节点跟踪和提供注册表起关键作用,可用于通过特定配置或操作系统动态发现网络或节点服务。比如,它们可以利用调度服务来定位所有的节点,支持一个给定编程模型执行。其他组件提供特权基本功能,如支持特权执行的文件传输和资源预留。
Aneka容器定制取代基础服务。甚至,Aneka容器可在任何层配置和定制,执行服务常用来区分节点。如图4所示,一个典型的配置功能部署,调度服务安装在有限数量的节点上,大部分容器配置为计算资源。此方案确定了主从拓扑结构,这是唯一的Aneka的可能选择,这可能只适合一些编程模型。一个基于调度和元调度的分层拓扑可以为大型基础设施和重负载条件提供更好的解决方案。
这个简短的概述提供了关于Aneka云和它的内部结构的一个总体思路的设计原则。下面,我们将介绍Aneka应用模型开发的功能如何提供定制的运行环境来支持不同的应用程序编程模式。
B Aneka应用模型
Aneka应用模型定义了基本抽象,构成托管在Aneka云端的分布式应用程序。它确定了每一个具体实施必须满足的要求,为了无缝地集成到Aneka并利用所有托管在云中可用的服务。应用模型还指定了对运行环境的总体要求,预计来运行是建立在一个特定模型之上的应用程序。
不同于其他中间件的实现Aneka不支持单任务的执行,但任何单位的用户代码在一个分布式应用程序中执行。Aneka中的应用程序有一系列执行单元构成,其性质取决于具体所用的编程模型。一个应用程序是在Aneka中部署,配置和在应用级安全操作的联合。执行单元构成应用程序的逻辑。单元调度和执行的方法具体到它们属于的编程模型。通过使用这种通用模式,框架提供了一套跨越所有支持的编程模型的服务:仓储,持久性,档案管理,监理,会计和安全性。
为了实现具体的编程模型Aneka开发者必须:
•定义将被软件工程师用于架构分布式应用程序的抽象,并确定其执行逻辑;
•提供执行服务的实施,要求管理Aneka云的抽象执行;
•实现一个客户端组件与执行服务协调,管理客户端执行。
这些组件对于任何编程模型的不同实现是普遍的。当前版本的Aneka支持四种不同的编程模型。它们是:任务模型,线程模型,MapReduce模型和参数扫描模型(PSM)。其他正在开发中,如角色模型,MPI模型和工作流。
表二给出了这些模型的一个功能比较和演示了Aneka应用模型的灵活性。对于每个模型,其中的应用程序类型或场景,自然适合该模型进行了简要介绍。表提供了每个模式的简要说明,代表Aneka中应用程序,执行单元以及执行服务。它还提供了一个用户和系统的观点。
C 会计,定价和与公共云整合
Aneka提供了一个基础设施,允许建立私有,公共和混合云。在云环境中,尤其是在公共云和混合云例子中,重要的是要落实机制,控制资源和使用定价,以便向用户收费,尽可能减少花费最大限度地利用系统。会计和定价是为Aneka中的应用程序实现定价机制的一项任务。
会计服务负责跟踪系统使用情况统计和分类每个用户和应用程序。信息是根本,用来估计必须向每个用户收取的花费和决定应用程序如何对用户花费负责。当前会计服务的实现能够追踪每个应用程序每个执行单元所花的时间,并保存各单位执行历史。然后这些数据使用被选中的定价策略,以确定向用户收取的金额。例如,一个简单的政策可以分配到每个资源的价格和确定每个应用程序的产生的费用,通过简单地计算所有应用程序的执行单位的加权总和。其他政策能够考虑到一个应用程序使用的具体服务。
当Aneka云完全部署或与公共云整合时,这两个组件的作用变得更加重要。在这种情况下,当确定用户的账单时,利用虚拟公共资源产生的费用要加以考虑。混合云构成一个具有挑战性的场景:在这里,置备虚拟资源以满足与用户签订的服务级别协议(SLA)。为了面对这一挑战,Aneka提供了一个对象模型允许第三方无缝地整合不同的调度算法,可以协调他们的活动和资源配置服务。当前执行仍处于初期阶段,设计一个模型,其中的调度程序可以访问多个资源池,实时跟踪每个活动实例的花费。池的基本策略是试图尽可能重用,为了最小化公共虚拟资源的花费,实例已经在运行。不同的调度算法可以插入到该模型,因此,开发人员可以提供多个策略,决定何时增长或收缩构成Aneka云的节点集。
三、 案例分析
在本节中,我们将讨论两个在云端科学计算的实际应用程序。案例研究都已在亚马逊EC2基础设施上实现。第一个案例研究是使用Aneka云将基因表达数据集进行分类,而第二个案例是提出一个fMRI脑功能成像工作流的执行,并与传统的网格进行同样试验的性能进行比较。在两个案例下,提出一个使用云技术的成本分析。
A 基因表达数据的分类
基因表达分析是一次性测量活动-表达-成千上万个基因,创造一个细胞功能的全球画面。剖面分析,这是基因活动的测量,帮助研究人员识别基因和疾病之间的关系,以及细胞是如何应对一个特定的治疗。其中最有希望的支持基因剖面分析的技术是DNA芯片技术,特别有助于癌症预防。这种技术的一个缺点是产生大量的数据:每个病人的DNA纹印就是成千上万的基因组织成一个序列,其状态(或活动)由特定的颜色或序列中的黑点表示。基于这些原因,癌症的诊断分析的分类不能没有计算机技术的帮助。
在不同的分类方法中,CoXCS分类方法在基因表达数据集的分类上特别有效果。CoXCS是基于特征空间分区的协同进化学习分类法。它通过引入协同进化方法扩展了XCS模型。图5给出了CoXCS内在逻辑的原理图的例子:独立种群分类器的收集是通过使用训练数据集的特征空间的不同分区。经过反复的迭代,每个独立种群的选定分类器根据一些遗传策略转化为不同的种群。然后,进化过程反复进行,直至达到一个特定的阈值。
CoXCS内部架构,基于特征空间分割,不仅优于原有XCS的基因表达数据集分类,也是所有的经典方法。表三表示当应用两个样品基因表达数据集时,不同的分类方法的性能比较。从测试阶段所获得的结果可以发现,CoXCS的精度肯定比其他分类方面所取得的结果要好。
使用CoXCS的唯一的缺点是把分类器演化成一个稳定的形式需要很长的计算时间。CoXCS的内在并行允许分布式和更快的执行。云CoXCS是基于云的CoXCS实施,利用Aneka计算云为每次迭代分配独立种群分类器进化。为了迅速拥有的云CoXCS的工作原型,我们把它作为后代工具包的一个策略实施。后代是一个允许快速成型策略的软件环境。这是基于客户端的工作流,可以通过Aneka和其它中间件来执行。
云CoXCS中算法实现和CoXCS中一样,因此,我们期望有相同的精度和获得一个在训练期间几乎线性加速。为了验证假设,我们在亚马逊EC2基础设施上部署一个Aneka云,并进行一些初步的测试。这些实验让我们研究执行时不同设置的影响和云CoXCS的性能。我们进行了两个实验:一次使用不同的基因表达数据集,第二次部署不同的实例类型在亚马逊EC2的计算节点上。
我们没有改变CoXCS的参数,已固定为下列值:独立人口每5000人;勘探/开发率设定为0.3;所有数据集分20个区;迁移率设置为10%的人口大小;5个单独的迁移阶段和100次独立迭代用于迁移阶段的人口演化。
关于部署基础设施,两个不同的亚马逊映像被使用:主映像和从映像。主映像是一个Aneka容器调度和文件分期服务用于Windows Server 2003操作系统任务模式为特征的一个实例。从映像托管一个配置执行服务的容器,部署在红旗Linux 4.1.2 (kernel: 2.6.1.7)上。为实验部署的云由一个主节点和多个从节点组成,从节点按需增加。实验用来比较不同的云设置。两种不同的映像类型用于测试从节点实例:m1.small和c1.medium。对于主节点,我们使用m1.small实例类型测试。
表四描述两种用于实验的不同云设置的特征。可以看出,c1.medium实例建模为双核机,并提供计算能力是m1.small提供的两倍。计算能力体现在EC2计算单元。在这两种情况下,得到每个阶段完整的并行,因为Aneka调度器每个核心调度一个任务。因此,c1.medium实例每次将处理两个任务。
为了验证实验,我们使用了交叉验证技术。为了支持交叉验证,BRCA数据集被分为两份,而前列腺数据集被分成4份。表五记录了两种设置的执行时间。
两种不同设置上进行的实验表明,在两种情况下,执行前列腺数据集所花的时间大约是BRCA 数据集执行时间的四倍。这非常合理,因为BRCA基因样本的数量是前列腺数据集样本数量的四分之一。
另一个有趣的事实是,执行c1.medium安装需要大量的时间完成。平均约32%以上相应的m1.small设置的运行。由于单CoXCS执行的任务设计为一个单线程进程,它没有从两个核心中受益。此外,在整个学习进程中执行时间的增加能由事实解释,两项任务是竞争共享资源,如高速缓存,总线,内存和文件系统。另一个要考虑的问题是CoXCS 任务在Aneka运行环境中执行,Aneka在双核机上分享。为此,在基础级的基础设施上的一些小操作按顺序执行。最后,CoXCS任务是计算任务,使用相当大的内存量来进行学习阶段。这可能会在一个多核心设置中造成重大的缓存未命中。
更有趣的是有关预算用来进行实验的考虑。鉴于使用的分区数量大,单CoXCS任务拥有的时间相当有限。在BRCA数据集的案件中,在不到一个小时的时间完成所有的探索,在前列腺数据集案例中不到两个小时的时间。尽管有不同的时序,这些执行使两个不同的设置花费相同的时间。如果我们考虑到亚马逊提供的粒度不能足以提供有效的定价模式,由于执行时间有着显著差异(平均32%)。现行会计制度在Aneka中实施,每分钟跟踪执行任务,它被设计成多个用户之间共享虚拟资源。通过让Aneka作为云提供者和最终用户的中间人,实行更有效的计费策略。
B 功能磁共振成像工作流程
脑成像技术为重点在处理从磁共振成像扫描仪获取的图像数据。处理后的图像将被医务人员和科学家做进一步分析。是功能磁共振成像(fMRI)特别想确定哪些部分大脑反应是某些特定刺激的响应。为了实现这一目标,首先,磁共振成像扫描仪收集到的脑图像要转化,以减少解剖变异,从一个主题自然分化为另一个。这个过程被称为特殊正常化或图像登记(IR)。一旦这一步完成,图像和地图集比较,这是一个参考图像由各脑图像的平均所得,并作为最后一步,具体的功能磁共振成像分析程序执行。
图6给出了顺序步骤的功能磁共振成像分析的可视化表示。功能磁共振成像的整个过程中,只有空间正常化,其中涉及复杂操作的序列,被建模为一个工作流程。如图6所示,在自然界,这样的工作流程是数据和计算密集型。
一个典型的情况时使用10到40幅脑图像进行不同的分组反复执行分析。每个输入图像约为16MB。对20张图片,总输入工作流是640MB。工作流的每个进程输出数据大小在20MB到40MB之间。在40幅脑图像的例子中,数据处理的总大小超过20GB。1-subject红外工作流的完美执行时间在单机上大约是69分钟,不包括转化数据的时间。在分布式执行设置中,数据传输时间和管理费用是大块的,执行的总时间显着增加。
最初的实验,在第二届IEEE国际可扩展计算挑战赛期间展示执行20幅脑图像,2009年CCGrid大会在中国上海举行。这里介绍的实验结果是部分展示,是两名获奖者其中一人的的竞赛结果。
部署系统用来运行实验完全托管在Amazon云基础设施上。执行工作流由Gridbus工作流引擎管理,处理工作流中任务执行如图7所示。实验由2,10,20幅脑图像重复执行,在亚马逊云上执行,云亚马逊EC2作为计算资源的提供者,S3为存储输入数据。执行结果与在Grid'5000执行相同的工作流进行比较,网络中的每个计算节点都作为存储和计算资源。用于比较两个执行结果的指标是完工时间(系统第一次提交任务的提交时间和执行最后出口任务的输出到达时间的差额)和工作流执行成本。在Grid'5000执行成本假定为零。
图8比较了不同数量脑图像的工作流完工时间。对于大量的脑图像,我们观察到使用EC2时完工时间减少。对于2幅脑图像,完工时间变化并不显着。完工时间的差异主要在于缩短EC2虚拟节点数据传输时间,和在Grid'5000多个物理站点之间传输相比。对于一个大的工作流(20幅脑图像)个人档案传输时间会累积起来,导致总完工时间产生显著影响,当和Grid'5000的结果相比。
图9比较了完工时间的变化与EC2使用成本。执行过程中数据传输和存储花费很小,因为计算节点都是云数据中心的一部分。随着执行节点数目由2个增加至20个EC2节点,分析20幅脑图像的工作流完工时间从391分钟至107分钟显着降低。云节点的使用成本从5.2美元上升至14.2美元。然而,使用的EC2的花费和数量之间的比率表明:一个使用20个EC2节点的工作流的计算成本是每台机器0.714美元,相反,使用2个EC2节点执行相同的工作流需要2.6美元。每台机使用平均花费降低,随着机器数从2增加到20。因此,整个应用程序执行花费增加不超过三倍,相似因素的执行时间减少。
从我们的实验中,我们得出大型高性能应用程序可以受益于公共云提供的按需接入和可扩展的计算和存储资源。因此,通过使用充足的云计算花费的增加弥补应用程序执行时间显著减少而且,按需提供。
四、 观察与思考
云计算模型为最终用户,企业,服务提供商带来了若干好处。根据应用程序实际需要,动态扩展按使用支付的IT基础设施的优势,构成云计算所带来的主要好处。此外,通过移动IT基础设施到云中,那是没有必要的:(a)承担费用来自峰值负载容量规划;(b)由于零星地需要大计算能力,以静态获得基础设施;及(c)要支付昂贵的管理和维护费用。这些问题很可能对企业和服务提供商很重要,可以最大化他们的收入和削减成本。对于最终用户所关注的,云计算最有趣的在于利用可用的应该程序,随时随地读取他们的个人数据和文档。另一方面,科研机构对PaaS和IaaS的产品更感兴趣,允许完全控制科学研究和精心定制的软件系统的基础设施,根据进行的实验的具体需要。云计算也保证了所需服务的质量,由服务层协议制定。这一方面构成一个附加的价值,这可能使科学家进行额外限制的实验时更喜欢计算云而不是传统网格。例如,进行不同类型的分析产生不同的费用,通过优化权衡预算和结果预期的准确性。
由于它特殊的性质,云计算引入了新的挑战和新问题将面对,尤其是法律和安全的方面。在公共云案例中,系统,应用程序和个人资料将托管在第三方拥有的数据中心。这些数据中心通常是放置在更方便的地理位置,减少维修和消耗费用。这样的地方甚至可以在不同的国家,适用不同的法律条款。根据托管在哪里,同样的应用程序可以被认为是合法或非法的。此外,隐私和数据的保密性取决于它的存储位置。例如,账户的机密在位于瑞士的银行可能不能保证位于美国的数据中心的使用。为了解决这一问题,一些云计算提供商客把主机的地理位置作为与用户签订的服务及协议的一个要素。例如,亚马逊EC2提出了可用性区域的概念,确定应用程序运行的数据中心的位置。用户可以接入不同的可用性区域,并决定在哪里运行应用程序。安全是另一个重要的问题,目前尚不清楚是哪一种措施是用来保证数据的隐私,除了标准的安全工具。然而,这个问题对企业和最终用户更加重要,甚至在科学计算上也会有相关的影响:许多科学项目往往由联邦机构或政府直接资助,常常在合理的数据使用和管理方面提出严格的限制。
五、 结论和未来方向
讨论了公共云的潜在机会和当前国家最先进的高性能科学计算。把采用云计算作为新时代计算的一种技术和模式,肯定会很受欢迎和吸引企业和服务提供者。还在最终用户之间广泛传播,越来越多的最终用户把他们的个人数据放到云端。对于使用云计算进行科学计算仍处于初期阶段。
科学计算网格,如开放科学网格和欧洲高效电子科学网络已经提供大规模的基础设施,一套完善的方法和工具,以及巨大的用户群。有趣的是科研机构计算云的使用有完全可定制执行程序运行环境的可能性。其他有趣的是,在给定的实验服务质量方面考虑不同的可用选项。探索新奇有趣的场景,科学家可以决定实验的精确程度或分析具体分区的数据,根据云提供商制定的服务级协议。目前,一些前期工作调查在云中进行科学研究的费用,采用亚马逊EC2和S3的基础设施作为案例研究。从操作的角度来看,第一个科学计算云已被部署,是一个大学联盟的共同努力的结果。政府机构的积极态度将建立更多的科学云,比如能源部使用云计算。采用云计算进行计算科学,将有助于推进其他功能方面的研究,比如安全性和司法管辖权。许多科学项目都是由政府机构资助,有时在数据的使用方面施加很大的限制。
最后还展示了一些在云中进行科学实验的实际例子,并介绍了Aneka提供的先进功能,利用公共或私有云根据应用程序需要按需扩展。两个案例研究介绍了通过使用部署在亚马逊EC2基础设施上的Aneka云进行基因表达数据分类和在EC2上执行的科学工作流。实验表现的初步审议表明,有效利用云资源是非常重要的,和必须仔细评估成本和性能的权衡。这就是Aneka平台变成了现实。作为一个中间人,它可以访问云资源,最大化其全球化的应用,并提供最终用户更好的定价模式。在这个方向更详细的研究,必将使这项工作更进一步。
(2009年第10届普适系统、算法和网络国际研讨会)

云计算基础架构分析资源虚拟化的并行计算

云计算是近来最为热门的IT技术,也被认为是互联网乃至 IT 行业的未来发展趋势,产业规模预计达到千亿美元。现在所有技术分析师、杂志、厂商和会议都在对此议论纷纷。对于这个IT业界最热门的话题,企业关心的是如何以更加务实的方式迈向云计算。而作为开发者,我们更关注的是云计算的基础架构是什么?以及其有什么具体特点。

  云计算基础架构本质:资源虚拟化的并行计算。[
  目前计算领域正陷入于一场苦战中,困境是待处理数据爆炸式增长与当今机器存储能力和计算能力不足之间的矛盾。由于待处理数据越来越多,多到了很难在一台或有限数目的存储服务器内存储,而且更无法由一台或数目有限的计算服务器就能处理这样的海量数据。因此,如何存储并计算这些海量数据成为了IT业界最热门的话题之一。
  云计算是一种计算模式,代表了在某种程度上共享资源进行设计、开发、部署、运行应用,以及资源的可扩展收缩和对应用连续性的支持。目前大部分的云计算基础构架是由用户终端向数据中心传送可申请服务的网络,以及建立在服务器上的不同层次的虚拟化技术组成的,使到人们可以在任何有提供网络基础设施的地方使用这些服务。因此,云的基本概念是通过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再由多部服务器所组成的庞大系统搜索、计算分析之后将处理结果回传给用户终端。通过这项技术,远程的服务供应商可以在数秒之内,达成处理数以千万计甚至亿计的信息,达到和“超级电脑”同样强大效能的网络服务。
  你可能会说,这不正是分布计算的概念吗?没错,云计算可以说是分布计算、并行计算、网格计算等一脉相承的技术路线,甚至可以说它们的基因是相同的。但它们给人的外貌是不同的,它们在技术架构上是有差异的。简单的说,云计算是经过商业包装的名词,它为分布存储和分布计算找到了盈利模式。从概念上讲,可把云计算看成是“存储云+计算云”的有机结合,即“云计算=存储云+计算云”。存储云的基础技术是分布存储,而计算云的基础技术是分布计算,更准确说在是并行计算。渠道社区$ \0 a8 x% q) o: z7 F4 f& b
  因此,云计算的基础架构首先是要确保能实现并行计算。并行计算的作用是将大型的计算任务拆分,然后再派发到云中的各个节点进行分布式的并行计算,最终再将结果收集后统一处理。如果说云计算是并行计算的升华的话,那么云计算基础架构更在另一个层面上有更大的进步:计算资源虚拟化。简单的说,就是计算云中的所有计算资源都被看成一个可分配和回收的计算资源池,用户可根据自己的实际需求申请相应的计算资源。这种资源虚拟化得益于近来兴起的虚拟机技术,采用虚拟机实现资源的虚拟化,避免了硬件异构的特性。即无论什么样的硬件机器攒在一起,其计算资源都可被量化到计算资源池中,并被动态分配和动态调整。动态调整是指不需要重新启动系统就可调整资源大小,这是虚拟化技术的最大用处之一。这种虚拟化和我们在自己机器上安装的虚拟机所采用的虚拟化技术大同小异,其不同之处在于个人用户的使用模式是将一台物理机器的资源虚拟化成多份,以使得其能同时启动多个操作系统;而云中的虚拟化技术是将多个物理机器的资源虚拟化成一个大的资源池,让用户感觉是在使用一个巨大资源的机器。
  从这个角度而言,云计算不是新技术,而是新的资源利用模式。我们可以把云计算看作是前代计算模式(比如网格计算、透明计算、效用计算)的阶段升级。云计算的实质是一种基础架构管理的方法论,是把**的计算资源组成IT资源池,用于动态创建高度虚拟化的资源提供用户使用。在云计算环境下,所有的计算资源,比如说服务器能够动态地从硬件基础架构上增减,以适应工作任务的需求。所以,云计算最真实完整的基础架构是一个由多种产品和服务集成起来的端到端的解决方案。云计算基础架构的本质是通过整合、共享和动态的硬件设备供应来实现IT投资的利用率最大化。因此,计算云的基础架构的本质可以看成是:并行计算+资源虚拟化。
 
2010年7月7日
高性能计算与云计算不可调和?
GiladShainer一般每年会来中国两次,第一次是参与到年初的IDF上,第二次则就是准备参与到中国高性能计算学术年会上来——身为Mellanox高性能计算高级技术总监的他还是国际高性能计算专家咨询委员会的主席,而他将国际高性能计算专家咨询委员会亚洲研讨会带入了中国高性能计算学术年会中。
  第二届国际高性能计算咨询委员会中国研讨会今日在北京召开,云计算和GPU毫无疑问成为演讲引人注目的关键词。对那些认为高性能计算拥有革命性的访问和可用性的人来说——尤其是那些非技术性的研究人员,对于HPC是否适合公共云计算确实存在着很大的问题。
  大多数这种讨论总会由于性能出现的时候而到来,让我们面对它,对研究人员来说,大型的公共云计算比如Amazon的EC2并没有多少让人觉得很好的功能来满足一些的需求。当然按需使用性能是很好的,但是如果价格超过性能很多就不是很理想的事情了。
  如果这就是我们在讨论的大型公共云计算,一个大多被用于科学计算和大型企业计算的形式,大概就类似于Amazon的EC2。当然,还有其他的一些公共云计算供应商,为了论证期间,亚马逊的弹性云计算所提供的往往是第一选择。从启动云供应商巨头,Amazon象征着每个人都进入云的可能性,它固有的问题集中体现在云概念中,尤其涉及到高性能计算时。
  就此问题,Gilad认为,云计算并不是个新鲜的概念,比如说各地的用户都登陆位于德克萨斯州的一台超级计算机登陆然后进行计算,这也是云计算的一种形式。HPC在云中可以降低成本,但是这需要云本身有非常强大的自动分区能力,需要很快的网络连接,需要很快就能向用户提供所需的计算环境,HPC应该更多地被应用到云中以提高效率。
  就此问题,中国科学院计算技术研究所霍志刚博士则称自己是一个云计算的坚定支持者,但是他认为类似于企业自身的云可能会先形成规模,而且他认为未来一定会是多种形式的云,并非单纯的公共云。
  在上半年全球超级计算机Top500榜单中,位于第一名的Cray的系统有两万个节点,而曙光的机器则只有五千个节点,Gilad认为,在使用GPU进行加速的步骤上,中国人显然走的很快。他表示,他相信以后最快的系统中都应该有GPU的身影,这样可以提高系统的效率,也许未来GPU和CPU会坐在一个芯片上,这应该是个趋势。
2010年10月28日
概念大PK:云计算与高性能计算(HPC)
云计算的易用性会影响传统的HPC计算模式,传统的排队批处理方式很难实现按需即时响应的科学计算,On-demand的云计算给HPC提供了更易交互的计算模式。如同几年前用大众化的PC服务器搭建集群以及最近用GPU加速科学计算一样,云计算对于HPC也是一次模式转变。
10月27日-30日,北京,国家会议中心,高性能计算领域的一场大戏即将上演。今年的全国高性能计算学术年会(HPC China 2010)由中国计算机学会高性能计算专业委员会主办、中国软件行业协会数学软件分会协办、北京市科学技术研究院和北京市计算中心承办。

  超级计算机和云计算都是时下比较火的两个概念,前者一般主要面向科学计算、工程模拟、动漫渲染等领域,大多属于计算密集型的应用,后者则主要是在Web2.0、社交网络、企业IT建设和信息化等领域,以数据密集型、I/O密集型应用为主。虽然侧重点有所不同,但这两者之间是很有渊源的,比如两者都使用了分布式计算、网格计算、集群、高密度计算等技术,也有一些领域在使用云计算从事HPC类的应用,如北京市计算中心就在打造“北京工业云”,为中小企业提供产品设计模拟服务,浪潮和NVIDIA也在分别推各自的“渲染云”方案。不过,HPC与云计算也存在很多不同,比如HPC几乎不用虚拟化技术,因为一个应用就可能把多个机器的CPU都跑满了,虚拟机没什么用武之地,而在企业私有云中,虚拟化却是一个最基础的技术。

  在29号上午,中科院计算所所长李国杰院士作了主题为《云计算与HPC——兼谈加强计算机系统研究的必要性》的演讲。在演讲中,他旁征博引,就高性能计算与云计算之间的关系谈了许多观点,现总结如下:

中科院计算所所长李国杰院士

云计算是超级计算中的新发展

  对高性能计算(HPC)而言,云计算并不是一个新的概念。事实上,已经发展近30年的超级计算中心也是一种早期的云计算模式:昂贵的计算资源集中部署,多个领域的用户通过互联网远程使用计算服务并依据使用量支付费用。但这种HPC服务和当前所谈论的云计算又有着一些明显的区别,如没有充分采用虚拟化技术,没有良好的用户界面等。

  云计算将扩大HPC服务的范围。随着虚拟化即时的提高,通信延迟降低,紧耦合的计算将在更大范围内具有吸引力。

  特别是位于高端计算和桌面计算之间,存在众多对高性能计算有潜在需求的用户。调研表明,阻碍这些潜在用户使用高性能计算的主要障碍包括:缺乏HPC人才,建设和运维的成本以及使用HPC应用的复杂度。而云计算正是应对这些挑战的最佳途径。

  

云计算还不合适做尖端的超级计算机

  Dan Reed认为,云计算绝对不是为特定目的构造的性能顶尖计算机的替代器。如果一种Petascale计算需要极低的任务间通信延迟,今天的云计算肯定不适合。但是对于大多数使用较小规模设备的研究者,云计算是有吸引力的替代器。

  目前的云模型并不支持顶尖的超级计算。动员Grand Challenge应用的人做云计算就如同要说服驾驶F1赛车的人去乘公共汽车。HPC主要执行计算密集型的任务,CPU的利用率已经很高,因此虚拟化技术对于HPC的CPU利用率作用不大。虚拟化对计算密集型(如果数据能全部放进内存)应用的影响很小,而I/O密集型应用的性能则会有一定下降。

  目前的云计算做HPC效率较低

  基于云计算理念来构建超级计算中心,除了满足传统的或现有的HPC用户需求外,更重要提创造并吸引众多新领域的用户。美国德州先进计算中心(TACC)的Edward Walker对Amazon EC2上HPC应用的性能表现进行了研究,应用选择常用的基准测试程序NPB,测试结果表明:几乎相同的硬件条件下,对OpenMP版本的8个测试程序EC2性能下降7%至21%不等,MPI版本性能则下降40%至1000%不等。

  


  今天的数据中心与未来的HPC

  云计算的易用性会影响传统的HPC计算模式,传统的排队批处理方式很难实现按需即时响应的科学计算,On-demand的云计算给HPC提供了更易交互的计算模式。如同几年前用大众化的PC服务器搭建集群以及最近用GPU加速科学计算一样,云计算对于HPC也是一次模式转变。

  构建百万节点数量级的数据中心与今天构建Petascale(千万亿次)及今年后构建Exascale(亿亿次)的系统有许多相同的困难。Dan Reed认为,他们就象是一对“双胞胎”,面临共同的挑战包括:高速互连、存储分层(包括Flash,PCM等)、异构多核处理器、系统可靠性和恢复能力、机柜、冷却、能耗效率和编程等等。今天Mega-datacenter的经验将可用于未来的Exascale超级计算机设计。

  云平台将最终取代HPC基础设施

  美国IT战略科学家Dan Reed指出,云计算使得计算和海量数据特别便宜,云平台最终将取代传统的HPC基础设施。如果主机(Mainframe)是跳棋,PC和Internet是象棋,云计算则是要眼观全局的围棋。

  另外,李国杰院士还特别指出,虽然云计算是发展趋势所在,但现在对云计算基础关键技术的研究还远远不够,业界过于偏重虚拟化技术,而忽视了对计算机系统技术的研究。参考阅读:李国杰:云计算不可忽视计算机系统研究

2010年10月30日
高性能计算初步调研
目前数据中心不再是单纯地增加服务器的数量和扩展机房的面积以满足业务应用,而是逐步升级到对数据中心整体规划和计算能力、效率的提升层面上来。数据中心需要强大计算能力作为支撑,这样才能满足日益快速发展的业务需求。        
高性能计算机集群(HPC:High Performance Computing)在计算领域中得到了普遍应用。高性能计算(HPC)实际上就是集群计算,集群计算是多台计算机的合作,并且并行工作,计算速度比一台计算机的计算速度快的多。集群计算机连在一起,可以提供如下功能:可扩展性、冗余性、成本考虑。由于HPC系统能够快速准确计算出结果,有助于解决商业和科学研究中面临的问题,所以,HPC系统正在被越来越多的数据中心所采用。        
值得注意的是,一个集群中需要支持多种类型的数据流,在同一集群中可同时采用不同类型的互联网络,而这些网络又拥有各自的网络协议,也就意味着,网络性能和特性会有不同。目前,集群计算、存储区域网、网格、内部处理器通信等高端领域对高带宽、高扩展性、高QoS以及高RAS(Reliability、Availability and Serviceability)等有迫切需求,人们对互连技术的兴趣开始恢复,并且非常希望通过更迅速的互连技术,帮助数据中心降低总体运营成本,以实现高性能计算。     
为了满足高性能计算需求,各种高速I/O标准相继登场,Infiniband也凭借其特有的优势在市场中逐渐崭露头角。 Infiniband技术是一种开放标准的高速网络互联技术,Infiniband产品也是目前主流的高性能计算机互连设备之一。事实上,Infiniband是一种新型的总线结构,它可以消除目前阻碍服务器和存储系统的瓶颈问题,是一种将服务器、网络设备和存储设备连接在一起的交换结构的I/O技术。
一.高性能计算与云计算
  “云计算是一种计算模式,在这种模式下,任务被分配给可通过网络获得的连接、软件和服务。这种服务器与连接的网络统称为"云"。云规模的计算能赋予用户超级计算机级别的能力。”
  “云计算支持应用在"云"中某处运行,可以是您的电脑、公司或家庭网络,甚或互联网本身,但实际上用户无需了解、也不用担心应用运行的具体位置。”
许多人称云计算是HPCC的未来,究其原因,自然是因为它用途广泛、易于使用以及成本低廉(在大多数情况下),同时它还能为用户带来超级计算机级别的性能。在核实云计算是否能带给用户超级计算机级别的性能之前,让我们首先查看"应用纲要",即应用成功运行所需的资源集。
  云计算应用纲要
  a确保云计算成功执行的一大要素是应用纲要,即应用运行所需的资源和作用方式。在广义上,当前云计算应用具备下列纲要:
  b应用不会出现任何程度的并行,也未进行线程化。
  c几乎所有应用都不需要过多的内存带宽和高CPU使用率。
  d应用很少执行与其计算相关的IO,但也会存在例外,如实际上并未在“云”上运行的数据库。
  e应用可进行自我修复。也就是说,一旦应用因故出现故障,它能轻松重启或恢复,而不会对用户的工作造成太大的中断。
  大多数日常应用(如制作演示幻灯、撰写文档和电子表单、畅玩游戏等)都是串行应用,许多功能往往都放置在了桌面上(很可能采用AJAX)。Google等公司开发出了针对云计算的存储系统,但这些文件系统主要面向具备上述纲要的应用(例如hadoop)。由于您必须使用MapReduce来访问和使用这些文件系统,因而它们在传统HPC应用上的适用性会受到限制。
 上述应用特征同样适用于许多企业应用。换而言之,它们是IO量极少的串行应用。当然也存在IO密集型企业应用,如数据库等,但它们通常不会在总体应用排名中占据优势。
  HPCC计算应用纲要
  HPCC应用具备各种应用纲要。典型应用涉及并行计算,可能含有大量的IO。同时,串行(单节点)HPCC应用可能执行许多IO任务。因此,HPCC应用的纲要范围十分广。下面简要列出了HPCC应用的几项要素。
  * 许多应用为串行应用,其中各种进程之间存在一些数据通信。
  * 有时进程间的数据传输量很少。例如:某CFD代码
  * 有时进程间的数据传输量很大。例如:WRF
  * 有些应用为串行应用或线程化应用,运行于单个节点上。例如:BLAST
  * 有些串行或并行应用执行许多IO任务。例如:Ansys、Abaqus或Nastran等FEA代码
  * 有些串行或并行应用不执行许多IO任务。
  * 有些应用能够生成一个检查点,即一份计算进程的快照。
  * 一旦系统因故出现故障,它能够从上一个检查点重新启动,而无需从一开始重启。并非所有应用都具备这一功能。
  只需查看应用纲要即可了解HPCC应用之间的巨大差异。显然,HPCC应用具备与当前的云计算应用不同的应用纲要。正因为存在这个差异,一些 HPCC应用能够适用于云计算模式,而有些却不适用。在下一章节,我们将探讨哪些HPCC应用能够在云计算模式下运行良好,哪些不适用于云计算模式且不可能适用于这一模式。
  云计算中的HPCC应用
  从目前来看,云计算应用和HPCC应用似乎有很大不同,但仔细分析后不难发现,两者之间仍然存在着一些共同点。某些HPCC应用并不依赖于节点间的通信,也不需要太多的IO(如BLAST)。这些特定应用的应用纲要能够很好地与云计算能力相契合。那么,这样的应用有哪些呢?事实上,现在还很难找到此类具体应用,因为并行应用完全能在单个节点上正常运行。只要数据集能在无需交换的情况下置入节点,应用就可以在云计算环境中运行。下面是一份有关HPCC 应用需求的速列清单,明确列出了在云计算环境下应用和数据集之间应如何配合才能确保两者的正常运行。
  a应用必须运行于单个节点。数据集必须位于单个节点。
  b非IO密集型应用。
  c应用需快速运行,或创建一个检查点(自我检查点)。
  因此,适合云计算环境的HPCC应用的应用纲要还是比较有限(但绝非完全没有)。
  另一类能够正常运行于云计算环境的应用是大型搜索应用。目前Google已经掌握了云计算技术,但其它领域也同样存在着搜索应用。例如,BLAST可用于搜索和比较生物序列信息。因此在搜索大型序列信息数据库时,会生成和执行大量的搜索。而每次搜索都能在单一节点中执行(尽管已经出现并行版本的BLAST)。
  在云计算环境中运行必须考虑的最后一个问题是数据安全性。企业和实验室一般利用HPCC应用来创造新产品或开展新研究,这无疑是一项优势。但企业必须要确保数据的安全。如果您是在云计算环境中运行专属应用,就必须考虑数据安全性问题。到目前为止,业界尚未对云计算数据安全问题进行真正意义上的讨论或关注。
  云计算=网格计算?
  如果您在几年前接触过高性能计算(HPC),那么您一定听说过网格计算。由于网格计算和云计算都能够将位于不同位置的不同资源集中在一个系统中,因此两者在理念上十分类似。网格计算能够将不同任务提交至集中任务调度器进行分配,决定在何处运行应用,以达到在网格中运行HPC代码的目的。应用既可以在本地运行,也可能在相距数千英里的其它系统上运行。这样看来,网格计算和云计算似乎并无区别。但实际上,两者之间有本质的不同。
  首先,网格计算能够运行任何HPC代码,即使其中包含大量的进程间通信或IO,而云计算就无法做到这一点。前者的优势在于您能够在网格中运行MPI 代码,将位于不同地方的系统集中在一个系统中。但实际上,由于带宽有限、系统间的延迟过高,应用并不能以这种方式运行。当前的网格更像是采取了元调度(meta-scheduling)的运行方式,即将任务提交至集中调度点进行分配,让它决定应用运行的系统。因此,应用不会在多个系统上运行,而是在网格内的单一系统上运行。
  网格计算和云计算之间存在一个非常重要的差异:在云计算环境下,应用中不能出现跨节点的进程间通信,IO量也不能太多;而网格计算则允许应用中包含大量的跨节点进程间通信,以及单一系统所能容纳的IO量。
  * 云计算需使用串行应用(运行于单枚内核或单一节点),拥有限于单一节点的数据集,只进行少量IO操作,且无需数据保护。
  * 运行HPCC应用需满足一系列条件,如运行于单一节点(如BLAST)或运行于多个并行节点。此外,它们还可能产生大量IO,同时还必须考虑数据安全性问题。
  * 网格计算能够运行HPCC应用,用户可以不知道这些应用的运行位置(类似于云计算),但却需要满足HPCC应用的所有要求。
  在对上述三类计算模式进行深入观察后,我们可以很容易找出它们之间的差异,并选择最能满足您计算需求的模式。
  观察与展望
  什么是云计算?云计算如何影响HPCC?云计算在很多方面类似于网格计算,但两者在应用纲要上还是存在一些本质差异,这也限制了 HPCC应用对云计算优势的利用。云计算只能对特定的HPCC领域产生影响,如那些无需(或仅需少量)进程间通信,且IO量非常有限的应用。如今,人们还在四处寻找云计算的用武之地。如此看来,现在的云计算技术尚处在"幼年时期",您完全无需改变原有的HPCC策略。
  但在另一方面,HPCC的定义也在不断变化。在过去,HPCC一直以大型设备(比台式机大)上的科学或工程计算应用,或计算量极大的数学或科学领域应用为重心。但在最近一段时间内,已经有人开始尝试在商务智能(BI)应用领域中实施HPCC,甚至连数据库这样的应用也开始出现在HPCC应用环境中,同时还有人考虑将HPCC扩展到游戏或娱乐应用《第二人生》(Second Life)或《网络创世纪》(Ultima Online等大型多人在线游戏)等领域。即使是Google这样的搜索引擎也在考虑之列。
  随着HPCC范畴的不断扩大,云计算也许将在HPCC中得以广泛应用。但这也只是一种猜测。谁知道呢?也许这些应用终会“改名换姓”,将HPCC永远束之高阁也说不定。

二.2010年中国高性能计算机性能TOP10排行榜

序号

研制厂商/单位

型号

安装地点

应用领域

CPU核数

Linpack值(Gflops)

Linpack来源

峰值(Gflops)

效率

1

国防科大

天河一号A/7168x2 Intel Hexa Core Xeon X5670 2.93GHz + 7168 Nvidia Tesla M2050@1.15GHz+2048 Hex Core FT-1000@1GHz/私有高速网络80Gbps

国家超级计算天津中心

科学计算/工业

202752

2507000.00

Q

4701000.00

0.533

2

曙光

曙光星云/Dawning TC3600 Blade/Intel Hexa Core X5650 + Nvidia Tesla C2050 GPU/QDR Infiniband

曙光公司

科学计算/工业

120640

1271000.00

C

2984300.00

0.426

3

中科院过程所

Mole-8.5 Cluster/320x2 Intel QC Xeon E5520 2.26 Ghz + 320x6 Nvidia Tesla C2050/QDR Infiniband

中国科学院过程工程研究所

科学计算/粒子模拟

33120

207300.00

Q

1138440.00

0.182

4

曙光

魔方/曙光5000A/1920x4 AMD QC Barcelona 1.9GHz/DDR Infiniband/WCCS+Linux

上海超级计算中心

科学计算/工业

30720

180600.00

C

233472.00

0.774

5

联想

深腾7000/1240x2 Intel Xeon QC E5450 3.0GHz/140x4 Intel Xeon QC X7350 2.93GHz Infiniband 4xDDR

中国科学院超级计算中心

科学计算

12160

106500.00

C

145293.00

0.733

6

曙光

曙光星云/Dawning TC3600 Blade/220x(2 Intel Hexa Core X5650 + 1 NVidia Tesla C2050)/QDR Infiniband

成都超级计算中心(二期)

科学计算/工业

5720

76350.38

C

141389.60

0.540

7

曙光

生物专用机/Dawning TC3600 Blade/Intel Hexa Core X5650 + NVidia Tesla C2050 GPU/QDR Infiniband

中国科学院计算技术研究所

生物信息学

4160

55527.55

C

102828.80

0.540

8

IBM

xSeries x3650M2 Cluster/Intel Xeon QC E55xx 2.53 Ghz/Giga-E

工程公司

工业

8960

51200.00

T

90680.00

0.565

9

HP

Cluster Platform 3000 BL460c G6/Intel Xeon E5540 2.53 GHz/Giga-E

中国电信

电信

7848

41880.00

C

79420.00

0.527

10

IBM

BladeCenter HS22 Cluster/Intel Xeon QC GT 2.53 GHz/Giga-E

网络公司

工业/游戏

7168

41270.00

T

72540.00

0.569


三.中国2010年高性能计算重大事件
事件一:龙芯刀片研发成功
  曙光公司于4月份宣布研制成功龙芯刀片服务器,这标志着国产处理器首次应用在了高密度刀片产品中,也是首次应用在高性能计算领域。正如龙芯总设计师胡伟武在曙光龙芯刀片服务器发布现场所言,“我最早认为龙芯是一个项目,后来认为这是一个产品,现在才发现龙芯其实是一个产业链。”
 龙芯系列处理器发展到现在即将有三大路线图,分别是面向服务器和高性能计算领域的“大CPU”龙芯3A(龙芯刀片),未来曙光6000将采用的龙芯3B处理器(8核心);另一条路线则是面向普通计算机和嵌入式应用的龙芯2系列处理器,已经发展到了龙芯2F和龙芯2G;最后一条产品线是面向移动和消费电子的嵌入式龙芯1系列处理器。
    笔者认为,相比国外主流x86厂商在制程和主频工艺等领域疯狂攀升性能,龙芯走了另一条路(MIPS架构),并且在多核心封装方面具有x86所不具备的优势。未来的曙光6000将成为国内超算首次使用国产处理器的里程碑,意义空前。
事件二:“星云”超算冲上Top500第二名
  紧接着龙芯刀片的成功发布,曙光在6月份发布了基于模块化刀片服务器TC3600的超级计算机“星云”(详见这里)并冲上了六月份Top500榜单的第二名(详见这里)。“星云”超级计算机采用的是曙光最新的SSI模块化刀片服务器TC3600作为节点(点这里查看TC3600细节),其CPU+GPU的混合架构在针对“华大基因”这类公司的微生物计算方面拥有明显优势。
事件三:英特尔推出“MIC”并行计算架构
  英特尔发布“MIC”众核计算架构的目的在于对未来计算市场的预期——会有一部分应用是高并行度的。而另一方面来自Nvidia和ATI的GPGPU在编程方面又存在各种困扰,因此英特尔推出了“MIC”众核架构处理器,主要面向勘探、科研、金融、气候模拟等高性能计算(HPC)领域。
笔者认为,相比先期英特尔高调宣传却最终失败的“Larrabee”x86架构GPU来看,“MIC”产品是其研究成果的继任者,不过更加务实的着眼于专业领域。首先推出的“Knights Ferry”实验型产品并不商用而是面向合作伙伴的开发和测试工具;未来将推出的22nm工艺“Knights Corner”才是商用“MIC”产品,预计将集成超过50个众核处理器。
事件四:“天河一号”爆冷夺Top500桂冠
  2010年10月末的全国高性能计算年会上,“天河一号”以2500万亿次的计算性能再次获得国内超算第一名的成绩(详见这里),并且在接下来的Top500排行中成为世界第一(详见这里)。
  国防科大自主研发的“天河一号”自去年以峰值性能1206万亿次夺得国内TOP100第一名以来(详见这里),经过对CPU和Tesla计算卡的升级以及今年新加入的国产飞腾系列处理器(详见这里),使其计算性能猛增到2507万亿次。
下面是2010年在高性能计算领域发生的主要事件时间表:
  4月23日,曙光宣布成功研制出基于国产龙芯处理器的高性能刀片服务器CB50-A。
  5月4日,曙光推出第二款个人高性能计算机“PHPC200”,运算速度达到2500万亿次。
  5月31日,全球Top500排行榜出炉(2010年年中),曙光“星云”超级计算机位列第二。
  5月31日,英特尔宣布将推出集成众核架构(MIC)产品,首批样品代号Knights Ferry,仅用于研究。
  6月2日,Cray宣布推出基于AMD十二核皓龙6100的超级计算机“XE6”。
  6月7日,“2010年中国高效能计算应用高峰论坛”将在北京举行,来自中国软件行业协会数学软件分会、中国科学院过程工程研究所、北京大学、中国科学院软件研究所、Nvidia、Intel、Mellanox的多位专家代表将就“GPU在高性能计算领域里的最新应用发展与挑战”展开演讲与讨论
  6月25日,英特尔2010年高性能计算研讨会举行,主题“石油勘探挑战高性能计算”。
  7月26日,微软发布新一代高性能计算(HPC)集群专用系统“Windows HPC Server 2008 R2 Suite”。
  9月28日,浪潮承接山东信息通信技术研究院项目,开建“神威蓝光”千万亿次超级计算机。
  10月27日~30日,2010年全国高性能计算学术年会在国家会议中心召开,其间公布了中国Top100超级计算排行榜,国防科大的“天河一号”以2500万亿次速度荣获第一,曙光星云名列第二。
  11月13~19日,国际超级计算大会在美国举行,其间发布了全球高性能计算机Top500排行榜,中国“天河一号”名列第一,曙光星云名列第三。
  11月24日,世界超算Green500,能效排行榜公布,天河一号排名第11位。
四.国家政策相关
1. 十二五:我国高性能计算重在提高“软实力”
【赛迪网讯】不久前公布的全球高性能计算TOP 500的排名,中国“天河1号”超越了所有对手位居榜首。应该说,“十一五”期间,中国在高性能计算领域,尤其是系统硬件方面取得了许多重要突破,但是和国外高性能计算实力相比较,我们的HPC(高性能计算)在软件应用、核心技术、系统架构的创新上却有相当大的差距,需要在“十二五”期间,补齐这些短板,让中国高性能计算的“软”实力也“硬”起来。
首先要加大对HPC软件应用发展的投入力度。在国外,高性能计算系统的发展,往往是因为需要解决某些具体的应用需求难点而在计算层面进行创新,从而带动了系统硬件不断升级。是先“软”后“硬”,或者“软”“硬”同步。但是我们的HPC发展却轻“软”重“硬”,其结果是尽管我们的计算速度上去了,但是所跑的HPC软件都是国外的。很多关键领域、高端领域的HPC应用软件,国外限制对中国出口。所以未来要进一步推动HPC的普及化,让它能够为中国的产业升级、为大飞机、为航天航空、为气象预报、灾害预警等释放更多能量与价值,就必须大力发展HPC的应用与软件。
需要改变对高性能计算评估体系。如果想要在“十二五”期间大力发展软件与应用,就需要修订我们对高性能计算发展的考核与考评的指标,制定不同应用领域的评估指标,改变重硬件而轻算法的局面。比如在气象领域,需要用清晰度、分辨率等这些倾向于应用的指标来考核HPC的成果。在每一个重要的HPC应用领域,都制定相应指标体系,鼓励HPC产学研机构去参与这些领域的竞标,展开HPC的应用竞赛,形成重视HPC软件与应用的产业氛围,只有这样,我们的HPC应用软件才能发展起来。
需要在核心技术、核心架构上进行创新。尽管中国的HPC拿到了全球HPC TOP 500的好名次,但是我们所采用的系统架构、所采用的CPU+GPU模式,其核心技术都来自于国外企业,某种意义上看我们只是在别人已经设计好的蓝图上将之发扬光大罢了。而欧美等国已经开始布局5年甚至是10年之后的HPC,如果我们依然停留在别人的架构与核心技术之下,未来,我们的HPC将不仅仅是落后几年的问题而是落后一代的问题。所以,我们需要在“十二五”期间加大在HPC核心技术、核心架构上的创新,尤其是对特殊的应用进行针对性设计与优化,将有机会带来中国HPC核心技术的突破。
(1)曙光公司总裁历军 :高性能计算需要普及
在“十二五”期间,国内的高性能计算企业应将应用的重点放在引导用户了解高性能计算,用巧妙的方式引发用户了解高性能计算的优势和自身的需求。
高性能计算的集中化趋势是历史必然。而在云计算等新模式下,高性能计算的发展仍将注重高性能计算系统的研究与发展。以曙光为例,曙光在研究新技术和新产品的同时,是带着引导用户使用与满足用户需求的目的的。在未来,高性能计算需要推动普及化应用,只有应用需求与产业化技术得到有效提升,中国高性能计算的发展才能真正做大做强,做到科技与民生的实际性结合,中国高性能计算才能走出属于自己的中国化特色。
(2)浪潮高性能服务器产品部总经理刘军 :调整评估体系
国家在“十一五”期间对高性能计算系统的巨大投入,使我们在全球HPC TOP500的排名已经做到了NO.1,在硬件系统上取得了很好成绩,也引起了美国与日本等国的关注。
但从另一方面看,我们的HPC在软件和应用方面的差距很大。所以在“十二五”期间,中国发展高性能计算要补齐我们在应用软件上的短板,同时要在核心技术与系统架构上有属于自己的创新。要在这两方面突破,在发展思路上就要应对挑战,在对高性能计算的成果评估体系上就需要将原来关注速度等指标调整为关注应用,比如说在气象领域要达到多少分辨率,在算法上取得哪些突破,在应用上扩展到多少核等等。
(3)北京市公共计算重点实验室主任曾宇 :应用成为普及关键
高性能计算的普及,应用是关键。这包括两个层面的含义,一是高性能计算平台、应用软件、相关算法、服务团队应该能满足应用的需求,二是高性能计算平台其服务模式、服务收费应该能让应用快捷、方便、廉价、透明。国家应该基于区域经济结构的特点,统一规划。
无论是云计算还是高性能计算,服务的模式和服务的对象是规划其产业发展的关键。云计算本身针对应用需求的特征提供商品化的计算能力和数据处理服务能力,以公共云计算平台推动领域计算服务、领域数据处理服务,推动区域社会经济建设和行业发展,培育区域社会经济发展新的经济增长点,从而推动民族传统产业和新兴产业的自主创新发展是可行的方案。
(4)清华大学计算机系副主任、教授陈文光:加大HPC推广力度
首先还是要加大推动应用的力度。中国在高性能计算硬件方面的计算速度已经上去,但是在应用上与国外的差距还是比较大。应用的发展需要国家长期支持。发展HPC应用,我们需要以科研为契机,打通人才教育生态链,做好人才培养的储备,为中国的产业升级做好支撑。其次是要加强硬件的核心技术研发。目前虽然我们的HPC计算速度上去了,但是核心的CPU、GPU还是采用国外的,我们需要研发自己的CPU和GPU,需要在系统结构上有所创新。需要针对特殊的应用,进行处理器与架构等方面的定制,形成我们在高性能计算领域的竞争力。
2.高标委召开会议,HPC标准建立
2007年3月,在曙光的倡议发起下,中国电子工业标准化技术协会成立了高性能计算机标准工作委员会,以刀片服务器为突破口,试图构建高性能计算机产品及应用的相关技术标准和规范。而在去年7月底,由英特尔主导的服务器系统架构组织(ServerSystemsInfrastructure,简称SSI)也联合全球40多家服务器厂商宣布推出开放的刀片服务器平台规范。
经过近一年的努力,通过这两大组织在SSI规范及刀片标准开发过程中进行的广泛接触,在2008年达成了共识。针对此次合作,高标委主任历军表示,高标委会在一定程度上同SSI展开合作,争取在物理结构、机械尺寸、电气信号排列等基础架构方面做到可互换,他说:“未来国内系统厂商生产的刀片服务器可以插入符合SSI规范的刀片机箱中去。”
中电标协高性能计算机标准工作委员会(以下简称“高标委”)第六次工作会议于2010年2月6日在厦门成功召开。会议期间,高标委与由国际服务器标准制定组织,即服务器系统架构组织(Server System Infrastructure,简称SSI)签署合作备忘录,就共同推进高性能计算机刀片式服务器标准化进程达成协议和共识。
http://www.docin.com/p-44853322.html
分享

0

阅读(80)┊ 评论 (1)┊ 收藏(0) ┊禁止转载 ┊ ┊打印┊举报
已投稿到:
排行榜
加载中,请稍候......
前一篇:饶毅:对科学的重要性和有趣性追求,为最重要、最好的工作努力!
后一篇:分布式/集群/并行文件系统

云计算的基础架构:并行计算+资源虚拟化相关推荐

  1. Nutanix超融合基础架构和桌面虚拟化解决方案助力新松机器人加速数字化转型

    2020年6月11日,北京 -- 企业云计算领导者Nutanix日前宣布,中国最大的机器人制造商之一,新松机器人自动化股份有限公司(以下简称"新松机器人")已成功部署Nutanix ...

  2. Google云计算的基础架构

    主要内容: 云计算, Google云计算基础架构,GFS,MapReduce,BigTable, Google云计算平台App Engine简介 主讲人:王咏刚 一 Google云计算技术架构: G ...

  3. 云计算技术基础 第3章 虚拟化技术(1)

    目录 虚拟化技术简介 虚拟化的意义 虚拟化的分类 虚拟化的业界解决方案 本章目标 掌握虚拟化概念 熟悉虚拟化的分类 掌握网络虚拟化.存储虚拟化..桌面虚拟化.应用程序虚拟化 了解业界的虚拟化解决方案 ...

  4. 12-16 云计算平台基础架构

    基本heat脚本截图: 成heat脚本结果截图:  实验步骤 [root@xiandian ~]# #使用编配服务实现自动部署云主机vm [root@xiandian ~]# #第一步 获取基础资源 ...

  5. 2021-12-13 云计算平台基础架构 swift

    班级:20网络3 学号:30 姓名:徐鑫 swift操作截图 设置后端存储截图 [root@xiandian ~]# source /etc/keystone/admin-openrc.sh [roo ...

  6. 微软推超融合基础架构解决方案 企业可在本地端做虚拟化应用

    微软在其混合云平台Azure Stack上,推出超融合基础架构解决方案Azure Stack HCI(Hyperconverged Infrastructure),企业现在可以在本地端(On-prem ...

  7. 什么叫超融合基础架构?

    云计算三大类别:私有云.公有云.混合云:三个层次:IAAS.PAAS.SAAS:超融合属于私有云中的IAAS服务层. 一般在企业初次上云,除了会选择简便.高性价比私有云方案,更热门的就是超融合了. 那 ...

  8. 医院集成平台超融合基础架构转型方案

    内容导读 近年来,在电子病历应用水平评级要求以及医院在不同业务间实现协同等多种因素的推动下,集成平台成为各大型医院信息化建设中重点的项目. 本文将围绕医院集成平台的资源需求以及其对 IT 基础架构的要 ...

  9. 虚拟化基础架构Windows 2008篇之1-虚拟化基础服务概述

    看完文章,请顺手投我一票(王春海),谢谢 http://edu.51cto.com/activityvote/voteRanking 京东6.18结束了,IT人自己的6.18来了!!!51CTO学院3 ...

最新文章

  1. 信科c语言实验程序修改题_豆瓣评分 9.3,史上最好的 C 语言著作,竟然翻车了.........
  2. 【每日DP】day3 P1387 最大正方形(奇怪的DP增加了 / 二维前缀和)难度⭐⭐★
  3. Linux Kernel TCP/IP Stack — L3 Layer — netfilter/iptables 防火墙
  4. 了解 Apache ActiveMQ
  5. 仅1年GitHub Star数翻倍,Flink 做了什么?
  6. python基础list_Python基础4(list:列表)
  7. Servlet其实是单例多线程
  8. 推出超低功耗数字式热释电传感器,翠展微电子厉害了……
  9. 重置Oracle密码
  10. php一句话怎么写_PHP一句话木马后门
  11. [转]浅谈php web安全
  12. C# 委托和事件高级进阶
  13. C语言 从入门到放弃
  14. 一只踏入持续学习路上的程序猿
  15. roundcube邮箱手机端_手机QQ邮箱在哪里找
  16. 网络安全-江湖高手专用的“隐身术”:图片隐写技术
  17. html 加响应头,response发送中文,设置响应头
  18. 【Redis】初探Redis
  19. vue 拖拽【单个div实现拖拽】
  20. python绘制一份完美的中国地图

热门文章

  1. 液压与气压传动基础知识点
  2. MATLAB:添加图标题、轴标签、图例、更改字体大小
  3. CAD Electrical 怎么创建四极断路器
  4. freee Programming Contest 2022(AtCoder Beginner Contest 264) 题解 (A~D)
  5. 服装管理系统java代码_Java ee服装信息管理系统的代码
  6. 6. PHP接入支付宝有密退款接口
  7. scraino编程流程图_青岛Scraino编程课程
  8. 科技的成就(二十一)
  9. 米拓商城V4.0新功能介绍
  10. j2me游戏开发实例讲解