数据并行化处理方法、系统、设备及存储介质与流程

文档序号:20707335发布日期:2020-05-12 16:38阅读:176来源:国知局
数据并行化处理方法、系统、设备及存储介质与流程

本发明实施例涉及网络拓扑图推理技术领域,尤其涉及一种数据并行化处理方法、系统、设备及存储介质。



背景技术:

深度学习网络通常由算法训练得来。多数情况下,算法开发人员倾向于使用已有的公开深度学习框架进行模型训练,而大部分公开深度学习框架是针对于中央处理器/图形处理器(centralprocessingunit/graphicsprocessingunit,cpu/gpu)这类计算设备设计的。cpu/gpu采用传统的指令集架构,架构效率较低,灵活性较高。随着深度学习相关技术的发展,对于计算能力的要求越来越高。相关技术中的指令集的架构效率缺陷已经不能满足应用场景的需求。对比而言,数据流架构效率更高,从技术路线来看更加适合深度学习技术的发展趋势。然而,数据流芯片只适用于深度学习算子,正常使用仍然需要cpu协助进行数据传输和处理。运行过程中,将处理好的数据从内存中搬运到片上内存中,等待运算卡运行完成之后将结果拿回,进行后处理,完成整个图推理过程。

相关技术中采用的图推理方法多是单线程运行带有异步计算,而这种图推理方法容易导致不能充分利用cpu和运算卡的运算资源。



技术实现要素:

本发明提供一种数据并行化处理方法、系统、设备及存储介质,以实现针对多个输入的图推理可以重叠运行,从而充分利用cpu和运算卡的资源的技术效果。

第一方面,本发明实施例提供了一种数据并行化处理方法,包括:

从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点;

获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量;

根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量;

获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为成第二输入张量;

根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。

第二方面,本发明实施例还提供了一种数据并行化处理系统,包括:

筛选模块,用于从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点;

第一获取模块,用于获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量;

第一计算模块,用于根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量;

第二获取模块,用于获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量;

第二计算模块,用于根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。

在一实施例中,本发明实施例还提供了一种设备,设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述实施例中任一的方法。

在一实施例中,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例中的方法。

本发明通过将具有逻辑关系的多个节点并行进行数据处理,解决了现有技术中无法充分利用cpu和运算卡的运算资源的技术问题,实现了通过多个输入的图推理的重叠运行充分利用cpu和运算卡的资源的技术效果。

附图说明

图1为本发明实施例一提供的一种数据并行化处理方法的流程图;

图2为本发明实施例二提供的一种数据并行化处理方法的流程图;

图3为本发明实施例三提供的一种数据并行化处理系统的结构示意图;

图4为本发明实施例四提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明进行说明。此处所描述的实施例仅仅用于解释本发明,而非对本发明的限定。为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将一个或多个步骤描述成顺序的处理,但是其特征在于的许多步骤可以被并行地、并发地或者同时实施。此外,一个或多个步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。

此外,术语“第一”、“第二”等可在本文中用于描述多种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一获取模块称为第二获取模块,且类似地,可将第二获取模块称为第一获取模块。第一获取模块和第二获取模块两者都是获取模块,但其不是同一获取模块。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确的限定。

实施例一

图1为本发明实施例一提供的一种数据并行化处理方法的流程图。本实施例可适用于多个具有逻辑关系的图推理情况,该方法可以由主机来执行。如图1所示,一种数据并行化处理方法,包括s110至s150。

s110、从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点。

在本实施例中,具有逻辑关系的至少三个第一计算节点是指这三个第一计算节点至少包括一个位于逻辑关系中上游的第一前节点和至少两个与第一前节点存在直接逻辑关系的位于第一前节点下游的第一后节点,第一后节点在进行数据计算时先接收第一前节点的数据处理结果作为第一后节点的输入数据,也就是说,在第一前节点计算完成后,得到的第一前节点的计算结果传输到与第一前节点直接关联的至少两个第一后节点作为第一后节点的输入数据。

以神经网络的计算节点计算为例,神经网络一般有多层,也就是多个逻辑性顺序连接的计算节点,一实施例中,第一前节点可以是指神经网络模型计算的最先开始计算的层级,第一后节点可以是指神经网络模型计算的在第一前节点计算之后马上开始计算的层级。第一前节点也可以是指神经网络模型计算的第n层级,第一后节点可以是指神经网络模型计算的n+1层级。本实施例不做限制。本实施例的神经网络类型包括前馈神经网络、径向基神经网络、深度前馈神经网络、递归神经网络等,此处对于第一神经网络类型不作限制。

