CN104391747A - 一种并行计算方法及装置 - Google Patents
一种并行计算方法及装置 Download PDFInfo
- Publication number
- CN104391747A CN104391747A CN201410658107.5A CN201410658107A CN104391747A CN 104391747 A CN104391747 A CN 104391747A CN 201410658107 A CN201410658107 A CN 201410658107A CN 104391747 A CN104391747 A CN 104391747A
- Authority
- CN
- China
- Prior art keywords
- data stream
- processor
- target processor
- multiple processors
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
本发明实施例公开了一种并行计算方法及装置,该方法包括如下操作:获取待计算的数据流;确定所述数据流的待执行计算子任务;检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器;采用所述目标处理器对所述数据流执行所述待执行计算子任务。本实施例提供的技术方案,能够实现超级计算机中各处理器间的负载均衡,提高超级计算机的并行处理性能。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种并行计算方法及装置。
背景技术
目前,并行计算技术以其强大、快速的数据处理能力,逐渐成为计算机数据处理领域中十分重要的一部分。所谓并行计算,是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理器来并行计算。并行计算系统既可以是专门设计的、包含有多个处理器的超级计算机(例如采用x86多核构架的超级计算机),也可以是以某种方式互连的若干台独立计算机构成的集群。通过并行计算集群完成对数据的处理,再将处理结果返回给用户。
其中,在利用包含有多个处理器的超级计算机,对多条数据流进行并行计算时,通常可以采用如下两种不同方式:
第一种是面向数据流的分割模式,该模式按照处理器对等原则,将不同的数据流部署给不同的处理器处理,即一个处理器仅负责执行对一条数据流的计算,但该计算任务包括若干个计算子任务;
第二种是面向计算流程的分割模式,该模式按照计算量原则,将不同的计算子流程部署在不同的处理器上,即一个处理器只对应执行一个计算子任务,但是该计算子任务的处理对象是多条数据流。
但是,发明人在研究过程当中发现上述现有技术存在如下缺陷:如果每条数据流所对应的计算任务不同,不管是面向数据流的分割模式,还是面向计算流程的分割模式,都很容易出现处理器负载不均衡的现象,从而导致超级计算机的并行处理性能较差。例如,在面向数据流的分割模式下,会使得一些处理器负责执行的计算子任务过多,而另外一些负责执行的计算子任务过少;在面向计算流程的分割模式下,会使得一些处理器负责执行的数据流过多,而另外一些负责执行的数据流过少。
发明内容
本发明实施例提供一种并行计算方法及装置,以实现超级计算机中各处理器间的负载均衡,提高超级计算机的并行处理性能。
第一方面,本发明实施例提供了一种并行计算方法,该方法包括:
获取待计算的数据流;
确定所述数据流的待执行计算子任务;
检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器;
采用所述目标处理器对所述数据流执行所述待执行计算子任务。
第二方面,本发明实施例还提供了一种并行计算装置,该装置包括:
数据流获取模块,用于获取待计算的数据流;
计算子任务确定模块,用于确定所述数据流的待执行计算子任务;
目标处理器选取模块,用于检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器;
计算子任务执行模块,用于采用所述目标处理器对所述数据流执行所述待执行计算子任务。
在本发明实施例提供的技术方案中,并不是将数据流的计算子任务配置给固定的处理器来执行,而是先实时检测预置的各个处理器的负载量大小,然后根据检测结果来动态的确定一个负载最小的处理器,进而基于该处理器对数据流执行相应的计算子任务。因此,本发明实施例可以使得超级计算机上各处理器的负载趋于均衡化,从而能够很好的提升超级计算机的并行处理性能。
附图说明
图1是本发明实施例一提供的一种并行计算方法的流程示意图;
图2是本发明实施例二提供的一种并行计算方法的流程示意图;
图3是本发明实施例三提供的一种并行计算过程中数据流创建阶段下的流程示意图;
图4是本发明实施例三提供的一种并行计算过程中数据流计算阶段下的流程示意图;
图5是本发明实施例四提供的一种并行计算装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种并行计算方法的流程示意图。该方法可以由并行计算装置来执行,所述装置可以为包含有多个处理器的超级计算机。参见图1,本实施例提供的方法具体包括如下操作:
操作110、获取待计算的数据流。
在本实施例中,可通过数据流创建线程池,调用设定的数据获取方法,来获取待计算的数据流。例如,可以从设定的磁盘位置读取相应的数据流,作为本次待计算的数据流,或者基于互联网技术从其他网络设备上获取目标数据流,作为本次待计算的数据流,等等。
操作120、确定数据流的待执行计算子任务。
在本实施例中,一方面,可预先创建有配置文件,该配置文件描述了并行计算装置的数据处理对象是哪些数据流,以及对每条数据流应依次执行哪几个计算子任务。
具体的,在该配置文件中记录有对各条数据流的配置信息。其中,每条数据流的配置信息包括计算子任务标识序列。举例而言,该配置文件记录有如下信息:第一条数据流A,其计算子任务标识序列依次为“+、-、×、÷”(分别对应加、减、乘和除操作);第二条数据流B,其计算子任务标识序列为“+、÷”(分别对应加和除操作)。本领域的普通技术人员应理解,在实际执行当中,配置文件可能包括更多条数据流,且每条数据流的执行子任务远复杂于上述加、减、乘或除操作,此处仅是以示例但非限定的形式对本实施例提供的技术细节加以描述。
另一方面,可预先在内存中分配一块存储空间,用于存储对各条数据流的计算子任务的执行状态的跟踪信息。未对任意一条数据流的计算子任务执行之前,跟踪信息为空。之后,每执行完毕一条数据流的一个计算子任务后,便将该计算子任务标识作为该条数据流下的跟踪信息的一部分,对应写入所述存储空间。通过读取跟踪信息,能够获知各条数据流已依次执行了哪几个计算子任务。
当然,还可将跟踪信息直接写在配置文件中。每执行完毕一条数据流的一个计算子任务后,便将该计算子任务的标识作为该条数据流下的跟踪信息的一部分,对应写入配置文件中。或者,直接在配置文件中为每条数据流的各个计算子任务标识设置一个执行状态,作为跟踪信息。初始状态下各计算子任务的执行状态均处于未执行状态;每执行完毕一条数据流的一个计算子任务后,便将该计算子任务的执行状态更新为已执行状态。
在获取到待计算的数据流之后,确定数据流的待执行计算子任务,可具体包括:
读取预先生成的配置文件中所记录的对数据流的配置信息;
查找对数据流的计算子任务的执行状态的跟踪信息;
根据配置信息和跟踪信息,确定数据流的待执行计算子任务标识。
例如,当前待计算的数据流是第一条数据流A,读取到配置文件中所记录的对第一条数据流A的计算子任务标识序列为“+、-、×、÷”,查找到对第一条数据流A的计算子任务的执行状态的跟踪信息为:对第一条数据流A已执行过的计算子任务的标识依次为“+”和“-”,则确定第一条数据流A的待执行计算子任务标识应为“×”。
操作130、检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器。
在本实施例中的一种具体实施方式中,操作130可具体包括:
查询预先设置的多个处理器中各处理器上任务描述队列所包含的任务描述个数;
将任务描述队列所包含的任务描述个数最小的处理器,作为目标处理器。需要说明的是,本实施例对操作120和操作130之间的先后运行顺序不作具体限定,上述实现方式仅是作为一个示例加以阐述,例如操作130还可先于操作120被运行。
操作140、采用目标处理器对数据流执行待执行计算子任务。
在本实施例中,在根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器之后,还包括:
对数据流和待执行计算子任务的标识进行序列化得到一个任务描述;
将任务描述插入目标处理器上的任务描述队列中;
相应的,采用目标处理器对数据流执行待执行计算子任务,包括:
采用目标处理器,对所插入的任务描述进行反序列化得到数据流和待执行计算子任务的标识,根据所得到的标识绑定相应的待执行计算子任务实例,基于所述实例对所得到的数据流执行待执行计算子任务。
在本实施例中,可预先加载有各条数据流的各个计算子任务的实现代码,并基于每个计算子任务的实现代码,创建多个实例。在初始状态下,这些实例均未被绑定。目标处理器在对所插入的任务描述进行反序列化得到数据流和待执行计算子任务的标识之后,根据所得到的标识从预先为待执行计算子任务创建的多个实例中加载一个未被绑定的实例,基于该实例对所得到的数据流执行待执行计算子任务,并将该实例加以绑定。
在运行完毕操作140之后,返回操作120继续运行。
在本实施例的一种具体实现方式中,并行计算装置中的各处理器是对等的。在执行数据流的计算子任务序列中的第一个计算子任务之前,上述操作110-操作130可以由并行计算装置中的第一处理器执行。在确定完毕数据流的待执行计算子任务(即上述第一个计算子任务)由目标处理器之后,由目标处理器执行操作140,其中该目标处理器可以是第一处理器本身,也可以是并行计算装置中除第一处理器之外的其他处理器。
之后,由当前所确定的目标处理器先将该计算子任务对应的标识作为跟踪信息的一部分,写入相应的存储空间中,以记录该计算子任务处于已执行状态;进而,仍然由当前所确定的目标处理器继续执行操作120和操作130,以进一步确定数据流的下一个待执行计算子任务,以及下一个待执行计算子任务由并行处理装置上的哪个处理器来执行。
接着,由进一步确定的处理器来执行所述下一个待执行计算子任务,并继续执行操作120和操作130,依次类推,直到数据流的最后一个计算子任务被执行完毕。
在本实施例的另一种具体实现方式中,可以预先配置并行计算装置中的一个处理器作为主处理器,其他处理器作为从处理器。其中,主处理器专门用于获取待计算的数据流,确定该数据流的待执行计算子任务以及该计算子任务应由哪个从处理器来执行;从处理器仅用于在接收到主处理器的指示后,按照指示执行相应的待执行计算子任务。也即:上述操作110-操作130始终由并行计算装置中主处理器运行,操作130中所述的预先设置的多个处理器为并行计算装置中的多个从处理器,操作140由实时所确定的从处理器来运行。
在采用目标处理器执行完毕待执行计算子任务后,主处理器可将该计算子任务对应的标识作为跟踪信息的一部分,写入相应的存储空间中,以记录该计算子任务处于已执行状态。然后,主处理器继续运行操作120和操作130,以进一步确定数据流的下一个待执行计算子任务,以及下一个待执行计算子任务由并行处理装置上的哪个从处理器来执行。
在本实施例提供的技术方案中,并不是将数据流的计算子任务配置给固定的处理器来执行,而是先实时检测预置的各个处理器的负载量大小,然后根据检测结果来动态的确定一个负载最小的处理器,进而基于该处理器对数据流执行相应的计算子任务。因此,本发明实施例可以使得超级计算机上各处理器的负载趋于均衡化,从而能够很好的提升超级计算机的并行处理性能。
实施例二
图2是本发明实施例二提供的一种并行计算方法的流程示意图。本实施例在上述实施例一的基础上,增加了读取处理器选取策略参数的操作,并根据该读取操作对操作120进行相应的调整。参见图2,本实施例提供的方法具体包括如下操作:
操作210、获取待计算的数据流。
操作220、确定数据流的待执行计算子任务。
操作230、读取预先生成的配置文件中所记录的对数据流的处理器选取策略参数。
操作240、判断处理器选取策略参数是否为负载均衡策略参数;
如果是,执行操作250,否则执行操作260。
操作250、检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器;执行操作290。
操作260、判断处理器选取策略参数是否为指定策略参数;
如果是,执行操作270,否则执行操作280。
操作270、根据与指定策略参数对应的选取规则,从预先设置的多个处理器中选取一个处理器作为目标处理器;执行操作290。
操作280、判断处理器选取策略参数为数据流亲和策略参数,根据与数据流亲和策略参数对应的选取规则,从预先设置的多个处理器中选取一个处理器作为目标处理器;执行操作290。
操作290、采用目标处理器对数据流执行待执行计算子任务。
在本实施例中,可预先在配置文件中设置一个对数据流的处理器选取策略参数,该参数用于指示应采用何种策略,来确定由并行计算装置中的哪个处理器对数据流执行待执行计算子任务。所述策略参数可以为多种形式的参数。
在本实施例的一种具体实现方式中,配置文件中所记录的处理器选取策略参数为下述三种参数中的任一种:负载均衡策略参数、指定策略参数和数据流亲和策略参数。
如果配置文件中所记录的处理器选取策略参数为负载均衡策略参数,则需检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器。
如果配置文件中所记录的处理器选取策略参数为指定策略参数,则直接根据设定的指定规则确定目标处理器。其中,指定规则描述了各条数据流的各个计算子任务应由并行计算装置中的哪个处理器来执行。
如果配置文件中所记录的处理器选取策略参数为数据流亲和策略参数,则需首先确定与当前待计算的数据流具有亲和关系的其他数据流,其中所述亲和关系可被预先设置好;然后,根据对所述其他数据流的计算子任务的处理方式,来确定目标处理器。
例如,第一条数据流和第二条数据流具有亲和关系,均需对这两条数据流执行三个计算子任务:加操作、减操作和乘操作;如果第一条数据流的三个计算子任务的执行主体依次是:第一处理器、第三处理器和第二处理器,则在获取到第二条数据流后,可将用于执行对第二条数据流的三个计算子任务的目标处理器依次确定为:第一处理器、第三处理器和第二处理器。
当然,如果未确定出与当前待计算的数据流具有亲和关系的其他数据流,则可基于与负载均衡策略参数对应的选择规则,从预先设置的多个处理器中选取一个处理器作为目标处理器。
本实施例提供的技术方案,通过在配置文件中预先写入对各条数据流的处理器选取策略参数,之后基于该处理器选取策略参数,来具体确定应将并行计算装置中的哪个处理器作为目标处理器,以指示该目标处理器执行对数据流的待执行计算子任务,从而可以使得并行计算的形式更加的灵活和多样化,提升用户体验。
实施例三
本实施例在上述各个实施例的基础上,提供一优选实施例。具体的,本实施例提供的并行计算方法包括如下三个阶段:初始化阶段;数据流创建阶段;数据流计算阶段。
一、初始化阶段
在本实施例中,预先创建有配置文件,在该配置文件中记录有对各条数据流的配置信息。其中,每条数据流的配置信息包括计算子任务标识序列,以及处理器选取策略参数。处理器选取策略参数为下述三种参数中的任一种:负载均衡策略参数、指定策略参数和数据流亲和策略参数。由于该配置文件通常未被存储在内存中,而被存储在诸如磁盘之类的外部存储器上,故需要将该配置文件加载在内存中。
在加载完毕配置文件之后,可根据配置文件中的配置信息,加载各个计算子任务的实现代码,并基于每个计算子任务的实现代码,创建多个实例。在初始状态下,这些实例均未被绑定。
并且,预先在内存中分配一块存储空间,用于存储对各条数据流的计算子任务的执行状态的跟踪信息。未对任意一条数据流的计算子任务执行之前,该跟踪信息为空。之后,每执行完毕一条数据流的一个计算子任务后,便将该计算子任务标识作为跟踪信息的一部分,对应写入所述存储空间。
二、数据流创建阶段
图3是本发明实施例三提供的一种并行计算过程中数据流创建阶段下的流程示意图。参见图3,在数据流创建阶段下具体要运行如下操作:
操作310、通过数据流创建线程池,调用设定的数据获取方法,来获取待计算的数据流。
操作320、读取初始化阶段下加载的配置文件中所记录的对数据流的配置信息;查找对数据流的计算子任务的执行状态的跟踪信息;根据配置信息和跟踪信息,确定数据流的待执行计算子任务标识。
操作330、读取初始化阶段下加载的配置文件中所记录的处理器选取策略参数,根据与该参数对应的选取规则,从预先设置的多个处理器中选取一个处理器作为目标处理器。
操作340、对数据流和待执行计算子任务的标识进行序列化得到一个任务描述;将任务描述插入目标处理器上的任务描述队列中。
在本实施例中,数据流创建阶段下的各操作可以同一由并行计算装置上的任一处理器来执行。预先设置的多个处理器为并行计算装置中所包含的多个处理器。所述任一处理器在运行完毕操作340后,返回操作310继续运行,以获取下一条待计算的数据流。
三、数据流计算阶段
图4是本发明实施例三提供的一种并行计算过程中数据流计算阶段下的流程示意图。参见图4,在数据流创建阶段下具体要运行如下操作:
操作410、目标处理器等待任务描述队列中新的任务描述的到来。
操作420、目标处理器对所插入的任务描述进行反序列化得到数据流和待执行计算子任务的标识。
操作430、目标处理器根据所得到的标识,从初始阶段下预先为待执行计算子任务创建的多个实例中加载一个未被绑定的实例,基于该实例对所得到的数据流执行待执行计算子任务,并将该实例加以绑定。
操作440、目标处理器在对待执行计算子任务执行完毕后,将所得到的标识添加至跟踪信息中。
操作450、目标处理器读取初始阶段下加载的配置文件中所记录的对数据流的配置信息;查找对数据流的计算子任务的执行状态的跟踪信息;根据配置信息和跟踪信息,确定数据流的下一个待执行计算子任务标识。
操作460、目标处理器读取初始化阶段下加载的配置文件中所记录的处理器选取策略参数,根据与该参数对应的选取规则,从预先设置的多个处理器中选取一个处理器作为目标处理器。
操作470、目标处理器对数据流和下一个待执行计算子任务的标识进行序列化得到一个新的任务描述;将新的任务描述插入所选取的处理器上的任务描述队列中。
之后,操作440中所选取的处理器将作为新的目标处理器,继续执行操作410-操作470。
本实施例提供的技术方案,通过在配置文件中预先写入对各条数据流的处理器选取策略参数,之后基于该处理器选取策略参数,来具体确定应将并行计算装置中的哪个处理器作为目标处理器,以指示该目标处理器执行对数据流的待执行计算子任务,从而可以使得并行计算的形式更加的灵活和多样化,提升用户体验。特别是,在处理器选取策略参数为负载均衡策略参数时,能够实时检测预置的各个处理器的负载量大小,然后根据检测结果来动态的确定一个负载最小的处理器,进而基于该处理器对数据流执行相应的计算子任务,这样可以使得超级计算机上各处理器的负载趋于均衡化,从而能够很好的提升超级计算机的并行处理性能。
实施例四
图5是本发明实施例四提供的一种并行计算装置的结构示意图。该装置可以为包含有多个处理器的超级计算机。参见图5,本实施例提供的并行装置的具体结构如下:
数据流获取模块510,用于获取待计算的数据流;
计算子任务确定模块520,用于确定所述数据流的待执行计算子任务;
目标处理器选取模块530,用于检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器;
计算子任务执行模块540,用于采用所述目标处理器对所述数据流执行所述待执行计算子任务。
进一步的,所述计算子任务确定模块520,具体用于:
读取预先生成的配置文件中所记录的对所述数据流的配置信息,其中所述配置信息包括计算子任务标识序列;
查找对所述数据流的计算子任务的执行状态的跟踪信息;
根据所述配置信息和所述跟踪信息,确定所述数据流的待执行计算子任务标识。
进一步的,所述目标处理器选取模块530,具体用于:
查询预先设置的多个处理器中各处理器上任务描述队列所包含的任务描述个数;
将任务描述队列所包含的任务描述个数最小的处理器,作为目标处理器。
进一步的,本实施例提供的装置还包括:
任务描述插入模块535,用于在所述目标处理器选取模块530根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器之后,对所述数据流和所述待执行计算子任务的标识进行序列化得到一个任务描述;将所述任务描述插入所述目标处理器上的任务描述队列中;
所述计算子任务执行模块540,具体用于:
采用所述目标处理器,对所插入的任务描述进行反序列化得到所述数据流和所述待执行计算子任务的标识,根据所得到的标识绑定相应的待执行计算子任务实例,基于所述实例对所得到的数据流执行所述待执行计算子任务。
在上述技术方案的基础上,本实施例提供的装置还包括:
策略参数读取模块525,用于在所述目标处理器选取模块530检测预先设置的多个处理器的负载量之前,读取预先生成的配置文件中所记录的对所述数据流的处理器选取策略参数;
所述目标处理器选取模块530,具体用于:
如果所述参数为负载均衡策略参数,则执行所述检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器的操作;
否则,如果所述参数为指定策略参数,则根据与所述指定策略参数对应的选取规则,从预先设置的多个处理器中选取一个处理器作为目标处理器;如果所述参数为数据流亲和策略参数,则根据与所述数据流亲和策略参数对应的选取规则,从预先设置的多个处理器中选取一个处理器作为目标处理器。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
本领域的普通技术人员应理解:本实施例提供的并行计算装置在执行相应的并行计算方法的操作时,仅是以上述各功能单元的划分进行举例说明;在实际应用当中,可以根据需要而将上述功能分配由不同的单元完成,即将并行计算装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种并行计算方法,其特征在于,包括:
获取待计算的数据流;
确定所述数据流的待执行计算子任务;
检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器;
采用所述目标处理器对所述数据流执行所述待执行计算子任务。
2.根据权利要求1所述的并行计算方法,其特征在于,确定所述数据流的待执行计算子任务,包括:
读取预先生成的配置文件中所记录的对所述数据流的配置信息,其中所述配置信息包括计算子任务标识序列;
查找对所述数据流的计算子任务的执行状态的跟踪信息;
根据所述配置信息和所述跟踪信息,确定所述数据流的待执行计算子任务标识。
3.根据权利要求1所述的并行计算方法,其特征在于,检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器,包括:
查询预先设置的多个处理器中各处理器上任务描述队列所包含的任务描述个数;
将任务描述队列所包含的任务描述个数最小的处理器,作为目标处理器。
4.根据权利要求1所述的并行计算方法,其特征在于,在根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器之后,包括:
对所述数据流和所述待执行计算子任务的标识进行序列化得到一个任务描述;
将所述任务描述插入所述目标处理器上的任务描述队列中;
采用所述目标处理器对所述数据流执行所述待执行计算子任务,包括:
采用所述目标处理器,对所插入的任务描述进行反序列化得到所述数据流和所述待执行计算子任务的标识,根据所得到的标识绑定相应的待执行计算子任务实例,基于所述实例对所得到的数据流执行所述待执行计算子任务。
5.根据权利要求1-4中任一项所述的并行计算方法,其特征在于,在检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器之前,还包括:
读取预先生成的配置文件中所记录的对所述数据流的处理器选取策略参数;
如果所述参数为负载均衡策略参数,则执行所述检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器的操作;
否则,如果所述参数为指定策略参数,则根据与所述指定策略参数对应的选取规则,从预先设置的多个处理器中选取一个处理器作为目标处理器;如果所述参数为数据流亲和策略参数,则根据与所述数据流亲和策略参数对应的选取规则,从预先设置的多个处理器中选取一个处理器作为目标处理器。
6.一种并行计算装置,其特征在于,包括:
数据流获取模块,用于获取待计算的数据流;
计算子任务确定模块,用于确定所述数据流的待执行计算子任务;
目标处理器选取模块,用于检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器;
计算子任务执行模块,用于采用所述目标处理器对所述数据流执行所述待执行计算子任务。
7.根据权利要求6所述的并行计算装置,其特征在于,所述计算子任务确定模块,具体用于:
读取预先生成的配置文件中所记录的对所述数据流的配置信息,其中所述配置信息包括计算子任务标识序列;
查找对所述数据流的计算子任务的执行状态的跟踪信息;
根据所述配置信息和所述跟踪信息,确定所述数据流的待执行计算子任务标识。
8.根据权利要求6所述的并行计算装置,其特征在于,所述目标处理器选取模块,具体用于:
查询预先设置的多个处理器中各处理器上任务描述队列所包含的任务描述个数;
将任务描述队列所包含的任务描述个数最小的处理器,作为目标处理器。
9.根据权利要求6所述的并行计算装置,其特征在于,还包括:
任务描述插入模块,用于在所述目标处理器选取模块根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器之后,对所述数据流和所述待执行计算子任务的标识进行序列化得到一个任务描述;将所述任务描述插入所述目标处理器上的任务描述队列中;
所述计算子任务执行模块,具体用于:
采用所述目标处理器,对所插入的任务描述进行反序列化得到所述数据流和所述待执行计算子任务的标识,根据所得到的标识绑定相应的待执行计算子任务实例,基于所述实例对所得到的数据流执行所述待执行计算子任务。
10.根据权利要求6-9中任一项所述的并行计算装置,其特征在于,还包括:
策略参数读取模块,用于在所述目标处理器选取模块检测预先设置的多个处理器的负载量之前,读取预先生成的配置文件中所记录的对所述数据流的处理器选取策略参数;
所述目标处理器选取模块,具体用于:
如果所述参数为负载均衡策略参数,则执行所述检测预先设置的多个处理器的负载量,根据检测结果从预先设置的多个处理器中选取一个负载量最小的处理器作为目标处理器的操作;
否则,如果所述参数为指定策略参数,则根据与所述指定策略参数对应的选取规则,从预先设置的多个处理器中选取一个处理器作为目标处理器;如果所述参数为数据流亲和策略参数,则根据与所述数据流亲和策略参数对应的选取规则,从预先设置的多个处理器中选取一个处理器作为目标处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410658107.5A CN104391747A (zh) | 2014-11-18 | 2014-11-18 | 一种并行计算方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410658107.5A CN104391747A (zh) | 2014-11-18 | 2014-11-18 | 一种并行计算方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104391747A true CN104391747A (zh) | 2015-03-04 |
Family
ID=52609655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410658107.5A Pending CN104391747A (zh) | 2014-11-18 | 2014-11-18 | 一种并行计算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104391747A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886613A (zh) * | 2017-05-03 | 2017-06-23 | 成都云数未来信息科学有限公司 | 一种并行化的文本聚类方法 |
CN106911495A (zh) * | 2016-11-16 | 2017-06-30 | 上海艾融软件股份有限公司 | 一种银行各系统间通讯负载均衡控制系统及方法 |
CN107172139A (zh) * | 2017-05-10 | 2017-09-15 | 北京萤芯科技有限公司 | 一种无线协议栈及其实现方法 |
WO2018086131A1 (en) * | 2016-11-14 | 2018-05-17 | SZ DJI Technology Co., Ltd. | Data flow scheduling between processors |
CN109885404A (zh) * | 2019-02-01 | 2019-06-14 | 新华三技术有限公司 | 一种指令处理方法及装置 |
CN110178119A (zh) * | 2018-08-02 | 2019-08-27 | 华为技术有限公司 | 处理业务请求的方法、装置与存储系统 |
CN110377425A (zh) * | 2019-07-16 | 2019-10-25 | 浙江大华技术股份有限公司 | 设备中的任务执行方法、装置、存储介质及电子装置 |
CN110532447A (zh) * | 2019-08-29 | 2019-12-03 | 上海云从汇临人工智能科技有限公司 | 一种业务数据处理方法、装置、介质和设备 |
CN111737097A (zh) * | 2020-06-05 | 2020-10-02 | 浪潮电子信息产业股份有限公司 | 一种流处理系统的性能测试方法及相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339523A (zh) * | 2007-07-05 | 2009-01-07 | 国际商业机器公司 | 多处理器环境中的流水线处理方法和设备 |
US20090307699A1 (en) * | 2008-06-06 | 2009-12-10 | Munshi Aaftab A | Application programming interfaces for data parallel computing on multiple processors |
CN101802789A (zh) * | 2007-04-11 | 2010-08-11 | 苹果公司 | 多处理器上的并行运行时执行 |
CN102467415A (zh) * | 2010-11-03 | 2012-05-23 | 大唐移动通信设备有限公司 | 一种业务面任务处理方法及设备 |
CN103440173A (zh) * | 2013-08-23 | 2013-12-11 | 华为技术有限公司 | 一种多核处理器的调度方法和相关装置 |
CN103685053A (zh) * | 2013-11-26 | 2014-03-26 | 北京航空航天大学 | 一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法 |
-
2014
- 2014-11-18 CN CN201410658107.5A patent/CN104391747A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101802789A (zh) * | 2007-04-11 | 2010-08-11 | 苹果公司 | 多处理器上的并行运行时执行 |
CN101339523A (zh) * | 2007-07-05 | 2009-01-07 | 国际商业机器公司 | 多处理器环境中的流水线处理方法和设备 |
US20090307699A1 (en) * | 2008-06-06 | 2009-12-10 | Munshi Aaftab A | Application programming interfaces for data parallel computing on multiple processors |
CN102467415A (zh) * | 2010-11-03 | 2012-05-23 | 大唐移动通信设备有限公司 | 一种业务面任务处理方法及设备 |
CN103440173A (zh) * | 2013-08-23 | 2013-12-11 | 华为技术有限公司 | 一种多核处理器的调度方法和相关装置 |
CN103685053A (zh) * | 2013-11-26 | 2014-03-26 | 北京航空航天大学 | 一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018086131A1 (en) * | 2016-11-14 | 2018-05-17 | SZ DJI Technology Co., Ltd. | Data flow scheduling between processors |
US11018982B2 (en) | 2016-11-14 | 2021-05-25 | SZ DJI Technology Co., Ltd. | Data flow scheduling between processors |
CN106911495A (zh) * | 2016-11-16 | 2017-06-30 | 上海艾融软件股份有限公司 | 一种银行各系统间通讯负载均衡控制系统及方法 |
CN106886613A (zh) * | 2017-05-03 | 2017-06-23 | 成都云数未来信息科学有限公司 | 一种并行化的文本聚类方法 |
CN106886613B (zh) * | 2017-05-03 | 2020-06-26 | 成都云数未来信息科学有限公司 | 一种并行化的文本聚类方法 |
CN107172139A (zh) * | 2017-05-10 | 2017-09-15 | 北京萤芯科技有限公司 | 一种无线协议栈及其实现方法 |
CN107172139B (zh) * | 2017-05-10 | 2020-07-17 | 桃芯科技(苏州)有限公司 | 一种无线协议栈及其实现方法 |
WO2020024207A1 (zh) * | 2018-08-02 | 2020-02-06 | 华为技术有限公司 | 处理业务请求的方法、装置与存储系统 |
CN110178119A (zh) * | 2018-08-02 | 2019-08-27 | 华为技术有限公司 | 处理业务请求的方法、装置与存储系统 |
CN110178119B (zh) * | 2018-08-02 | 2022-04-26 | 华为技术有限公司 | 处理业务请求的方法、装置与存储系统 |
CN109885404A (zh) * | 2019-02-01 | 2019-06-14 | 新华三技术有限公司 | 一种指令处理方法及装置 |
CN109885404B (zh) * | 2019-02-01 | 2021-07-20 | 新华三技术有限公司 | 一种指令处理方法及装置 |
CN110377425A (zh) * | 2019-07-16 | 2019-10-25 | 浙江大华技术股份有限公司 | 设备中的任务执行方法、装置、存储介质及电子装置 |
CN110532447A (zh) * | 2019-08-29 | 2019-12-03 | 上海云从汇临人工智能科技有限公司 | 一种业务数据处理方法、装置、介质和设备 |
CN111737097A (zh) * | 2020-06-05 | 2020-10-02 | 浪潮电子信息产业股份有限公司 | 一种流处理系统的性能测试方法及相关装置 |
CN111737097B (zh) * | 2020-06-05 | 2022-06-07 | 浪潮电子信息产业股份有限公司 | 一种流处理系统的性能测试方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104391747A (zh) | 一种并行计算方法及装置 | |
JP5647859B2 (ja) | 乗累算演算を実行するための装置および方法 | |
KR101699910B1 (ko) | 재구성 가능 프로세서 및 그 제어 방법 | |
KR102185287B1 (ko) | 벡터 연산 장치 | |
US9164769B2 (en) | Analyzing data flow graph to detect data for copying from central register file to local register file used in different execution modes in reconfigurable processing array | |
CN103226467A (zh) | 数据并行处理方法、系统及负载均衡调度器 | |
JP6659724B2 (ja) | 並列プロセッサカーネルのディスパッチサイズのコンカレンシーファクタを決定するシステム及び方法 | |
CN104899181A (zh) | 用于处理向量操作数的数据处理装置和方法 | |
CN104778075B (zh) | Android系统中native层调用Java层API的方法和装置 | |
CN106462426A (zh) | 用于图形处理单元的组合计算任务 | |
JP2012252374A (ja) | 情報処理装置 | |
CN111061485A (zh) | 任务处理方法、编译器、调度服务器和介质 | |
Roeder et al. | Scheduling dags of multi-version multi-phase tasks on heterogeneous real-time systems | |
KR102332523B1 (ko) | 연산 처리 장치 및 방법 | |
Lang et al. | Dynamic distribution of workload between CPU and GPU for a parallel conjugate gradient method in an adaptive FEM | |
US20180088948A1 (en) | Efficient vectorization techniques for operands in non-sequential memory locations | |
Jung et al. | Automatic CUDA code synthesis framework for multicore CPU and GPU architectures | |
KR102045997B1 (ko) | 분산 파일 시스템을 기반으로 하는 빅데이터 처리 플랫폼의 태스크 스케줄링 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체 | |
KR20150087982A (ko) | 쓰레드를 활용한 이미지 처리 방법 및 장치 | |
US20140013312A1 (en) | Source level debugging apparatus and method for a reconfigurable processor | |
TW201823972A (zh) | 向量產生指令 | |
KR20150051083A (ko) | 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치 | |
Rios et al. | A benchmark on multi improvement neighborhood search strategies in CPU/GPU systems | |
KR20180057950A (ko) | 병렬 처리부 및 병렬 처리 장치 | |
Fotakis et al. | Scheduling mapreduce jobs and data shuffle on unrelated processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150304 |
|
RJ01 | Rejection of invention patent application after publication |