一种基于gpu的软件体系架构及uml和adl结合描述的方法

文档序号:8298865阅读:382来源:国知局
一种基于gpu的软件体系架构及uml和adl结合描述的方法
【技术领域】
[0001]本发明涉及一种软件体系架构技术领域,具体地说是一种基于GPU的软件体系架构及UML和ADL结合描述的方法。
【背景技术】
[0002]GPU (Graphic Processing Unit),中文翻译为“图形处理器”。GPU是显卡的“心脏”,也就相当于CPU在电脑中的作用。GPU具有相当高的内存带宽,以及大量的执行单元,它可帮助CPU进行一些复杂的计算工作,使显卡减少了对CPU的依赖。
[0003]传统上,GPU的应用被局限于处理图形渲染计算任务,无疑是对计算资源的极大浪费。随着GPU可编程性的不断提高,利用GPU完成通用计算的研究渐渐活跃起来。将GPU用于图形值染以外领域的计算成为GPGPU (General-purpose computing on graphicsprocessing units,基于GPU的通用计算)。GPGPU计算通常采用CPU+GPU异构模式,由CPU负责执行复杂逻辑处理和事务管理等不适合数据并行的计算,由GPU负责计算密集型的大规模数据并行计算。这种利用GPU强大处理能力和高带宽弥补CPU性能不足的计算方式在发掘计算机潜在的性能,在成本和性价比方面有显著优势。但是传统的GPGPU受硬件可编程和开发方式的制约,应用领域受到了限制,开发难度也很大。
[0004]2007 年,由 NVIDIA 推出的 CUDA (Compute Unified Device Architecture,统一计算设备架构),这一编程接口弥补了传统GPGPU的不足。利用CUDA编程接口,可以用C语言直接调用GPU资源,而无需将其映射到图形API,为GPU的非图形编程普及消除了障碍。
[0005]CUDA模型将CPU作为主机(Host),GPU作为协处理器(co-processor )或设备(device).两者协同工作。CPU负责进行逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务。CPU、GPU各自拥有相互独立的存储器地址空间:主机端内存和设备端显存。一旦确定了程序中的并行计算函数(kernel),就考虑把这部分计算交给GPU。
[0006]通用软件体系架构包括处理构件、数据构件和连接构件,处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。软件体系架构的建模模式中最典型的是管道和过滤器(Pipes and Filters)模式。管道和过滤器模式中的每个处理构件都有两个接口,输入接口和输出接口,分别用于读取数据构件的数据和输出数据构件的数据,读取的数据经过处理之后会被置于输出接口之中。这种模式的处理构件称作过滤器(Filters)。连接构件称为管道(Pipes),它是把一个过滤器的输出传送给另一个过滤器作为输入数据,数据构件即为数据流。
[0007]当前比较流行的软件体系架构描述方法有两种,一种是可视化描述,一种是形式化描述。可视化描述以统一建模语言(UML)为代表,这种方法清楚直观,也比较易懂;形式化描述以体系结构描述语言(ADL)为代表,既然是语言,那么描述就比较严格准确。两者在描述软件体系结构方面具有很强的互补性。
[0008]UML,英文全称Unified Modeling Language,又称统一建模语言或标准建模语言,是用来对软件密集系统进行可视化建模的一种语言。UML是一个标准的图形表示法,它仅仅是由一组符号组成的。UML应用非常广泛,可以对各种系统进行建模。另外,UML还提供了丰富的视图和图表,常用的有用例图、类图、构件图等,这些图可以从不同的视角来反应系统的状态。
[0009]ADL是一种形式化语言,它在底层语义模型的支持下,为软件的概念体系结构建模提供了具体语法和框架。ADL强调的是概念体系结构,它通常要包含形式化的语义理论,并以此来刻画体系结构的底层框架。ADL的语法、语义严格精确,是一种发展很快的体系结构描述方法,目前主要的ADL有C2、Unicon、Aesop、Wright、SADL和xADL等。
[0010]如何将UML和ADL结合使用,结合两者的优势,更好的搭建基于GPU的软件体系架构,是目前迫切需要解决的问题。

【发明内容】

