论文部分内容阅读
摘要:本文分析了分散式系统的基本结构和设计方法,表明分散式系统能够较好解决在单机系统中的不能满足大规模计算和大容量存储的需求问题,并具有高度并行性,能满足实时系统的需求,有良好的扩展性。同时提出了一个节点性能测试与任务的管理方案,使得分散式系统能在尽量少增加通信消耗的情况下达到节点负荷均衡,在节点数量足够多的时候,系统可利用節点的空闲资源而并不影响用户自身的应用需求。
关键词:分散式系统;全景视频;任务需求;节点性能测试
由于大规模高分辨率全景视频监控系统有着计算量大和数据量大的特点,使得一般计算环境无法实时地完成全景监控,这时就需要一个计算容量大,数据存储写入效率快的系统来生成全景系统,这样的系统有单机高性能处理系统和基于网络连接的多机系统[1]。集中式系统实现简单,任务下达后有系统自动管理,但是系统价格昂贵,并且系统扩展性差,一旦该系统不能满足计算要求,只能从新搭建一个性能更高的系统。分散式系统的总体性能主要有系统中计算节点的规模决定,因为该系统中可以允许计算节点存在性能差异,所以可以通过添加不同的异构节点来提高系统计算能力,但系统结构复杂。
1 分散式系统原理
分散式是多个计算节点的集合,通过把节点接入到一个高性能的网络,实现节点互联;各个节点自身可以作为独立的交互系统提供给用户使用,也可以协同其他节点工作,并模拟成一个单一集中的计算资源[2]。分散式系统是一种容易搭建、廉价并扩展性好的体系结构。
分散式系统和分布式系统有着明确的界限,在分布式系统中,所有的节点以一个统一的整体展现给用户,没有一个独立的节点面向用户,分布式系统中每个节点有着同等的权限,节点之间可以自动完成任务的迁移和数据存储。分布式系统以全局方式管理系统资源,可以为用户任意调度节点资源,调度过程对用户来说是一个黑盒子。对用户来说,节点对用户来说是不可见的,用户面对的是一个虚拟的全局系统,如图1所示。
而分散式系统虽然和分布式系统有着相同的物理结构,但是用户面向的是一个专门的管理节点,用户必须就网络中各个节点的功能进行配置,各个节点负责的任务需要用户专门定制分配原则,如图2所示。
通过比较可知,分布式系统需要复杂的控制算法和很强的任务鲁棒性,因此分布式系统设计非常复杂,一般使用与复杂的静态任务计算。而分散式系统由于对节点可见,用户可以根据任务需求而定制任务专门的任务管理调度机制,所以分散式系统有很强的应用适应性、任务配合性,特别适合具有实时要求的应用任务。
2 分散式系统体系结构
分散式系统的节点可以是工作站、PC、嵌入式系统甚至是另外一个分散式系统,具有优秀的异构扩容性;网络可以是商用互联网,也可以是专门搭建的高速局域網,不受地域环境的影响;节点具有自己独立的本地磁盘,数据可以分散存储在各个节点;节点有自己独立的操作系统,可以执行自己的任务,可以服务于一个分散式系统,也可以服务于多个分散式系统[3];某个节点出现问题不影响系统整体运行,可以通过任务搬迁实现系统高容错性。
总的来说,分散式系统是一个松散耦合,一般由异构节点构成,节点可以有多个属主,系统管理者对节点管理权限有限,利用节点提供的空闲资源完成计算任务。
图3为分散式系统的体系结构,各个节点统一连到一个高速网络,用户通过用户接口对系统进行管理,各个节点可以以并行的方式协同完成任务,也可以以串行方式顺序完成任务 ,这使得分散式系统可以适应于各种计算。分散式系统设计方式可以与具体应用实现耦合,这使得分散式系统的运行效率要比模拟单一系统的分布式系统有更高的效率。
由于分散式系统是由多个节点组成的异构节点,使得系统的设计复杂,每一种应用都要为其设计一个专门的应用接口和管理模块[4-5]。设计一个分散式系统需要考虑以下四个问题:可用性、任务管理、数据存储、高效通信。
1.可用性
如何充分利用分散式系统,使系统服务用户的时间尽可能长。要求系统所有节点都有一定的容错能力;
2.任务管理
为了充分利用节点资源,系统应该能根据节点的冗余资源自动分配、管理各个节点的任务内容,同时让并行任务能同步、串行任务能符合逻辑顺序,使系统尽可能高效;
3.数据存储
要求系统在各个节点都有独立存储空间的情况下合理管理数据的存储与查找;
4.高效通信
由于节点松散耦合,各个节点如何实现高效通信决定了系统是否能迅速交互资源,是否能高效协同工作。
分散系统中各个节点有自己对应的操作系统,操作系统可以同构,也可以是异构。不同的应用任务需要专门为其设计一个运行在操作系统上的应用程序或者服务作为节点与管理者的接口。不同的应用和不同的系统都可以专门为其设计接口程序,这使得分散式系统更适合服务于专门的应用领域,而不是作为一个通用的运算服务提供系统。
3 任务需求与节点性能测试
为了实现节点任务的自动分配,必须知道任务的功耗需求和节点能提供的运算资源。任务功耗需求可以通过任务内容来做定量计算,也可以通过对任务用相同的计算环境来做需求对比,然后归一化的定性任务需求比例。而节点的运算资源与节点性能有直接关系,必须通过节点负荷测试来完成。
3.1 任务需求测试
虽然在任务内容明确时可以通过任务算法来计算任务理论功耗需求,但是受到编程习惯和编程效率的影响,实际任务功耗一般与其理论功耗需求有比较大的误差。一般任务功耗需求测试中,主要还是通过对实际任务进行对比测试来获得任务功耗需求。
假设节点需要处理的任务为,使用同一环境在时间t内分别连续测试各种任务类型,任务运行次数为,那么可以得到该环境下各任务的运行效率为:
以某一个任务作为基准定性各个任务,假设以为基准,各个任务运行效率为: 3.2 节点的性能测试
对于节点的性能测试,主要通过让各个节点运行一样的任务来对比节点性能,为了便于任务的分配,测试任务采用任务需求测试中的基准任务。
设k个节点性能为:
系统总性能为:
另外值得一提的是,目前计算机中多为多核系统,单线程测试节点性能只能体现该节点单核的计算效率,所以测试节点必须采用多线程方法,由于节点核心数量未知,需要分别使用多组数量的线程任务测试。
对某个节点I测试基准任务Q次,使用N个线程进行测试,每个线程重复运行基准任务次,其运行时间為t。
总体任务量Q固定,所以当线程数量N达到CPU核心数量后t收敛。由于CPU核心数量一般为2的幂次方,所以采用,i由0开始,直到t达到收敛,收敛时间为t’,则节点i的性能容量为:
如图4为某一节点完成某任务256次的测试结果,该节点为8核程系统,i在3时开始收敛,即N=8,此时与节点核心数一致。
4 结 语
本章主要分析了分散式系统的设计原理,认为由于分散式系统具有可以根据应用需求专门设定任务管理方案的特性使之适合于实时全景视频系统的设计。同时分析了节点性能的测试方法,设计了一种可以测试多核节点性能的测试方法。
参考文献
[1]邱群,马小虎.采用整數小波变换和多目标遗传算法的可逆灰度水印[J].计算机辅助设计与图形学学报,2015,27(7):1290-1297.
[2]Wang Xiaogang.Intelligent multi-camera video surveillance A review[J].Pattern Recognition Letters,2013,Vol.34(1,pp.3-19
[3]张铮, 王艳平, 薛佳春. 数字图像处理与机器视觉[M].北京: 人民邮电出版社. 2010,94~97.
[4]何炎祥,罗先林.对三种典型分布式任务分配算法的分析[J].小型微型计算机系统 - Mini-micro Systems,1997,Vol.18(11), pp.1-6.
[5]Ozay Necmiye,Topcu Ufuk,Murray,Richard.M, Wongpiromsarn Tichakorn.Distributed Synthesis of Control Protocols for Smart Camera Networks[C].2011 IEEE/ACM Second International Conference on Cyber-Physical Systems,April 2011, pp.45-54.
关键词:分散式系统;全景视频;任务需求;节点性能测试
由于大规模高分辨率全景视频监控系统有着计算量大和数据量大的特点,使得一般计算环境无法实时地完成全景监控,这时就需要一个计算容量大,数据存储写入效率快的系统来生成全景系统,这样的系统有单机高性能处理系统和基于网络连接的多机系统[1]。集中式系统实现简单,任务下达后有系统自动管理,但是系统价格昂贵,并且系统扩展性差,一旦该系统不能满足计算要求,只能从新搭建一个性能更高的系统。分散式系统的总体性能主要有系统中计算节点的规模决定,因为该系统中可以允许计算节点存在性能差异,所以可以通过添加不同的异构节点来提高系统计算能力,但系统结构复杂。
1 分散式系统原理
分散式是多个计算节点的集合,通过把节点接入到一个高性能的网络,实现节点互联;各个节点自身可以作为独立的交互系统提供给用户使用,也可以协同其他节点工作,并模拟成一个单一集中的计算资源[2]。分散式系统是一种容易搭建、廉价并扩展性好的体系结构。
分散式系统和分布式系统有着明确的界限,在分布式系统中,所有的节点以一个统一的整体展现给用户,没有一个独立的节点面向用户,分布式系统中每个节点有着同等的权限,节点之间可以自动完成任务的迁移和数据存储。分布式系统以全局方式管理系统资源,可以为用户任意调度节点资源,调度过程对用户来说是一个黑盒子。对用户来说,节点对用户来说是不可见的,用户面对的是一个虚拟的全局系统,如图1所示。
而分散式系统虽然和分布式系统有着相同的物理结构,但是用户面向的是一个专门的管理节点,用户必须就网络中各个节点的功能进行配置,各个节点负责的任务需要用户专门定制分配原则,如图2所示。
通过比较可知,分布式系统需要复杂的控制算法和很强的任务鲁棒性,因此分布式系统设计非常复杂,一般使用与复杂的静态任务计算。而分散式系统由于对节点可见,用户可以根据任务需求而定制任务专门的任务管理调度机制,所以分散式系统有很强的应用适应性、任务配合性,特别适合具有实时要求的应用任务。
2 分散式系统体系结构
分散式系统的节点可以是工作站、PC、嵌入式系统甚至是另外一个分散式系统,具有优秀的异构扩容性;网络可以是商用互联网,也可以是专门搭建的高速局域網,不受地域环境的影响;节点具有自己独立的本地磁盘,数据可以分散存储在各个节点;节点有自己独立的操作系统,可以执行自己的任务,可以服务于一个分散式系统,也可以服务于多个分散式系统[3];某个节点出现问题不影响系统整体运行,可以通过任务搬迁实现系统高容错性。
总的来说,分散式系统是一个松散耦合,一般由异构节点构成,节点可以有多个属主,系统管理者对节点管理权限有限,利用节点提供的空闲资源完成计算任务。
图3为分散式系统的体系结构,各个节点统一连到一个高速网络,用户通过用户接口对系统进行管理,各个节点可以以并行的方式协同完成任务,也可以以串行方式顺序完成任务 ,这使得分散式系统可以适应于各种计算。分散式系统设计方式可以与具体应用实现耦合,这使得分散式系统的运行效率要比模拟单一系统的分布式系统有更高的效率。
由于分散式系统是由多个节点组成的异构节点,使得系统的设计复杂,每一种应用都要为其设计一个专门的应用接口和管理模块[4-5]。设计一个分散式系统需要考虑以下四个问题:可用性、任务管理、数据存储、高效通信。
1.可用性
如何充分利用分散式系统,使系统服务用户的时间尽可能长。要求系统所有节点都有一定的容错能力;
2.任务管理
为了充分利用节点资源,系统应该能根据节点的冗余资源自动分配、管理各个节点的任务内容,同时让并行任务能同步、串行任务能符合逻辑顺序,使系统尽可能高效;
3.数据存储
要求系统在各个节点都有独立存储空间的情况下合理管理数据的存储与查找;
4.高效通信
由于节点松散耦合,各个节点如何实现高效通信决定了系统是否能迅速交互资源,是否能高效协同工作。
分散系统中各个节点有自己对应的操作系统,操作系统可以同构,也可以是异构。不同的应用任务需要专门为其设计一个运行在操作系统上的应用程序或者服务作为节点与管理者的接口。不同的应用和不同的系统都可以专门为其设计接口程序,这使得分散式系统更适合服务于专门的应用领域,而不是作为一个通用的运算服务提供系统。
3 任务需求与节点性能测试
为了实现节点任务的自动分配,必须知道任务的功耗需求和节点能提供的运算资源。任务功耗需求可以通过任务内容来做定量计算,也可以通过对任务用相同的计算环境来做需求对比,然后归一化的定性任务需求比例。而节点的运算资源与节点性能有直接关系,必须通过节点负荷测试来完成。
3.1 任务需求测试
虽然在任务内容明确时可以通过任务算法来计算任务理论功耗需求,但是受到编程习惯和编程效率的影响,实际任务功耗一般与其理论功耗需求有比较大的误差。一般任务功耗需求测试中,主要还是通过对实际任务进行对比测试来获得任务功耗需求。
假设节点需要处理的任务为,使用同一环境在时间t内分别连续测试各种任务类型,任务运行次数为,那么可以得到该环境下各任务的运行效率为:
以某一个任务作为基准定性各个任务,假设以为基准,各个任务运行效率为: 3.2 节点的性能测试
对于节点的性能测试,主要通过让各个节点运行一样的任务来对比节点性能,为了便于任务的分配,测试任务采用任务需求测试中的基准任务。
设k个节点性能为:
系统总性能为:
另外值得一提的是,目前计算机中多为多核系统,单线程测试节点性能只能体现该节点单核的计算效率,所以测试节点必须采用多线程方法,由于节点核心数量未知,需要分别使用多组数量的线程任务测试。
对某个节点I测试基准任务Q次,使用N个线程进行测试,每个线程重复运行基准任务次,其运行时间為t。
总体任务量Q固定,所以当线程数量N达到CPU核心数量后t收敛。由于CPU核心数量一般为2的幂次方,所以采用,i由0开始,直到t达到收敛,收敛时间为t’,则节点i的性能容量为:
如图4为某一节点完成某任务256次的测试结果,该节点为8核程系统,i在3时开始收敛,即N=8,此时与节点核心数一致。
4 结 语
本章主要分析了分散式系统的设计原理,认为由于分散式系统具有可以根据应用需求专门设定任务管理方案的特性使之适合于实时全景视频系统的设计。同时分析了节点性能的测试方法,设计了一种可以测试多核节点性能的测试方法。
参考文献
[1]邱群,马小虎.采用整數小波变换和多目标遗传算法的可逆灰度水印[J].计算机辅助设计与图形学学报,2015,27(7):1290-1297.
[2]Wang Xiaogang.Intelligent multi-camera video surveillance A review[J].Pattern Recognition Letters,2013,Vol.34(1,pp.3-19
[3]张铮, 王艳平, 薛佳春. 数字图像处理与机器视觉[M].北京: 人民邮电出版社. 2010,94~97.
[4]何炎祥,罗先林.对三种典型分布式任务分配算法的分析[J].小型微型计算机系统 - Mini-micro Systems,1997,Vol.18(11), pp.1-6.
[5]Ozay Necmiye,Topcu Ufuk,Murray,Richard.M, Wongpiromsarn Tichakorn.Distributed Synthesis of Control Protocols for Smart Camera Networks[C].2011 IEEE/ACM Second International Conference on Cyber-Physical Systems,April 2011, pp.45-54.