具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为根据本发明的较佳实施例提供的多数据处理设备协同工作方法的流程图。如图1所示,本发明的较佳实施例提供的多数据处理设备协同工作方法包括步骤101-105。
于步骤101,多个数据处理设备分别处理其对应的1个或多个任务。
举例而言,4个数据处理设备(GPU)分别处理其对应的任务,每个GPU对应的任务如表1所示。
表1
其中,数据处理设备是指显卡。
于步骤102,若第一数据处理设备的时间片大于第一预设值时,将根据任务的优先级来确定待迁移任务。
举例而言,每个数据处理设备的时间片的第一预设值设为8,将任务的优先级分为:第一等级、第二等级和第三等级。其中,优先级中第一等级高于第二等级,第二等级高于第三等级,各个任务对应的优先级如表2所示。
表2
任务名称 |
任务等级 |
A |
第一等级 |
B |
第三等级 |
C |
第一等级 |
D |
第二等级 |
E |
第一等级 |
F |
第一等级 |
G |
第二等级 |
H |
第三等级 |
I |
第一等级 |
J |
第一等级 |
K |
第三等级 |
L |
第二等级 |
基于表1和2的内容,以及每个数据处理设备的时间片的第一预设值为8,第一数据处理设备GPU1中现有任务的时间片之和大于8,任务A和任务C的优先级为第一等级,任务B的优先级为第三等级,由于优先级中第一等级高于第三等级,因此,确定待迁移的为任务B。
于步骤103,所述第一数据处理设备根据所述待迁移任务与其他数据处理设备中任务的相关度,来确定所述待迁移任务迁移到的第二数据处理设备;
所述其他数据处理设备为所述待迁移任务未访问过的数据处理设备。
举例而言,待迁移任务为任务B,任务B对应的数据处理设备为GPU1也即任务B访问过数据处理设备GPU1,因而GPU2、GPU3和GPU4称作其他数据处理设备。
于本实施例中,若任务的处理过程之间无关联性,则任务之间相关度为0。
举例而言,任务A为杀毒,任务C为采集,任务A和任务C之间无关联性,相关度为0。
于本实施例中,直接获得目标结果的任务与处理目标结果的任务之间的相关度为1;其中,所述处理目标结果的任务(为可选择的)为非必要任务。
举例而言,任务D+任务H=目标结果,任务L为验证目标结果,任务L为可选择的非必要任务,因而任务L与任务D之间相关度为1,任务L与任务H之间相关度为1。
于本实施例中,直接获得同一目标结果的任务之间的相关度为2。
举例而言,任务D+任务H=目标结果,可通过任务D和任务H直接获得目标结果,因而,任务D与任务H之间相关度为2。
于本实施例中,根据所述待迁移任务与其他数据处理设备中任务的相关度,确定所述待迁移任务迁移到的第二数据处理设备的过程为:获取其他数据处理设备中各任务与待迁移任务的相关度,通过比较得到相关度最高的任务,将其对应的数据处理设备作为第二数据处理设备。
举例而言,待迁移任务B与GPU2中任务D、E、F的相关度依次为0、2、0;待迁移任务B与GPU3中任务G、H、I、J的相关度依次为0、1、1、1;待迁移任务B与GPU4中任务K、L的相关度依次为0、1。
可以得出,待迁移任务B与GPU2中任务E的相关度为2,且与其他任务相比相关度最高。因此待迁移任务B迁移到的第二数据处理设备为GPU2,将任务B迁移到GPU2。
于本实施例中,根据所述待迁移任务与其他数据处理设备中任务的相关度,确定所述待迁移任务迁移到的第二数据处理设备的过程为:获取其他数据处理设备中各任务与待迁移任务的相关度,通过比较得到相关度最高的任务,若相关度最高的任务存在于多个数据处理设备中,则将待迁移任务随机选择迁移到其中一个数据处理设备,并将其作为第二数据处理设备。
举例而言,待迁移任务B与GPU2中任务D、E、F的相关度依次为0、2、0;待迁移任务B与GPU3中任务G、H、I、J的相关度依次为0、2、0、1;待迁移任务B与GPU4中任务K、L的相关度依次为0、1。
可以得出,待迁移任务B与GPU2中任务E的相关度和与GPU3中任务H的相关度都为2,因此,随机选择GPU2作为第二数据处理设备,将任务B迁移到GPU2。
于本实施例中,根据所述待迁移任务与其他数据处理设备中任务的相关度,确定所述待迁移任务迁移到的第二数据处理设备的过程为:获取其他数据处理设备中各任务与待迁移任务的相关度,通过比较得到相关度最高的任务,若相关度最高的任务存在于多个数据处理设备中,则将数据处理设备中时间片之和最小的作为第二数据处理设备,将待迁移任务迁移到第二数据处理设备。
举例而言,待迁移任务B与GPU2中任务D、E、F的相关度依次为0、2、0;待迁移任务B与GPU3中任务G、H、I、J的相关度依次为0、2、0、1;待迁移任务B与GPU4中任务K、L的相关度依次为0、1。
可以得出,待迁移任务B与GPU2中任务E的相关度和与GPU3中任务H的相关度都为2,且GPU2和GPU3中的时间片之和分别为6和7,则确定时间片之和较小的GPU2作为待迁移任务B的第二数据处理设备,将任务B迁移到GPU2。
于本实施例中,根据所述待迁移任务与其他数据处理设备中任务的相关度,确定所述待迁移任务迁移到的第二数据处理设备的过程为:获取其他数据处理设备中各任务与待迁移任务的相关度,计算各数据处理设备中任务的相关度之和,通过比较得到相关度之和最高的数据处理设备,将其作为第二数据处理设备。
举例而言,待迁移任务B与GPU2中任务D、E、F的相关度依次为0、2、0;待迁移任务B与GPU3中任务G、H、I、J的相关度依次为0、2、0、1;待迁移任务B与GPU4中任务K、L的相关度依次为0、1。
可以得出,GPU2、GPU3和GPU4中任务的相关度之和分别为2、3和1,其中相关度之和最高的为GPU3,因而将任务B迁移到GPU3。
于本实施例中,根据所述待迁移任务与其他数据处理设备中任务的相关度,确定所述待迁移任务迁移到的第二数据处理设备的过程为:获取其他数据处理设备中各任务与待迁移任务的相关度,计算各数据处理设备中任务的相关度之和,通过比较得到相关度之和最高的数据处理设备,若出现多个数据处理设备中任务与待迁移任务的相关度之和相等的情况,则将待迁移任务随机选择迁移到其中一个数据处理设备,并将其作为第二数据处理设备。
举例而言,待迁移任务B与GPU2中任务D、E、F的相关度依次为0、2、2;待迁移任务B与GPU3中任务G、H、I、J的相关度依次为0、2、1、1;待迁移任务B与GPU4中任务K、L的相关度依次为0、1。
可以得出,GPU2、GPU3和GPU4中的任务与待迁移任务B的相关度之和分别为4、4和1,相关度之和最高的为GPU2和GPU3。因此,随机选择GPU2作为第二数据处理设备,将任务B迁移到GPU2。
于本实施例中,根据所述待迁移任务与其他数据处理设备中任务的相关度,确定所述待迁移任务迁移到的第二数据处理设备的过程为:获取其他数据处理设备中各任务与待迁移任务的相关度,计算各数据处理设备中任务的相关度之和,通过比较得到相关度之和最高的数据处理设备,若出现多个数据处理设备中任务与待迁移任务的相关度之和相等的情况,则将数据处理设备中时间片之和最小的作为第二数据处理设备,将待迁移任务迁移到第二数据处理设备。
举例而言,待迁移任务B与GPU2中任务D、E、F的相关度依次为0、2、2;待迁移任务B与GPU3中任务G、H、I、J的相关度依次为0、2、1、1;待迁移任务B与GPU4中任务K、L的相关度依次为0、1。
可以得出,GPU2、GPU3和GPU4中的任务与待迁移任务B的相关度之和分别为4、4和1,相关度之和最高的为GPU2和GPU3,且GPU2和GPU3中的时间片之和分别为6和7,则将时间片之和较小的GPU2确定为第二数据处理设备,将任务B迁移到GPU2。
于步骤104,若所述待迁移任务迁移到所述第二数据处理设备后,所述第二数据处理设备的时间片大于第一预设值,依据所述待迁移任务与未访问过的数据处理设备中任务的相关度来确定迁移到的第三数据处理设备,并将所述待迁移任务迁移到第三数据处理设备;
举例而言,数据处理设备时间片的第一预设值为8,待迁移任务B与GPU2中任务D、E、F的相关度依次为0、2、0;待迁移任务B与GPU3中任务G、H、I、J的相关度依次为0、0、0、0;待迁移任务B与GPU4中任务K、L的相关度依次为0、1。
根据步骤103中一较佳实施例描述到的“根据所述待迁移任务与其他数据处理设备中任务的相关度,确定所述待迁移任务迁移到的第二数据处理设备的过程为:获取其他数据处理设备中各任务与待迁移任务的相关度,通过比较得到相关度最高的任务,将其对应的数据处理设备作为第二数据处理设备。”可以得出,将任务B迁移到第二数据处理设备GPU2后,GPU2的时间片为11,大于预设值8;除任务E以外的,相关度最高的为任务L,确定GPU4为第三数据处理设备,此时GPU4的时间片为7,小于预设值8,则将任务B迁移到GPU4。
根据步骤103中另一较佳实施例描述到的“根据所述待迁移任务与其他数据处理设备中任务的相关度,确定所述待迁移任务迁移到的第二数据处理设备的过程为:获取其他数据处理设备中各任务与待迁移任务的相关度,计算各数据处理设备中任务的相关度之和,通过比较得到相关度之和最高的数据处理设备,将其作为第二数据处理设备。”可以得出,将任务B迁移到第二数据处理设备GPU2后,GPU2的时间片为11,大于预设值8;除GPU2以外,相关度之和最高的为GPU4,确定GPU4为第三数据处理设备,此时GPU4的时间片为7,小于预设值8,则将任务B迁移到GPU4。
于步骤105,若所述待迁移任务的迁移次数大于等于第二预设值时,则将所述待迁移任务迁移到时间片最低的数据处理设备。
举例而言,数据处理设备时间片的第一预设值为8,迁移次数的第二预设值为2,待迁移任务B与GPU2中任务D、E、F的相关度依次为0、2、1;待迁移任务B与GPU3中任务G、H、I、J的相关度依次为0、1、0、0;待迁移任务B与GPU4中任务K、L的相关度依次为0、0。
根据步骤103中一较佳实施例描述到的“根据所述待迁移任务与其他数据处理设备中任务的相关度,确定所述待迁移任务迁移到的第二数据处理设备的过程为:获取其他数据处理设备中各任务与待迁移任务的相关度,通过比较得到相关度最高的任务,将其对应的数据处理设备作为第二数据处理设备。”。可以得出,将任务B迁移到第二数据处理设备GPU2,此时GPU2的时间片为11,大于预设值8;则将任务B迁移到第三数据处理设备GPU3,此时GPU3的时间片为12,大于预设值8,此时迁移次数等于第二预设值2,则继续将任务B迁移到时间片最低的GPU4。
根据步骤103中另一较佳实施例描述到的“根据所述待迁移任务与其他数据处理设备中任务的相关度,确定所述待迁移任务迁移到的第二数据处理设备的过程为:获取其他数据处理设备中各任务与待迁移任务的相关度,计算各数据处理设备中任务的相关度之和,通过比较得到相关度之和最高的数据处理设备,将其作为第二数据处理设备。”。可以得出,将任务B迁移第二数据处理设备GPU2,此时GPU2的时间片为11,大于预设值8;则将任务B迁移到第三数据处理设备GPU3,此时GPU3的时间片为12,大于预设值8,此时迁移次数等于第二预设值2,则继续将任务B迁移到时间片最低的GPU4。
图2所示为根据本发明的较佳实施例提供的多数据处理设备协同工作***的示意图。如图2所示,本发明的较佳实施例提供的多数据处理设备协同工作***,包括控制器和多个数据处理设备;所述多个数据处理设备分别与控制器连接,所述多个数据处理设备之间相互连接;所述数据处理设备用于处理其对应的1个或多个任务;还用于当第一数据处理设备的时间片大于第一预设值时,根据任务的优先级确定待迁移任务,并将待迁移任务发送到控制器;所述控制器用于接收所述第一数据处理设备发送来的待迁移任务,并根据所述待迁移任务与其他数据处理设备中任务的相关度,确定所述待迁移任务迁移到的第二数据处理设备,并将所述待迁移任务迁移到第二数据处理设备。
本发明的较佳实施例提供的多数据处理设备协同工作***,所述待迁移任务迁移到第二数据处理设备后,若所述第二数据处理设备的时间片大于第一预设值,所述第二数据处理设备用于将所述待迁移任务发送到控制器;所述控制器用于接收第二数据处理设备发送来的待迁移任务,并依据所述待迁移任务与未访问过的数据处理设备中任务的相关度来确定迁移到的第三数据处理设备,并将所述待迁移任务迁移到第三数据处理设备。
此外,关于上述***的具体操作过程同上述方法所述,故于此不再赘述。
相较于先前技术,根据本发明提供的多数据处理设备协同工作方法及***,实现了多个数据处理设备之间合理的负荷分担。
另外,通过以下方案:若所述待迁移任务迁移到所述第二数据处理设备后,所述第二数据处理设备的时间片大于第一预设值,依据所述待迁移任务与未访问过的数据处理设备中任务的相关度来确定迁移到的第三数据处理设备,并将所述待迁移任务迁移到第三数据处理设备,实现了待迁移任务的多次迁移,实现了待迁移任务迁移目标的准确性、合理性。
另外,通过以下方案:若所述待迁移任务的迁移次数大于等于第二预设值时,则将所述待迁移任务迁移到时间片最低的数据处理设备,节约了***资源。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。