s120、获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量。

在本实施例中,输入数据模型是指一种用于数据输入的数据模型,例如神经网络每层节点的计算公式或计算模型,输入张量是指一种带有输入数据的矢量。

s130、根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量。

在本实施例中,输出张量是指一种带有输出数据的矢量,在通过s120得到第一前节点的第一输入数据模型和第一输入张量后,计算第一前节点得到第一前节点的数据计算结果,这个数据计算结果就是本实施例中的第一输出张量。

s140、获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量。

在一实施例中,在完成了第一前节点的计算后,获取第一后节点的第二输入数据模型,并将第一输出张量作为第一后节点的输入数据从而得到第二输入张量。

s150、根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。

在一实施例中,基于在s140中得到的第二输入数据模型和第二输入张量,根据第一后节点的个数分别计算每个第一后节点,从而得到每个第一后节点的数据计算结果,并根据每个第一后节点的数据计算结果生成第二输出张量,从而得到第一并行节点组的总的计算结果,也就是第一计算结果。

本发明实施例一通过将具有逻辑关系的多个节点并行进行数据处理,解决了相关技术中无法充分利用cpu和运算卡的运算资源的问题,实现了通过多个输入的图推理的重叠运行充分利用cpu和运算卡的资源的效果。

实施例二

本发明实施例二是在实施例一的基础上的可选实施例。图2为本发明实施例二提供的一种数据并行化处理方法的流程图。如图2所示,本实施例的数据并行化处理方法,包括s201至s216。

s201、判断至少三个第一计算节点是否包括具有逻辑关系的第一前节点和至少两个第一后节点。

在本实施例中,在接收到多个第一计算节点后,在这些第一计算节点中选取至少三个第一计算节点并判断这三个计算节点是否存在逻辑关系,即是否存在第一前节点和至少两个第一后节点。以神经网络的计算节点计算为例,神经网络一般有多层,也就是多个逻辑性顺序连接的计算节点,一实施例中,第一前节点可以是指神经网络模型计算的最先开始计算的层级,第一后节点可以是指神经网络模型计算的在第一前节点计算之后马上开始计算的层级。第一前节点也可以是指神经网络模型计算的第n层级,第一后节点可以是指神经网络模型计算的n+1层级。本实施例不做限制。本实施例的神经网络类型包括前馈神经网络、径向基神经网络、深度前馈神经网络、递归神经网络等,此处对于第一神经网络类型不作限制。

s202、若至少三个第一计算节点包括具有逻辑关系的第一前节点和至少两个第二后节点,则将至少三个第一计算节点定义为第一并行节点组。

在本实施例中,当至少三个第一计算节点包括具有逻辑关系的第一前节点和至少两个第二后节点时,也就是说,这三个第一计算节点构成了一个最小逻辑关系组,这时可以将这三个第一计算节点定义为第一并行节点组。

s203、根据至少两个第一后节点的数量确认第一前节点的引用次数。

在本实施例中,可以根据每个第一前节点的下游存在的具有直接逻辑关系的第一后节点的个数,确定第一前节点的引用次数。举例来说,当一个第一前节点的逻辑下游处直接关联三个第一后节点,也就是说,第一前节点通过计算得到的计算结果,即第一输出张量直接传输到三个第一后节点,这三个第一后节点并行接收第一输出张量作为自己的输入数据,即第二输入张量,这时,第一前节点被引用了三次,那么第一前节点在进行计算前的引用次数被用于三。

s204、对第一并行节点组的第一前节点和至少两个第一后节点进行加锁。

在本实施例中,在本实施例中,在进行计算前,可以先对第一并行节点组中的第一前节点和第一后节点进行加锁操作,加锁的目的在于保证进行计算的都是不同的节点,防止因重复计算相同的节点而导致的内存浪费问题。

s205、获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量。

在本实施例中,输入数据模型是指一种用于数据输入的数据模型,例如神经网络每层节点的计算公式或计算模型,输入张量是指一种带有输入数据的矢量。

s206、根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量。

