⑴ 什么是网格,和网络有什么区别啊
分类: 电脑/网络 >> 互联网
解析:
网格
一.网格的产生
网格(Grid)这个词来自于电力网格(PowerGrid)。“网格”与“电力网格”形神相似。一方面,计算机网纵横交错,很像电力网;另一方面,电力网格用高压线路把分散在各地的发电站连接在一起,向用户提供源源不断的电力。用户只需插上插头、打开开关就能用电,一点都不需要关心电能是从哪个电站送来的,也不需要知道是水力电、火力电还是核能电。建设网格的目的也是一样,其最终目的是希望它能够把分布在因特网上数以亿计的计算机、存储器、贵重设备、数据库等结合起来,形成一个虚拟的、空前强大的超级计算机,满足不断增长的计算、存储需求,并使信息世界成为一个有机的整体。
电网和网格对照表
电网:当你用洗衣机洗衣服时,你只关心衣服什么时候洗好。而不在乎洗衣机用的电是来源于水力发电,火电厂还是核电。你只需要把插头插入插座就行了。
网格:当你在电脑前工作时,你唯一关心的是要做的事(比如一项计算,设计等等)无论电脑连上什么网路,你都可以得到所需的计算能力出储存容量。
电网:我们现在用电的基础建设是“电网“。就是利用输电站,电力站,变电所和电线等等,把许多不同种类的发电厂和你家联系起来。
网格:对于上述的基础建设就叫“网格“。就是把电脑,工作站,服务器等计算资源连起来,而且提供必要的使用机制。
电网:电网是显而易见的:你不必担心你所用的电力是从哪里或者如何产生的。
网格:网格也将成为显而易见:你不必担心你所使用的电脑程序和资料在那里,网格中间服务器都会把最适合的计算资源分配给你的工作。
电网:电网很普遍:电力到处都有。只要插上插座就能获得电力资源。
网格:网格也将很普遍:电脑,笔记本,或者是掌上电脑,手机,甚至是一般的家用电器都可以通过网格插口连 上网格。
电网:电网是公共设施:你只要付钱就可以用电。
网格:网格也试图想为广大民众服务:只要付钱,都可以享用网格无穷无尽的计算资源和储存能力
注:另一种说法是网格就像一个巨大的网,里面有很多格子.每个格子就是一个局域网格,每个节点就是一台计算机.这种说法可能起源于中国。
二.究竟什么是网格
网格是一种新兴的技术,正处在不断发展和变化当中。目前学术界和商业界围绕网格开展的研究有很多,其研究的内容和名称也不尽相同因而网格尚未有精确的定义和内容定位。比如国外媒体常用“下一代互联网”、“Inter2”、“下一代Web”等来称呼网格相关技术。但“下一代互联网(NGI)”和“Inter2”又是美国的两个具体科研项目的名字,它们与网格研究目标相交叉,研究内容和重点有很大不同。企业界用的名称也很多,有内容分发(Contents Delivery)、服务分发(Service Delivery)、电子服务(e-service)、实时企业计算(Real-Time Enterprise Computing,简称RTEC)、分布式计算Peer-to-Peer Computing(简称P2P)、Web服务(Web Services)等。中国科学院计算所所长李国杰院士认为,网格实际上是继传统互联网、Web之后的第三次浪潮,可以称之为第三代互联网应用。
网格是利用互联网把地理上广泛分布的各种资源(包括计算资源、存储资源、带宽资源、软件资源、数据资源、信息资源、知识资源等)连成一个逻辑整体,就像一台超级计算机一样,为用户提供一体化信息和应用服务(计算、存储、访问等),虚拟组织最终实现在这个虚拟环境下进行资源共享和协同工作,彻底消除资源“孤岛”,最充分的实现信息共享。
三.网格技术的特征及其体系结构
1.网格技术的特征
在介绍网格的特征之前,我们首先要解决一个重要的问题:网格是不是分布式系统?这个问题之所以必须回答,因为人们常常会问另一个相关的问题:"为什么我们需要网格?现在已经有很多系统(比如海关报关系统、飞机订票系统)实现了资源共享与协同工作。这些系统与网格有什么区别?"
对这个问题的简要回答是:网格是一种分布式系统,但网格不同于传统的分布式系统。IBM Global Service与EDS是在这个分布式领域最着名的公司。构建分布式系统有三种方法:即传统方法(我们称之为EDS方法)、分布自律系统(Autonomous Decentralized Systems, ADS)方法,网格(grid)方法。ADS通常用于工业控制系统中。网格方法与传统方法的区别见下表:
特征 传统分布式系统 网格
开放性 需求和技术有一定确定性、封闭性 开放技术、开放系统
通用性 专门领域、专有技术 通用技术
集中性 很可能是统一规划、集中控制 一般而言是自然进化、非集中控制
使用模式 常常是终端模式或C/S模式 服务模式为主
标准化 领域标准或行业标准 通用标准(+行业标准)
平台性 应用解决方案 平台或基础设施
通过以上对比,
1.资源共享,消除资源孤岛:网格能够提供资源共享,它能消除信息孤岛、实现应用程序的互连互通。网格与计算机网络不同,计算机网络实现的是一种硬件的连通,而网格能实现应用层面的连通。
2.协同工作:网格第二个特点是协同工作,很多网格结点可以共同处理一个项目
3.通用开放标准,非集中控制,非平凡服务质量:这是Ian Foster最近提出的网格检验标准。网格是基于国际的开放技术标准,这跟以前很多行业、部门或者公司推出的软件产品不一样。
4.动态功能,高度可扩展性:网格可以提供动态的服务,能够适应变化。同时网格并非限制性的,它实现了高度的可扩展性。
2.网格的体系特征
网格之所以能有以上所说的种种优势特征,是由网格的体系结构赋予它的。网格体系结构的主要功能是划分系统基本组件,指定组件的目的与功能,刻画组件之间的相互作用,整合各部分组件。科研工作者已经提出并实现了若干种合理的网格体系结构。下面介绍目前影响比较广泛的两个网格体系结构:网格计算协议体系结构(Grid Protocol Architecture,GPA)和计算经济网格体系结构(GRACE)模型。
OGSA(Open Grid Services Architecture)被称为是下一代的网格体系结构,它是在原来“五层沙漏结构”的基础上,结合最新的Web Service 技术提出来的。OGSA包括两大关键技术即网格技术和Web Service 技术。
随着网格计算研究的深入,人们越来越发现网格体系结构的重要。网格体系结构是关于如何建造网格的技术,包括对网格基本组成部分和各部分功能的定义和描述,网格各部分相互关系与集成方法的规定,网格有效运行机制的刻画。显然,网格体系结构是网格的骨架和灵魂,是网格最核心的技术,只有建立合理的网格体系结构,才能够设计和建造好网格,才能够使网格有效地发挥作用。
OGSA最突出的思想就是以“服务”为中心。在OGSA框架中,将一切都抽象为服务,包括计算机、程序、数据、仪器设备等。这种观念,有利于通过统一的标准接口来管理和使用网格。Web Service提供了一种基于服务的框架结构,但是,Web Service 面对的一般都是永久服务,而在网格应用环境中,大量的是临时性的短暂服务,比如一个计算任务的执行等。考虑到网格环境的具体特点,OGSA 在原来Web Service 服务概念的基础上,提出了“网格服务(Grid Service)”的概念,用于解决服务发现、动态服务创建、服务生命周期管理等与临时服务有关的问题。
基于网格服务的概念,OGSA 将整个网格看作是“网格服务”的 *** ,但是这个 *** 不是一成不变的,是可以扩展的,这反映了网格的动态特性。网格服务通过定义接口来完成不同的功能,服务数据是关于网格服务实例的信息,因此网格服务可以简单地表示为“网格服务=接口/行为+服务数据”。
在目前,网格服务提供的接口还比较有限,OGSA 还在不断的完善过程之中,下一步将考虑扩充管理、安全等等方面的内容。
3.网格协议体系结构
Ian Foster于2001年提出了网格计算协议体系结构,认为网格建设的核心是标准化的协议与服务,并与Inter网络协议进行类比(如图1)。该结构主要包括以下五个层次:
构造层(Fabric):控制局部的资源。由物理或逻辑实体组成,目的是为上层提供共享的资源。常用的物理资源包括计算资源、存储系统、目录、网络资源等;逻辑资源包括分布式文件系统、分布计算池、计算机群等。构造层组件的功能受高层需求影响,基本功能包括资源查询和资源管理的QoS保证。
连接层(Connectivity):支持便利安全的通信。该层定义了网格中安全通信与认证授权控制的核心协议。资源间的数据交换和授权认证、安全控制都在这一层控制实现。该层组件提供单点登录、代理委托、同本地安全策略的整合和基于用户的信任策略等功能。
资源层(Resource):共享单一资源。该层建立在连接层的通信和认证协议之上,满足安全会话、资源初始化、资源运行状况监测、资源使用状况统计等需求,通过调用构造层函数来访问和控制局部资源。
汇集层(Collective):协调各种资源。该层将资源层提交的受控资源汇集在一起,供虚拟组织的应用程序共享和调用。该层组件可以实现各种共享行为,包括目录服务、资源协同、资源监测诊断、数据复制、负荷控制、账户管理等功能。
应用层(Application):为网格上用户的应用程序层。应用层是在虚拟组织环境中存在的。应用程序通过各层的应用程序编程接口(API)调用相应的服务,再通过服务调动网格上的资源来完成任务。为便于网格应用程序的开发,需要构建支持网格计算的大型函数库。
四. 当今网格的运用
现在国内国外运用得最多的可能是在一些大型院校的计算网格(实现计算资源的共享。 什么是计算资源: 简单来说就是计算能力,CPU。 计算资源共享就是CPU计算的共享)。人们把一个集群(cluster, 也就是常说的机房,通常有几十台操作系统为Linux的计算机)的计算机连成一个局域型网格。这样就好像把这几十台电脑连成了一台超级计算机,计算能力当然大大提高了。这种局域计算网格主要运用于一些科研的研究。比如说生物科学。当生物科学的研究员需要高性能的计算资源来帮助他们分析试验的结果时,他们就把这些分析试验的程序提交(submit)给网格,网格通过计算再把结果返回给这些研究员。计算结果可能是一些图像(rendering)也可能是一些数据。这些计算如果在单一PC(Personal puter, 个人计算机)上运行的话,往往会花费几个月的时间,然而在网格中运行一,两天也就完成了。这就是网格技术最直观的优点之一。当然现在有一些大型主机(super-mainframe)也有很强的计算能力(比如常说的IBM deepblue,打败人类围棋大师Kasparov那位),但是这种主机太昂贵,而且配置(deploy)往往不方便,是名副其实的重量级(heavyweight)计算。SETI@Home (SETI@Home's,一个分布式计算的项目,通过互联网络上的计算机搜索地球外智慧讯息,网格在分布式计算的成功运用。 参见:equn/info/fd01)的网站指出,世界上最强大的计算机IBM 的 ASCI White,可以实现12万亿次的浮点运算,但是花费了1亿千万美元;然而SETI@HOME 只用了50万美元却实现了15万亿次浮点运算。
网格另外一个显着的运用可能就是虚拟组织(Virtual Organisations)。这种虚拟组织往往是针对与某一个特定的项目,或者是某一类特定研究人员。在这里面可以实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享。比如说中国2008年奥运会开幕式研究组就可以运用网格组成一个虚拟组织。在这个虚拟组织里,任何成员不管在哪个地方都可以有权访问组织的共享资源(如 开幕式场地图纸,开幕式资金,开幕式节目单);而且可以和另一地方的虚拟组织成员进行交流。这个虚拟组织就像把所有奥运会开幕式的资源,信息,以及人员集中到了一个虚拟的空间,让人们集中精力研讨开幕式项目的问题,而不必考虑其他的问题。据个实例,由英国利兹大学,牛津大学,约克大学和谢菲尔德大学合作的DAME项目就是致力于研究和运用虚拟组织。DAME架构在这四个大学合建的白玫瑰网格White Rose Computational Grid (WRCG)上,运用于对飞机故障的快速检测和维修。
⑵ 三维数据分析有哪些好的方法与软件
三维数据处理软件都包含哪些模块
三维数据处理软件,一般包含三个模块:数据管理和处理,三维渲染,UI。 这与图形学的三个经典问题是相对应的:建模,渲染和交互。与一般常见的数据处理软件,比如图像视频处理,不同的是,这里的数据展示模块需要三维渲染。与之对应的UI操作,也变成了一些三维空间的变换,比如模型的旋转缩放等。
如何搭建一个简单的三维数据处理软件
那么如何快速的搭建一个三维数据处理软件呢?采用搭积木的方式,每个模块都有很多现成的开发包可以选择。比如UI模块处,一般常见的有MFC,QT,MyGUI(Magic3D使用的UI)等。数据处理算法方面,常见的有Geometry++,CGAL,OpenMesh,PCL等。渲染模块,可以使用OpenGL或者Direct3D,也可以使用渲染引擎,如OGRE,OSG等。
如何选择几何算法开发包
几何算法模块,一般有三种选择:自主开发,使用开源库,使用商业库。如何选择呢?开发包API的生命周期,大概分为开发,维护和升级。对于一个算法,几乎不可能开发出放之四海皆准的API。它的绝大部分时间都在维护和升级。开发包的选择,其实就是一个成本问题。开发阶段主要是时间成本,如何快速的实现目标功能是最关键的问题。维护和升级阶段需要尽量低的成本开销。所谓开源库免费,其实只是在开发阶段免费,而开发阶段最看重的却是时间成本。有了源代码就需要人去维护,没有人维护的源代码是没有用处的。商业库的主要优势就是有专业的团队来维护和升级这些API,并且成本会比个人做得更低。如果想清楚API的生命周期以及每个阶段的成本开销后,根据自身具体情况,就能很容易的做出选择了。
数字几何处理是什么
数字几何处理,一般是指点云网格数据的处理。和传统的NURBS正向建模的模型相比,数字几何处理的对象一般是三维扫描仪采集的数据,是曲面的离散表达,也就是数字化的。它的研究内容包括数据的获取,存储,表示,编辑,可视化等等。
OpenGL是什么
OpenGL是一套跨平台的图形绘制API,它通过一系列API把三维模型渲染到2D屏幕上。OpenGL采用了流水线机制,其绘制过程也称为渲染流水线。此外还有OpenGLES,主要用于嵌入式系统,或者移动平台;WebGL主要用于Web浏览器里的图形绘制。
OpenGL流水线
OpenGL通过一系列API可以设置渲染流水线的状态,所以OpenGL也是一个状态机。三维模型通过一些处理,最终渲染到2D屏幕上:
模型离散为三角面片:所有模型都需要离散为三角面片,OpenGL只接受三角面片输入。注意,虽然OpenGL也可以接受四边形,NURBS等输入,其本质最后都是三角面片的绘制。
Vertex Shader把三维三角片转化到屏幕坐标系下的2D三角片:这个过程包含了变换,裁剪等操作
2D三角片的光栅化:2D三角片被离散化,用屏幕坐标系的像素来表示,这也叫光栅化。
Pixel Shader为光栅化后的模型像素着色。
上面是渲染流水线的大致描述,其中还有很多细节,不同的API也有些细节上的差别。最早的OpenGL是固定的流水线,也就是只能通过API来设置一些流水线中的状态。现代的OpenGL开放出了一些Shader,用户可以自己为Shader写代码,利用Shader可以写出各式各样的渲染效果。
渲染模块使用OpenGL还是渲染引擎
如果渲染模块不是主要业务,建议使用渲染引擎。因为引擎内有很多现成的工具可以使用,减少开发的时间成本。