[0011]本发明的技术任务是提供一种将UML和ADL结合使用,结合两者的优势,更好的搭建基于GPU的软件体系架构的一种基于GPU的软件体系架构及UML和ADL结合描述的方法。
[0012]本发明的技术任务是按以下方式实现的,
一种基于GPU的软件体系架构,基于GPU的软件体系架构采用管道和过滤器模式进行建模,过滤器包括数据流预处理过滤器、数据流减负过滤器、CPU端加载引擎过滤器、GPU端加载引擎过滤器、数据流处理过滤器以及可视化过滤器;
每个过滤器都主要由三部分组成:数据处理中心、数据输入接口和数据输出接口,数据输入接口负责接收输入的数据给数据处理中心,数据处理中心负责处理数据,数据输出接口负责将处理后的数据传输出去;
原始数据流通过管道依次经过数据流预处理过滤器、数据流减负过滤器、CPU端加载引擎过滤器、GPU端加载引擎过滤器、数据流处理过滤器;
数据流处理过滤器将最终的数据结果传输给GPU端加载引擎过滤器、由GPU端加载引擎过滤器再传输给CPU端加载引擎过滤器;
(PU端加载引擎过滤器将数据结果通过管道输入到可视化过滤器,可视化过滤器将可视化的数据结果传输给CPU端加载引擎过滤器。
[0013]一种基于GPU的软件体系架构,原始数据流指需要处理的原始时间序列数据流。
[0014]一种基于GPU的软件体系架构,数据流预处理过滤器负责通过预处理算法,对原始数据流进行筛选操作;数据流减负过滤器负责当系统中数据流超负荷时,执行减负模式去丢弃一部分未加工的数据的属性或者是数据项;CPU端加载引擎过滤器主要有两个方面的功能,一是负责CPU与外界的交互,二是负责CPU端和GPU端的初始化操作;GPU端加载引擎过滤器负责与CPU端的交互;数据流处理过滤器是整个系统的计算核心,负责加速数据流概要抽取方法和数据流挖掘算法;可视化过滤器负责把最终处理的数据结果以规范的形式展不出来。
[0015]一种基于GPU的软件体系架构,数据流预处理过滤器的筛选操作包括填补缺失值、平滑噪声、去除异常值、去除冗余数据、数据规范化和维度规约;CPU端加载引擎过滤器所指的外界包括数据源、GPU或客户端,与外界的交互操作包括加载原始数据流到内存、力口载用户设置,CPU端和GPU端的初始化操作包括CPU端内存的分配、GPU端显存的分配;数据流处理过滤器中,加速数据流概要抽取方法包括sketch中的hash计算、小波中的小波分解,加速聚类中的k-means算法。
[0016]一种UML和ADL结合描述的方法,对上述的任意一种基于GPU的软件体系架构,使用UML和ADL结合进行描述;一种基于GPU的软件体系架构的可视化描述采用可视化建模工具Rat1nal Rose 2003支持UML建立其体系结构模型,一种基于GPU的软件体系架构的数据输入接口及数据输出接口的接口类的软件描述采用CPU加载存储(CPU LoadStore)和GPU加载存储(GPU Load Store)两个接口类,CPU加载存储负责CPU与数据流资源、GPU以及客户端的通信,GPU加载存储负责GPU与CPU之间的交互通信;速度调整(Speed Adjustment)类、预处理(Pretreatment)类、减负(Load Shedding)类、初始化(Initializat1n)类和可视化(Visualizat1n)类均依赖于接口类CPU加载存储;CPU加载存储和GPU加载存储两个接口类互相依赖;计算类依赖于GPU加载存储以及抽象类模型库和概要抽取,即计算(Calculat1n)类在执行的时候需要调用抽象类模型库(ModelLibrary)和概要抽取(Synopsis Extract1n)中的信息;
一种基于GPU的软件体系架构的形式化描述采用ADL描述,选用基于XML的xADL 2.0语言去描述系统的体系结构。xADL 2.0和其它的ADLs—样,在xADL 2.0中,对体系结构的描述主要由四个方面组成,分别是构件、连接件、接口和配置。
[00
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1