在本实施例中,输出张量是指一种带有输出数据的矢量,在通过s205得到第一前节点的第一输入数据模型和第一输入张量后,计算第一前节点得到第一前节点的数据计算结果,这个数据计算结果就是本实施例中的第一输出张量。

s207、获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量。

在本实施例中,在完成了第一前节点的计算后,获取第一后节点的第二输入数据模型,并接收第一输出张量作为第一后节点的输入数据从而得到第二输入张量。

s208、根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。

在本实施例中,基于在s207中得到的第二输入数据模型例如神经网络每层节点的计算公式或计算模型,和第二输入张量,根据第一后节点的个数分别计算每个第一后节点,从而得到每个第一后节点的数据计算结果,并根据每个第一后节点的数据计算结果生成第二输出张量,从而得到第一并行节点组的总的计算结果,也就是第一计算结果。

s209、判断每个第一后节点是否完成计算。

在本实施例中,在完成s208,即得到第一计算结果后,还判断第一并行节点组中的每个第一后节点是否都完成了计算,这样做能确保第一计算结果的准确性。

s210、在每个第一后节点完成计算后,分别对第一前节点的引用次数减一。

在本实施例中,在对每个第一后节点并行进行数据处理时,当第一并行节点组中的任一个第一后节点完成计算后,将第一前节点的引用次数减一。举例来说,当第一并行节点组中包括一个第一前节点和两个第一后节点时,根据s203得到第一前节点的引用次数为二,第一前节点的计算完成后得到第一输出张量,并将第一输出张量分别传输到两个第一后节点中,这时对两个第一后节点进行并行的数据处理计算,当第一后节点计算完成时,可以分别生成一个计算完成的反馈指令发送到第一前节点的引用次数计数器中,计数器接收到计算完成的反馈指令后将计数器中的引用次数分别减一,从而更新了第一并行节点组中第一前节点和第一后节点之间逻辑关系里的引用关系。

s211、判断第一前节点的引用次数是否为零。

在本实施例中,通过s210对第一前节点的引用次数进行更新,并实时判断第一前节点的引用次数是否为零,这样能检测与第一前节点存在直接逻辑关系的第一后节点是否全部完成了计算。

s212、当第一前节点的引用次数为零时,删除片上存储的第一输出张量并将第一输出张量存储到片外存储器中。

在本实施例中,当第一前节点的引用次数为零时,也就是说这时与第一前节点存在直接逻辑关系的位于下游的所有第一后节点全部完成了计算并得到了第二输出张量,可以删除存储在缓存内的第一输出张量,并把第一输出张量存储到内存中。

s213、当第一前节点的引用次数为零时,删除片上存储的与第一前节点对应的计算图。

在本实施例中,当第一前节点的引用次数为零时,将存储在缓存中的第一前节点的第一输入数据模型删除,从而节约存储资源。

s214、判断第一并行节点组的至少两个第一后节点的下游是否存在以至少两个第一后节点中的任一节点为第二前节点的第二并行节点组,第二并行节点组包括第二前节点和至少两个第二后节点。

在本实施例中,当第一并行节点组完成了包括的所有第一前节点和第一后节点的计算后,判断是否有第二并行节点组位于第一并行节点组的逻辑关系下游,这里的第二并行节点组与第一并行节点组都是一种包括至少三个第一计算节点的。

s215、在第一后节点的下游存在以至少两个第一后节点中的任一节点为第二前节点的第二并行节点组的情况下,获取第二前节点的第三输入数据模型并生成第二前节点的第三输入张量;根据第三输入数据模型和第三输入张量计算第二前节点的第三输出张量;获取至少两个第二后节点的第四输入数据模型并将第三输出张量作为第四输入张量;根据第四输入数据模型和第四输入张量分别计算至少两个第二后节点的第四输出张量,得到第二并行节点组的第二计算结果。

在本实施例中,当第一后节点的下游还存在第二并行节点组时,在计算第二并行节点组时可以按照计算第一并行节点组的方法进行计算得到第二计算结果。

s216、在第一后节点的下游不存在第二并行节点组的情况下,接收计算完成指令以结束计算。

在本实施例中,当第一后节点的下游不存在第二并行节点组时,生成一个计算完成指令并发送到主机,通知主机结束计算操作。

本发明实施例二通过将具有逻辑关系的多个节点并行进行数据处理,并针对每个并行节点组中的节点进行加锁操作,解决了相关技术中无法充分利用cpu和运算卡的运算资源的问题,实现了通过多个输入的图推理的重叠运行并对计算图中的节点分别加锁,充分利用cpu和运算卡的资源的效果。

实施例三

图3为本发明实施例三提供的一种数据并行化处理系统的结构示意图。如图3所示,本实施例的数据并行化处理系统300,包括:筛选模块310、第一获取模块320、第一计算模块330、第二获取模块340以及第二计算模块350。

筛选模块310,用于从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点;

第一获取模块320,用于获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量;

第一计算模块330,用于根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量;

第二获取模块340,用于获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量;

第二计算模块350,用于根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。

在本实施例中,筛选模块310包括:

第一判断单元,用于判断至少三个第一计算节点是否包括具有逻辑关系的第一前节点和至少两个第一后节点;

第一定义单元,用于若至少三个第一计算节点包括具有逻辑关系的第一前节点和至少两个第二后节点,则将至少三个第一计算节点定义为第一并行节点组。

在本实施例中,数据并行化处理系统300还包括:

引用模块,用于根据至少两个第一后节点的数量确认第一前节点的引用次数。

在本实施例中,数据并行化处理系统300还包括:

加锁模块,用于对第一并行节点组的第一前节点和至少两个第一后节点进行加锁。

在本实施例中,数据并行化处理系统300还包括:

第一判断模块,用于判断每个第一后节点是否完成计算:

更新模块,用于在每个第一后节点完成计算后,分别对第一前节点的引用次数减一;

第二判断模块,用于判断第一前节点的引用次数是否为零;

第一删除模块,用于当第一前节点的引用次数为零时,删除片上存储的第一输出张量并将第一输出张量存储到片外存储器中。

在本实施例中,数据并行化处理系统300还包括:

第二删除模块,用于当第一前节点的引用次数为零时,删除片上存储的与第一前节点对应的计算图。

在本实施例中,数据并行化处理系统300还包括:

第三判断模块,用于判断第一并行节点组的至少两个第一后节点的下游是否存在以至少两个第一后节点中的任一节点为第二前节点的第二并行节点组,第二并行节点组包括第二前节点和至少两个第二后节点;

第三计算模块,用于在第一后节点的下游存在以至少两个第一后节点中的任一节点为第二前节点的第二并行节点组的情况下,获取第二前节点的第三输入数据模型并生成第二前节点的第三输入张量;根据第三输入数据模型和第三输入张量计算第二前节点的第三输出张量;获取至少两个第二后节点的第四输入数据模型并将第三输出张量作为第四输入张量;根据第四输入数据模型和第四输入张量分别计算至少两个第二后节点的第四输出张量,得到第二并行节点组的第二计算结果;

结束模块,用于在第一后节点的下游不存在第二并行节点组的情况下,接收计算完成指令以结束计算。

本发明实施例所提供的数据并行化处理装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和效果。

实施例四

图4为本发明实施例四提供的一种设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性计算机设备12(即图4中的计算机系统/服务器)的框图。图4显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来限制。

如图4所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括工业标准体系结构(industrystandardarchitecture,isa)总线,微通道体系结构(microchannelarchitecture,mca)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardassociation,vesa)局域总线以及外围组件互连(peripheralcomponentinterconnect,pci)总线。

计算机设备12包括多种计算机系统可读介质。这些介质可以是能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28(即图4中的内存)可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory,ram)30和/或高速缓存32。计算机设备12可以包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如便携式紧凑磁盘只读存储器(compactdiscreadonlymemory,cd-rom),数字多功能盘只读存储器(digitalvideodiskreadonlymemory,dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明多个实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(localareanetwork,lan),广域网(wideareanetwork,wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(redundantarraysofindependentdrives,raid)系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行多种功能应用以及数据处理,例如实现本发明实施例所提供的方法:

从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点;

获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量;

根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量;

获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量;

根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。

实施例五

本发明实施例五还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现如本发明所有申请实施例提供的方法:

从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点;

获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量;

根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量;

获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量;

根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以包括电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、可擦式可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(compactdiscread-onlymemory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其特征在于承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用适当的介质传输,包括无线、电线、光缆、射频(radiofrequency,rf)等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1