CN111026521B - 任务调度器、任务处理系统及任务处理方法 - Google Patents
任务调度器、任务处理系统及任务处理方法 Download PDFInfo
- Publication number
- CN111026521B CN111026521B CN201811180136.XA CN201811180136A CN111026521B CN 111026521 B CN111026521 B CN 111026521B CN 201811180136 A CN201811180136 A CN 201811180136A CN 111026521 B CN111026521 B CN 111026521B
- Authority
- CN
- China
- Prior art keywords
- task
- job
- information
- processor
- scheduling
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 240
- 238000003672 processing method Methods 0.000 title abstract description 10
- 238000000354 decomposition reaction Methods 0.000 claims description 197
- 238000004891 communication Methods 0.000 claims description 129
- 238000012806 monitoring device Methods 0.000 claims description 95
- 230000006378 damage Effects 0.000 claims description 90
- 238000000034 method Methods 0.000 claims description 84
- 230000000903 blocking effect Effects 0.000 claims description 57
- 230000005856 abnormality Effects 0.000 claims description 41
- 238000004364 calculation method Methods 0.000 claims description 20
- 230000002159 abnormal effect Effects 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 13
- 238000010801 machine learning Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 56
- 230000005540 biological transmission Effects 0.000 description 22
- 238000013528 artificial neural network Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 210000002364 input neuron Anatomy 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 210000002569 neuron Anatomy 0.000 description 8
- 230000003139 buffering effect Effects 0.000 description 7
- 210000004205 output neuron Anatomy 0.000 description 7
- 238000013507 mapping Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种任务调度器、任务处理系统及任务处理方法,通过任务调度器首先对其接收到的任务进行注册,在获得任务的任务标识之后,可以获得任务的分解信息及调度信息,并将调度信息发送至第二处理器,上述的任务调度器、任务处理系统及任务处理方法,能够减少第一处理器的运算量,提高任务的调度及处理效率,进而提升计算机系统的处理效率。
Description
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种任务调度器、任务处理系统及任务处理方法。
背景技术
随着计算机技术的飞速发展,出现了诸如多核处理器计算机系统(Multi-coreprocessor Computing System)以及多个处理器的多处理器计算机系统(Multi-processorComputing System)。该计算机系统的多个核处理器或多个处理器可以形成主从结构,例如,多个处理器可以包括一个主处理器和多个从处理器,主处理器可以用于对待处理任务进行分配调度,还可以用于监控及控制各个从处理器的运行。但当待处理任务的任务量较大时,如需处理大规模的机器学习数据时,上述采用主处理器进行任务分配及调度的方式的效率较低,影响计算机系统的处理效率。
发明内容
基于此,有必要针对上述技术问题,提供一种任务调度器、任务处理系统及任务处理方法。
一种任务调度器,所述任务调度器连接在第一处理器和第二处理器之间,所述任务调度器包括:
任务缓存装置,用于存储多个任务对应的基本任务信息和全部任务信息;
任务分派装置,所述任务分派装置与所述任务缓存装置连接,所述任务分派装置用于从所述任务缓存装置中获取一个以上的所述任务的基本任务信息,并分别根据各个所述任务的基本任务信息获得所述任务的任务注册请求;以及
状态监控装置,所述状态监控装置连接所述任务分派装置及所述第二处理器,所述状态监控装置用于根据接收到的各个所述任务的任务注册请求,为各个所述任务分配一个任务标识,并将各个所述任务的任务标识回传给所述任务分派装置;
其中,所述任务分派装置还用于在接收到所述任务的任务标识之后,获得所述任务的分解信息,并根据所述任务的分解信息及所述第二处理器的处理器状态信息确定目标作业,获得调度信息,并将所述调度信息发送至所述第二处理器。
一种任务处理系统,包括:
第一处理器;
全局内存,所述全局内存连接所述第一处理器,所述全局内存用于存储有多个任务队列;
任务调度器,所述任务调度器为上述任一项所述的任务调度器,所述任务调度器连接所述全局内存,所述任务调度器的任务缓存装置连接所述全局内存,能够从所述全局内存的任务队列中获取所述任务的基本任务信息和全部任务信息;以及
第二处理器,所述第二处理器连接所述任务调度器,所述第二处理器能够获取所述任务的全部任务信息、所述任务的分解信息及调度信息,并根据所述任务的全部任务信息、所述任务的分解信息及调度信息执行所述任务,并将所述任务的执行状态信息通过所述任务调度器传送至所述第一处理器。
一种任务处理方法,所述方法包括如下步骤:
任务分派装置获取一个以上的任务的基本任务信息,分别根据所述任务的基本任务信息获得各个所述任务的任务注册请求;
状态监控装置根据接收到的所述任务的任务注册请求,为每个所述任务分配一个任务标识,并将各个所述任务的任务标识传送至所述任务分派装置;
所述任务分派装置在接收到所述任务的任务标识之后,获得所述任务的分解信息,并根据所述任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得调度信息;
所述第二处理器获取所述调度信息、所述目标作业所属的任务的分解信息及全部任务信息,将所述目标作业所属的任务拆分为多个作业,并根据所述调度信息执行所述目标作业。
上述的任务调度器、任务处理系统及任务处理方法,通过在第一处理器和第二处理器之间设置任务调度器,任务调度器的任务分派装置和状态监控装置首先对其接收到的任务进行注册,注册成功后的任务可以进行调度及处理,即任务分派装置能够在接收到任务的任务标识之后,获得任务的分解信息,并根据任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得调度信息,并将调度信息发送至第二处理器,以便第二处理器可以根据该调度信息执行该任务,因此通过上述的任务调度器,能够实现神经网络等数据量较大数据的调度及处理,减少第一处理器的运算量,提高任务的调度及处理效率,进而提升计算机系统的处理效率。
附图说明
图1为一个实施例中任务调度器的结构框图;
图2为一个实施例中任务分解装置的结构示意图;
图3为一个实施例中任务调度装置的结构示意图;
图4为一个实施例中任务调度装置的结构示意图;
图5为图4中运算器一实施例的结构示意图;
图6为一个实施例中状态监控装置的结构示意图;
图7为一个实施例中状态监控装置的结构示意图;
图8为一个实施例中任务处理系统的结构示意图;
图9为一个实施例中第二处理器本体的结构框图;
图10为另一实施例中第二处理器本体的结构框图;
图11为又一实施例中第二处理器本体的结构框图;
图12为一个实施例中任务处理方法的流程图;
图13为另一个实施例中任务处理方法的流程图;
图14为一实施例中的任务处理方法的时序流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如图1所示,本申请实施例提供了一种任务调度器100,该任务调度器100连接在第一处理器200和第二处理器300之间,该任务调度器100用于任务的分解、调度及监控,可以提高任务的处理效率。具体地,该任务调度器100可以包括任务缓存装置110、任务分派装置120及状态监控装置130,第一处理器200、任务缓存装置110、任务分派装置120及第二处理器300依次连接,状态监控装置130连接任务分派装置120和第二处理器300。可选地,该任务缓存装置110可以通过全局内存400连接至第一处理器200,第一处理器200可以获得该任务缓存装置110中的数据存储的状态信息等等。
其中,任务缓存装置110用于存储多个任务对应的基本任务信息和全部任务信息;其中,该任务的基本任务信息可以包括该任务的配置信息,如配置信息包括任务类别、任务的权重及任务的输入数据等等。其中,多个任务根据其功能的不同可以分为事件任务、通信任务及数据处理任务等,即该任务类别可以包括事件任务、通信任务及数据处理任务,进一步地,该数据处理任务的任务类别还可以包括block(阻塞任务)、cluster(聚类任务)和union(联合任务)。该任务的全部任务信息可以包括该任务的配置信息等基本任务信息,以及该任务对应的指令及数据等信息。可选地,该多个任务以任务队列的形式存储于任务缓存装置110中,多个任务可以形成多个任务队列,如多个任务按照其任务类别形成多个任务队列。每个任务队列中队列头指针指向的任务的基本任务信息可以传送至任务分派装置120中。
任务分派装置120用于从任务缓存装置110中获取任务的基本任务信息,并根据任务的基本任务信息获得任务的任务注册请求;状态监控装置130用于根据接收到的任务注册请求,为任务分配一个任务标识,并将任务的任务标识回传给任务分派装置120,以完成任务的注册过程。本申请实施例中,注册完成的任务(即获得任务标识的任务)能够被任务分派装置120进行分解及调度,并进一步发送至第二处理器300进行处理。
任务分派装置120还用于在接收到任务的任务标识之后,根据该任务的基本任务信息对该任务进行预拆分,将该任务分为多个作业,获得任务的分解信息。进一步地,任务分派装置120还用于根据任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得调度信息,并将调度信息发送至第二处理器300。可选地,任务分派装置120可以在确定目标作业之后,即将调度信息发送至第二处理器300。第二处理器300能够获取该调度信息执行该目标作业,以完成该目标作业的处理。当完成该目标作业所属的任务中所有作业的调度之后,任务调度器完成一次调度,进入下一次调度。本申请实施例中,通过上述的任务调度器,能够实现神经网络等数据量较大数据的调度及处理,减少第一处理器的运算量,提高任务的调度及处理效率,进而提升计算机系统的处理效率。
在其他实施例中,任务分派装置120也可以将该目标作业所属的任务全部完成调度之后,即获得该目标作业所属的任务中所有作业的调度信息之后,再将该调度信息发送至第二处理器300。第二处理器可以根据该任务的所有作业形成的调度信息,同时对多个作业进行处理。
在一个实施例中,该任务分派装置120可以包括任务分解装置121和任务调度装置122,该任务分解装置121连接任务缓存装置110和状态监控装置130,该任务调度装置122连接任务缓存装置110、任务分解装置121和第二处理器300。其中,该任务分解装置121用于对任务进行预拆分,将任务分解为多个作业,获得任务的分解信息。该任务调度装置122用于根据任务的分解信息等对多个作业进行调度,确定目标作业,获得调度信息。
具体地,任务分解装置121用于从任务缓存装置110中获取任务的基本任务信息,并根据任务的基本任务信息获得任务的任务注册请求,并将该任务注册请求传送至状态监控装置130,状态监控装置130能够为各个任务分配一个任务标识,以完成任务的注册。任务分解装置121在接收到状态监控装置130回传的任务标识时,能够根据该具有任务标识的任务的基本任务信息,对各个注册成功的任务进行预拆分(将具有任务标识的任务分解为多个作业),获得任务的分解信息。本申请实施例中,各个任务的任务预拆分可以并行进行,即在获得该任务的任务标识时,则可以任务该任务注册成功,此时任务分解装置121即可将该任务分解为多个作业,获得任务的分解信息。这样,可以提高任务的处理效率。
同时,任务分解装置121在接收到状态监控装置130回传的任务标识时,可以获得任务的任务调度请求,并将该任务调度请求传送至任务调度装置122,以启动该任务的调度过程。任务调度装置122用于根据其获得的任务调度请求,从第二处理器300获取第二处理器的处理器状态信息,从任务分解装置121获得任务的分解信息,根据处理器状态信息以及任务的分解信息确定当前进行调度的目标作业,获得调度信息,并将该调度信息传送至第二处理器300。其中,该调度信息可以包括目标作业的作业标识,以及该目标作业对应的第二处理器300的处理器标识。在其他实施例中,该调度信息为多个目标作业的调度信息的集合,其还可以包括多个目标作业的发射顺序信息等等。
更进一步地,任务调度装置122能够根据调度信息从任务缓存装置110中获取目标作业所属的任务的全部任务信息,从任务分解装置121中获取目标作业所属的任务的分解信息,并将目标作业所属的任务的分解信息及全部任务信息打包传送至第二处理器300。第二处理器300可以根据其接收到目标作业所属的任务的分解信息及全部任务信息将该目标作业所属的任务拆分为多个作业(该拆分过程为实际拆分过程),拆分获得各个作业均包含权重及数据等信息。进一步地,第二处理器300可以对拆分根据调度信息对目标作业进行处理。
在其他实施例中,任务调度装置122在获得调度信息之后,可以将其获得的调度信息传送至第二处理器300,第二处理器300可以根据其接收到的调度信息,从任务缓存装置110中获取目标作业所属的任务的全部任务信息,从任务分解装置121中获取目标作业所属的任务的分解信息,并根据其接收到目标作业所属的任务的分解信息及全部任务信息将该目标作业所属的任务拆分为多个作业(该拆分过程为实际拆分过程),拆分获得各个作业均包含权重及数据等信息。进一步地,第二处理器300可以对拆分根据调度信息对目标作业进行处理。
可选地,如图2所示,任务分解装置121可以包括第一读写控制电路1210、注册请求电路1212以及数据分割器1214,第一读写控制电路1210、注册请求电路1212以及数据分割器1214依次电连接,第一读写控制电路1210连接任务缓存装置110,注册请求电路1212连接状态监控装置130,数据分割器1214连接任务调度装置122。
其中,任务缓存装置110还用于在任务缓存装置110中存在处于等待发射状态的任务时,获得任务使能信号;第一读写控制电路1210用于在接收到任务缓存装置110传送的任务使能信号时,从任务缓存装置110中获取任务的基本任务信息。可选地,该第一读写控制电路1210可以是I/O电路。具体地,任务缓存装置110中存储有多个任务队列,当一个以上的任务队列中存在处于等待发射状态的任务时,则任务缓存装置110能够获得任务使能信号。例如,该任务使能信号可以通过标志位(task enable)的方式表示,当标志位的值为1时,则认为任务缓存装置110中存在处于等待发射状态的任务。当标志位的值为0时,则可以认为该任务缓存装置110中不存在等待发射状态的任务。其中,该处于等待发射状态的任务可以是任务队列的队列头指针指向的任务,即该任务队列中的首个任务。第一读写控制电路1210在接收到任务使能信号时,可以从任务缓存装置110中获得该处于等待发射状态的任务的基本任务信息,以对该任务进行调度处理。
注册请求电路1212用于根据任务的基本任务信息获得任务的任务注册请求,将任务注册请求传送至状态监控装置130,对任务进行注册。其中,注册成功之后的任务(即获得任务标识的任务)能够进行调度处理。进一步地,该注册请求电路1212还用于接收状态监控装置130回传的任务标识等信息,并将其接收到的任务的任务标识传送至数据分割器1214。数据分割器1214用于在接收到状态监控装置130回传的任务标识时,根据任务的基本信息对该注册成功的任务进行预拆分,将该任务分解为多个作业,获得任务的分解信息。
可选地,任务的基本任务信息中包含任务的作业总数量和每个作业的作业大小;其中,任务的作业总数量是指该任务被分解形成的作业的数量,作业的大小是指每个作业的数据容量。数据分割器1214能够获取该任务的基本任务信息,并根据该任务的基本任务信息中的作业总数量和各个作业的作业大小,将多个任务分解为多个作业,得到任务的分解信息。可选地,该任务的作业总数量可以为2n,n为正整数,例如,该任务的作业总数量可以为128、256、1024或2048等等。更进一步地,每个作业能够被分配至对应的处理器上进行处理,因此每个作业的大小可以为对应的处理器字长的整数倍,其中,处理器字长可以反应处理器单次处理数据的能力。
本申请实施例中,通过数据分割器1214对具有任务标识的任务进行预拆分获得任务的分解信息,第二处理器300在对该任务进行处理时,可以直接根据该任务的分解信息将任务拆分为多个作业,无需对任务进行预拆分及注册等预处理,简化了第二处理器300的任务处理流程,进而第二处理器300对同一任务的多个作业进行并行处理,提高了处理效率。
可选地,任务分解装置121还包括状态控制电路1213,状态控制电路1213连接注册请求电路1212和任务调度装置122,该状态控制电路1213用于对任务的任务状态进行记录及更新,从而可以根据该任务的任务状态获知该任务的处理进度。本申请实施例中,通过状态控制电路1213可以对任务调度及处理过程中的任务状态进行跟踪及监控,从而可以保证任务调度的可靠性。
具体地,注册请求电路1212可以在接收到状态监控装置130回传的任务的任务标识之后,将该任务的任务标识传送至状态控制电路1213,状态控制电路1213可以用于在接收到任务的任务标识之后,将具有任务标识的任务的任务状态从等待发射状态更新为待调度状态。进一步地,数据分割器1214可以对该处于待调度状态的任务进行预拆分,获得该处于待调度状态的任务的分解信息。注册请求电路1212还用于在接收到状态监控装置130回传的任务标识时,获得任务对应的任务调度请求,并将任务的任务调度请求传送至任务调度装置122,即注册请求电路1212可以将各个处于待调度状态的任务对应的任务调度请求传送至任务调度装置122。该任务调度装置122可以根据该任务的任务调度请求,获取第二处理器的处理器状态信息及任务的分解信息等信息,开始对该任务进行调度。
进一步地,任务调度装置122可以在该处于待调度状态的任务调度成功时,生成调度成功信号,并将该调度成功信号传送至状态控制电路1213。状态控制电路1213还用于在接收到任务调度装置122传送的调度成功信号时,将任务的任务状态由待调度状态更新为调度状态,之后任务调度装置122可以将处于调度状态的任务的多个作业依次发送至第二处理器300。更进一步地,状态控制电路1213还可以用于在完成任务的调度之后,将任务的任务状态从调度状态更新为调度结束状态,获得任务的调度结束信息,并根据任务的调度结束信息销毁任务。
又进一步地,任务调度装置122可以在该处于待调度状态的任务调度失败时,生成调度失败信号,并将该调度失败信号传送至状态控制电路1213。状态控制电路1213的还用于在接收到任务调度装置122传送的调度失败信号时,将任务的任务状态设置为待调度状态,以在下一次调度时重新对该任务进行调度。本申请实施例中,通过上述调度失败机制可以避免死锁现象。
可选地,任务调度装置122可以根据各个处于待调度状态的任务的分解信息及基本任务信息,以及第二处理器的处理器状态信息,分别将各个任务包含的多个作业与第二处理器300进行匹配。若在预设的时间(如128节拍或256节拍)内,该任务的一个以上的作业与第二处理器300匹配失败时,则可以认为任务调度存在异常,此时任务调度装置122可以获得调度失败信号,并将该调度失败信号传送至状态控制电路1213。状态控制电路1213可以根据调度失败信号时,将任务的任务状态更新为待调度状态,以在下一次调度时重新对该任务进行调度。本申请实施例中,通过上述调度失败机制可以避免死锁现象。
若在预设的时间内,该任务的一个以上的作业均与第二处理器300匹配成功时,则可以任务调度正常,此时任务调度装置122可以获得调度成功信号,并将该调度成功信号传送至状态控制电路1213。状态控制电路1213可以根据该调度成功信号,将该任务的任务状态由待调度状态更新为调度状态。当该任务的任务状态更新为调度状态之后,任务调度装置122可以开始执行调度过程,即任务调度装置122可以将处于调度状态的任务的多个作业依次发送至第二处理器300。状态控制电路1213还可以用于在完成任务的调度之后,将任务的任务状态从调度状态更新为调度结束状态,获得任务的调度结束信息,并根据任务的调度结束信息销毁任务。
可选地,任务分解装置121还包括依赖关系处理电路1211,依赖关系处理电路1211连接在第一读写控制电路1210和注册请求电路1212之间,该依赖关系处理电路1211还可以连接至状态监控装置130。该依赖关系处理电路1211用于在根据任务的基本任务信息确定任务存在前置任务时,向状态监控装置130发送前置任务查询请求;状态监控装置130还用于根据前置任务查询请求,确定任务的前置任务是否执行完毕,并将查询结果反馈至依赖关系处理电路1211;依赖关系处理电路1211还用于在根据查询结果确定任务的前置任务执行完毕之后,再通过调用注册请求电路1212向状态监控装置130发送任务注册请求。即依赖关系处理电路1211在根据查询结果确定任务的前置任务执行完毕之后,发送确定信号给注册请求电路,注册请求电路可以向状态监控装置130发送任务注册请求。
具体地,该基本任务信息中还包含任务的依赖关系信息,依赖关系处理电路1211可以根据基本任务信息中的依赖关系信息判断当前任务是否存在前置任务,并在确定该当前任务存在前置任务时,向状态监控装置130发送前置任务查询请求,以确定该当前任务的前置任务是否执行完毕。状态监控装置130还用于根据前置任务查询请求,确定任务的前置任务是否执行完毕,并将查询结果反馈至依赖关系处理电路1211;依赖关系处理电路1211还用于在根据查询结果确定任务的前置任务执行完毕之后,再通过注册请求电路1212向状态监控装置130发送任务注册请求。若依赖关系处理电路1211根据查询结果确定任务的前置任务未执行完毕,则可以暂停该任务的注册,即不会向状态监控装置130发送相应的任务注册请求。这样,只有在当前任务的前置任务执行完毕之后,才执行当前任务的注册过程,可以保证各个任务的执行顺序的正确性,进而保证运算结果的准确性及可靠性。
当依赖关系处理电路1211根据任务的基本任务信息中的依赖关系信息,确定该当前任务不存在前置任务时,则可以调用注册请求电路1212,该注册请求电路1212可以根据该当前任务的基本任务信息获得任务注册请求,并将该任务的任务注册请求传送至状态监控装置130进行注册。
在一个实施例中,如图3所示,任务调度装置122可以包括第二读写控制电路1220、匹配电路1221和选择电路1222,第二读写控制电路1220、匹配电路1221和选择电路1222依次电连接,第二读写控制电路1220连接任务缓存装置110和任务分解装置121,选择电路1222连接第二处理器300。
其中,第二读写控制电路1220用于在接收到任务的任务调度请求时,根据任务的任务调度请求,获取任务的分解信息和全部任务信息,以及第二处理器300的处理器状态信息。具体地,当接收到任务的任务调度请求时,第二读写控制电路1220可以从任务分解装置121的数据分割器1214中读写该任务的分解信息,从任务缓存装置110中读取该任务的全部任务信息,并读取第二处理器300传送的处理器状态信息。可选地,该第二读写控制电路1220可以为I/O电路。
匹配电路1221用于根据各个任务的分解信息和全部任务信息,以及处理器状态信息,分别将任务的各个作业与第二处理器300进行匹配,并将与第二处理器300匹配成功的作业添加至待调度作业集。其中,该待调度作业集可以包括多个任务的作业。进一步地,若在预设时间(如128节拍或256节拍)内,任务中的一个以上的作业与第二处理器300未匹配成功时,则匹配电路1221获得任务的调度失败信号,并将任务的调度失败信号传送给任务分解装置121,以便任务分解装置121的状态控制电路1213根据该调度失败信号,更新该任务的任务状态,以便在下一次调度中重新对该任务进行调度。
具体地,匹配电路1221可以根据任务的全部任务信息及任务分解信息,可以获得该任务的各个作业所需的第二处理器300信息(如处理器类型等信息),根据各个作业的大小获得各个作业所需的处理器的处理能力等信息。第二处理器的处理器状态信息可以包括处理器的类型信息、处理器的运行状态信息(处理器是否空闲)以及处理器的处理能力等信息。这样,匹配电路1221可以根据该任务的全部任务信息及任务分解信息,以及处理器状态信息,将任务的各个作业与第二处理器300进行匹配。可选地,该匹配电路1221可以由一个以上的比较器1321并联形成,每个比较器1321的输入数据可以是各个作业的分解信息和全部任务信息,以及处理器状态信息,比较器1321的输出数据可以是匹配成功或匹配失败的信号。进一步地,若作业与第二处理器300匹配成功时,匹配电路1221还可以进一步获得与该作业匹配的第二处理器300的处理器标识等信息。
选择电路1222用于根据待调度作业集中各个作业的目标权重从待调度作业集中选定目标作业,获得调度信息,并将调度信息传送至任务缓存装置110及任务分解装置121。具体地,任务调度装置122可以将该待调度作业集中的多个作业逐一发送至第二处理器300进行处理,选择电路1222根据待调度作业集中各个作业的目标权重确定当前进行调度的目标作业。其中,该待调度作业集中各个作业的目标权重可以计算获得,当然,该待调度作业集中各个作业的目标权重也可以是预先设置。
可选地,在一个实施例中,该选择电路1222可以包括运算器1223和与该运算器1223连接的选择器1224,该运算器1223可以连接至匹配电路1221,该选择器1224可以连接至第二处理器300。其中,运算器1223用于根据待调度作业集中各个作业的目标权重,并根据待调度作业集中各个作业的目标权重确定各个作业的调度优先级,即运算器1223可以根据待调度作业集中各个作业的目标权重大小,对各个作业进行排序,获得各个作业的调度优先级。选择器1224用于根据各个作业的调度优先级,将待调度作业集中调度优先级最高的作业作为目标作业,获得调度信息,并将调度成功信息传送至任务缓存装置110及任务分解装置121。其中,该调度优先级最高的作业可以是目标权重最大的作业,即该目标作业为待调度作业集中目标权重最大的作业。这样,通过优先调度目标权重最大的作业,能够实现目标作业优先抢占处理器资源,从而可以优化任务调度过程。
在一个实施例中,待调度作业集的数量为一个以上,每个待调度集用于存储同一作业类别的作业,其中,每个作业的作业类别可以与该作业所属的任务的任务类别相同。具体地,选择电路1222包括运算器1223和选择器1224,该运算器1223可以连接至匹配电路1221,该选择器1224可以连接至第二处理器300。其中,运算器1223用于分别根据每个作业类别对应的待调度作业集中多个作业的期望权重和当前历史权重,确定每个作业类别对应的待调度作业集中各个作业的目标权重,并将作业类别对应的待调度作业集中目标权重最大的作业作为作业类别的预发射作业。选择器1224用于根据各个预发射作业的目标权重确定目标作业,获得调度信息,并将调度信息传送至任务缓存装置110及任务分解装置121。
可选地,选择器1224可以将各个预发射作业的目标权重进行比较,并将目标权重最大的预发射作业作为目标作业。若各个预发射作业的目标权重相同时,则选择器1224可以根据各个预发射作业的期望权重确定目标作业。例如,当各个预发射作业的目标权重相同时,选择器1224可以将期望权重最大的预发射作业作为目标作业。
例如,该任务的任务类别可以是block(阻塞任务)、cluster(聚类任务)和union(联合任务),该阻塞任务包含的作业的作业类别为阻塞作业,简记为作业类别B;该聚类任务包含的作业的作业类别为集群作业,简记为作业类别C;该联合任务包含的作业的作业类别为普通作业,简记为作业类别U。其中,
作业类别U对应的待调度作业集一可以表示如下:
其中,运算器1223可以根据作业1的期望权重WU1和当前历史权重HU1,计算获得作业的目标权重TU1,同理,运算器1223可以计算获得作业2至作业n的目标权重。进一步地,运算器1223可以对作业1至作业n的目标权重进行排序,并将该作业1至作业n中目标权重最大的作业作为预发射作业。例如,该待调度作业集一的预发射作业为作业1。
作业类别B对应的待调度作业集二可以表示如下:
其中,运算器1223可以根据作业1的期望权重WB1和当前历史权重HB1,计算获得作业的目标权重TB1,同理,运算器1223可以计算获得作业2至作业m的目标权重。进一步地,运算器1223可以对作业1至作业m的目标权重进行排序,并将该作业1至作业m中目标权重最大的作业作为预发射作业。例如,该待调度作业集二的预发射作业为作业2。
作业类别C对应的待调度作业集三可以表示如下:
其中,运算器1223可以根据作业1的期望权重WC1和当前历史权重HC1,计算获得作业的目标权重TC1,同理,运算器1223可以计算获得作业2至作业k的目标权重。进一步地,运算器1223可以对作业1至作业k的目标权重进行排序,并将该作业1至作业k中目标权重最大的作业作为预发射作业。例如,该待调度作业集二的预发射作业为作业3。
之后,选择器1224可以从上述的3个预发射作业中确定目标作业。具体地,若TU1大于TB2,TB2大于TC3时,则可以将该待调度作业集一中的作业1作为目标作业。若TU1、TB2、TC3三者相等时,则可以进一步比较WU1、WB2、及WC3的大小。若WU1大于WB2,WB2大于WC3时,则可以将该待调度作业集一中的作业1作为目标作业。
可选地,作业的期望权重为作业所属的任务的期望权重。例如,调度作业集一中,作业1和作业2可以同属于同一任务,作业3和作业4可以同属于同一任务,该作业n可以属于另一任务。作业1和作业2的期望权重均等于其所属任务的期望权重WB1,作业3和作业4的期望权重均等于其所属任务的期望权重WB2。当然,在其他实施例中,同一任务中的各个作业的期望权重可以不相同。
进一步地,如图4所示,运算器1223可以包括第一运算单元1225(ALU1)、第二运算单元1226(ALU2)和第三运算单元1227(ALU3),第一运算单元1225、第二运算单元1226和第三运算单元1227依次连接,第一运算单元1225可以连接至匹配电路1221,第三运算单元1227可以连接至选择器1224。
其中,第一运算单元1225用于根据作业类别对应的待调度作业集中各个作业的配置权重,以及作业类别对应的待调度作业集中多个作业的总配置权重,获得作业类别对应的待调度作业集中各个作业的期望权重。其中,各个作业的配置权重可以是该作业所属的任务的基本任务信息中包含配置权重,即各个作业的初始权重。该作业的期望权重可以等于作业的配置权重与该待调度作业集中的总配置权重之比。
可选地,作业类别对应的待调度作业集中各个作业的配置权重为作业所属的任务的配置权重,即同一任务中各个作业的配置权重相同。此时,第一运算单元1225只需根据作业所属的任务的配置权重,以及该待调度作业集中多个任务的总配置权重计算获得各个作业的期望权重。即该作业的期望权重可以等于作业所属的任务的配置权重与该待调度作业集中多个任务的总配置权重之比。
承接上例,如待调度作业集一中的n个作业可以分属于三个任务,任务1、任务2及任务3,其中,任务1的配置权重记为S1,任务2的配置权重记为S2,任务3的配置权重记为S3,则该任务1的期望权重WU1可以等于S1/(S1+S2+S3)。同理,任务2的期望权重WU2可以等于S2/(S1+S2+S3)。该待调度作业集一中各个作业的期望权重记为其所属任务的期望权重。待调度作业集二和待调度作业集三中各个作业的期望权重的计算方法与上述方法类似,此处不再赘述。
具体地,第二运算单元1226用于根据作业类别对应的待调度作业集中各个作业的期望权重,获得作业类别对应的待调度作业集中各个作业对应的当前历史权重。可选地,第二运算单元1226可以根据各个待调度作业集中各个作业的期望权重,以及预设的映射关系,获得各个作业对应的当前历史权重。
可选地,该第二运算单元1226还可以包括延迟子单元12261和更新子单元12262,该延迟子单元12261与第一运算单元1225连接,更新子单元12262连接延迟子单元12261和第一运算单元1225。其中,延迟子单元12261用于根据各个作业的期望权重确定各个作业对应的延迟因子;更新子单元12262用于根据各个作业的初始历史权重和作业对应的延迟因子,获得作业的当前历史权重。其中,各个作业的初始历史权重可以是各个作业的配置权重或上一次调度过程中的历史权重。
可选地,延迟子单元12261可以根据各个作业的期望权重以及预设的映射关系,确定各个作业对应的延迟因子。例如,该预设的映射关系如下表所示:
期望权重 | 延迟因子 |
1 | 256 |
2 | 128 |
3-4 | 64 |
5-8 | 32 |
9-256 | 16 |
从上表可以看出,期望权重越大,延迟因子越小。即作业的期望权重越大,则其调度优先级可能越高。
进一步地,在一次调度结束之后,更新子单元12262用于根据各个作业的初始历史权重和作业对应的延迟因子,获得作业的当前历史权重。可选地,若一个任务的作业在本次调度中均没有被调度,即该任务的所有作业在本次调度中均没有被选定为目标作业,则更新子单元12262可将该任务的各个作业的初始历史权重与延迟因子的比值作为各个作业的调整因子,并将各个作业的该初始历史权重与其对应的调整因子的差值作为该作业的当前历史权重。若一个任务的作业在本次调度中被调度,即该目标作业属于该任务时,更新子单元12262可以更新该任务的其他作业的历史权重。具体地,更新子单元12262可将该任务的各个作业的初始历史权重与延迟因子的比值作为各个作业的第一调整因子,将延迟因子的最大值与该作业对应的延迟因子的比值作为各个作业的第二调整因子,并根据各个作业的初始历史权重、第一调整因子与第二调整因子计算获得当前历史权重。例如,该当前历史权重=初始历史权重-第一调整因子+第二调整因子。
更进一步地,更新子单元12262还用于在作业类别对应的待调度作业集中新增同一任务的多个作业,或者同一任务的多个作业均被发射之后,则更新作业类别对应的待调度作业集中各个作业的期望权重和初始历史权重。当该作业为新增的作业时,该作业的初始历史权重即为其配置权重。
可选地,第三运算单元1227用于计算作业类别对应的待调度作业集中各个作业的期望权重和当前历史权重的权重差值,根据权重差值获得各个作业的目标权重,并将作业类别对应的待调度作业集中目标权重最大的作业作为作业类别的预发射作业。具体地,第三运算单元1227用于计算作业类别对应的待调度作业集中各个作业的期望权重和当前历史权重的权重差值,对该权重差值进行量化获得各个作业的目标权重。若当前历史权重和期望权重的权重差值越大,则表明该作业的历史调度次数越少,因此,可以通过该权重差值来提高作业的调度优先级。可选地,作业的目标权重与权重差值呈正比关系,即权重差值越大,则作业的目标权重越大,以保证该作业能够被及时调度。
可选地,选择电路1222还用于根据调度信息将第二处理器300锁定信号设置为高电平之后,再将调度信息传送至所述第二处理器300;当完成调度信息的传送之后,将第二处理器300锁定信号设置为低电平。具体地,选择器1224可以在第二处理器300锁定信号为高电平时,将调度信息传送至第二处理器300。同时,当第二处理器300锁定信号为高电平时,第二处理器300能够获取目标作业所属任务的全部任务信息及分解信息等等。进一步地,第二读写控制电路1220还用于在获得调度信息之后,从任务缓存装置110中获取目标作业所属的当前调度任务的全部任务信息。在第二处理器300锁定信号为高电平时,第二读写控制电路1220能够将调度信息及目标作业的当前调度任务的全部任务信息和分解信息传送至第二处理器300。
本申请实施例中,任务调度装置122通过采用上述调度机制,能够优化任务调度过程,提高任务调度的效率。
在一个实施例中,如图5所示,状态监控装置130可以包括任务注册电路131,任务注册电路131连接任务分解装置121,具体地,任务注册电路131连接任务分解装置121的注册请求电路1212。注册请求电路1212可以将任务的任务注册请求发送至任务注册电路131,任务注册电路131用于接收该任务的任务注册请求,根据任务的任务注册请求为任务分配任务标识,并将任务的任务标识回传给任务分解装置121。其中,已获得任务标识的当前任务能够被任务分派装置120调度,并发送至第二处理器300进行处理。
可选地,任务注册电路131可以是一存储装置,该存储装置内存储有一状态表,该状态表包含多个状态表项,每个状态表项对应一个任务标识。具体地,每个任务注册请求可以占用一个状态表项,该状态表项的存储地址或标号等可以作为该任务的任务标识。在其他实施例中,该任务注册电路131可以采用堆栈等其他存储装置。进一步地,每个状态表项可以包括多个子状态表项,任务注册电路131可以根据当前任务的作业总数量,为每个作业分配一个子状态表项。例如,当前任务对应的任务标识可以为Table ID,该Table ID用于表示该当前任务。若当前任务注册完成之后,可以按照多个作业在队列中的排列方式为每个作业分配一个该Table ID对应的子状态表项。
进一步地,该状态监控装置130还包括与任务注册电路131连接的校验电路132和与校验电路132连接的状态控制电路1213,校验电路132连接任务分解装置121,状态处理电路133连接校验电路132和第一处理器200。
具体地,校验电路132连接至任务分解装置121的第一读写控制电路1210,第一读写控制电路1210可以将任务包含的作业总数量传送至校验电路132,校验电路132用于获取任务分解装置121传送的任务包含的作业总数量,以及第二处理器300传送的任务的作业接收数量,并根据任务的作业总数量和任务的作业接收数量获得分派完成指令。该分派完成指令用于表示该第二处理器300已接收到任务分派装置120发送的所有作业。进一步地,该校验电路132可以将该分派完成指令传送至状态处理电路133。
状态处理电路133用于根据分派完成指令接收任务的各个作业的作业结束信息,并将任务的各个作业的作业结束信息传送至第一处理器200。具体地,当状态处理电路133接收到分派完成指令时,表明状态处理电路133可等待第二处理器300反馈的各个已接收作业的执行状态信息,即状态处理电路133可以开始接收并缓存第二处理器300传送的任务中各个作业的作业结束信息。可选地,该状态处理电路133可以通过DMA610连接至全局内存400,从而该状态处理电路133可以将其获得的各个作业的作业结束信息写入全局内存400,以通过全局内存400将当前任务的各个作业的作业结束信息传送至第一处理器200。
可选地,该校验电路132可以包括比较器1321,该比较器1321用于获取任务的作业接收数量和预设作业数量,并对该任务的作业接收数量与预设作业数量进行比较,当任务的作业接收数量与预设作业数量相等时,该比较器1321可以输出分派完成指令,并将分派完成指令发送至状态处理电路133。
可选地,本申请实施例中的预设作业数量可以是为该任务的作业总数量。此时,比较器1321用于判断任务的作业接收数量是否等于任务的作业总数量,当任务的作业接收数量等于该任务的作业总数量时,则比较器1321可以获得分派完成指令,并将分派完成指令传送至状态处理电路133。若任务的作业接收数量小于该任务的作业总数量时,则继续等待,直至任务的作业接收数量等于该任务的作业总数量。
可选地,在其他实施例中,由于每个任务包含多个作业,为减少单次校验的作业数量,提高作业的执行效率,预设作业数量还可以小于任务的作业总数量。具体地,比较器1321的预设作业数量可以为2m,其中,m的取值范围为5~10,m为正整数。例如,预设作业数量可以是32、64、128、512或1024等等,此处不做具体限定。
例如,该预设作业数量为128,比较器1321用于判断任务的作业接收数量是否等于128,当任务的作业接收数量等于128时,则比较器1321可以获得分派完成指令,并将分派完成指令传送至状态处理电路133。同时,可以将该任务的作业接收数量清零,进行下一循环的处理。若任务的作业接收数量小于128时,则继续等待,直至任务的作业接收数量等于128。
进一步地,该预设作业数量可以根据当前任务的作业数量动态设置。此时,当比较器1321确定任务的作业接收数量与预设作业数量相等,则比较器1321可以获得分派完成指令,并将分派完成指令传送至状态处理电路133。若任务的作业接收数量小于预设作业数量时,则继续等待,直至任务的作业接收数量等于比较器1321的预设作业数量。
可选地,状态处理电路133还包括状态缓存电路1331,该状态缓存电路1331可以连接校验电路132和第一处理器200,具体地,该状态缓存电路1331可以通过全局内存400连接至第一处理器200。该状态缓存电路1331用于接收校验电路132的比较器1321输出的分派完成指令,并根据分派完成指令接收并缓存任务的各个作业的作业结束信息,并当接收到的作业结束信息的数量达到预设结束信息数量时,按照预设的排列方式对接收到的作业结束信息重新进行排序,并按照重新排序后的顺序将接收到的作业结束信息传送至第一处理器200。可选地,该预设的排列方式可以是各个作业的执行顺序,该预设的排列方式也可以根据该任务的基本任务信息中包含的依赖关系信息确定。这样,通过对各个作业的作业结束信息进行重新排序,可以保证当前作业之前的一个或多个作业均已经执行结束,从而可以保证当前任务的执行结果的可靠性。
可选地,该预设结束信息数量可以为该任务的作业总数量。此时,当状态缓存电路1331接收到的作业结束信息的数量达到任务的作业总数量时,状态处理电路133可以按照预设的排列方式对接收到的作业结束信息重新进行排序,并按照重新排序后的顺序将接收到的作业结束信息传送至第一处理器200。进一步地,当状态缓存电路1331接收到的作业结束信息的数量达到任务的作业总数量时,状态处理电路可以确定已经接收到该任务的所有作业的作业结束信息,即该任务已经执行完毕。更进一步地,该状态缓存电路1331还用于记录该任务的执行完毕信息。当接收到任务分解装置121的依赖关系处理电路发送的前置任务查询请求时,状态缓存电路1311可以用于根据前置任务查询请求,确定任务的前置任务是否执行完毕,并将查询结果反馈至依赖关系处理电路。
进一步地,若任务为阻塞任务时,该状态缓存电路还用于在接收到阻塞任务的作业结束信息的数量等于阻塞任务的作业总数量,且阻塞任务所属的阻塞区间之前的上一阻塞区间内的所有任务的作业结束信息均传送至第一处理器200之后,再将阻塞任务的多个作业的作业结束信息传送至第一处理器200。
其中,阻塞任务是指调用了阻塞原语把自己阻塞,等待相应的前置任务的结束信息写入指定位置才被唤醒的任务,即阻塞任务是指存在前置任务的任务。一个阻塞任务到下一个阻塞任务之间的所有任务为一个阻塞区间。需要说明的是,若任务无需依赖其他任务的处理结果即可执行,可直接将结束信息写入缓存,无需当前任务所处的阻塞区间,以及后续处理。例如,该阻塞任务需要等待其之前的所有任务均执行完毕之后,才可以执行该阻塞任务(该阻塞任务的属性可以标记为wait enable)。或者,在该阻塞任务执行完毕之后,该阻塞任务之后的其他任务才能开始执行,此时,该阻塞任务的属性可以标记为blockenable。
可选地,状态处理电路133还包括与第二处理器300连接的异常处理电路1332,任务分解装置121还包括任务销毁电路1215,异常处理电路1332连接任务销毁电路1215。该异常处理电路1332还可以连接至状态缓存电路1331,异常处理电路1332可以通过该状态缓存电路1331获得各个作业的作业结束信息。任务销毁电路1215还可以连接至任务分解装置的状态控制电路1213,任务销毁电路1215在完成该任务的销毁操作之后,可以通过状态控制电路1213获得任务的调度结束信息。
其中,第二处理器300用于将作业的作业结束信息传送至所述异常处理电路1332;异常处理电路1332用于作业的作业结束信息判断作业是否存在执行异常,并在作业存在执行异常时,获得任务销毁指令,并将任务销毁指令传送至任务销毁电路1215。任务销毁电路1215用于根据任务销毁指令销毁执行销毁操作,销毁操作包括销毁存在执行异常的作业所属的任务以及销毁存在执行异常的作业所属的任务及作业所属的任务对应的任务队列中的所有任务。
具体地,该异常处理电路1332可以获取该任务的作业的作业结束信息,并根据该作业的作业结束信息判断作业是否存在执行异常。若该作业存在执行异常时,获得任务销毁指令。可选地,该作业的作业结束信息中包含结果标志数据,异常处理电路1332可以根据作业的作业结束信息中包含的结果标志数据判断该作业是否存在执行异常。
例如,若该作业不存在执行异常,则第二处理器300可以将该作业的作业结束信息中的结果标志数据设置为0,此时,异常处理电路1332可以根据该结果标志数据确定该作业不存在执行异常。若该作业存在执行异常时,则第二处理器300可以将该作业的作业结束信息中的结果标志数据设置为非0(如该结果标志数据为1),此时,异常处理电路1332可以根据该结果标志数据确定该作业存在执行异常。进一步地,异常处理电路1332可以根据该作业的作业结束信息获得任务销毁指令,以通知任务分解装置121的任务销毁电路1215执行销毁操作。
进一步地,该作业的执行异常可以包括第一异常情况和第二异常情况,任务销毁指令可以包括与第一异常情况相对应的第一任务销毁指令和与第二异常情况相对应的第二任务销毁指令。可选地,在确定该作业存在异常时,异常处理电路1332还可以根据该作业的作业结束信息中包含的异常标志数据,判断当前任务的执行异常是第一异常情况还是第二异常情况。其中,该第一异常情况和第二异常情况可以是第二处理器300资源不足及第二处理器300故障等异常情况等异常中的一个或多个的组合。
可选地,异常处理电路1332用于在根据作业的作业结束信息确定该作业存在第一异常情况时,则获得第一任务销毁指令,并将第一任务销毁指令传送至任务销毁电路1215,任务销毁电路1215根据第一任务销毁指令销毁该作业所属的任务。具体地,任务销毁电路1215在接收到第一任务销毁指令时,可以用于终止调度存在执行异常的作业,以及该作业之后的所有作业,并获得该作业所属的任务的调度结束信息。进一步地,当任务销毁电路1215完成该作业所属的任务的销毁操作之后,可以将该作业所属的任务的任务调度结束信息传送至任务分解装置的状态控制电路1213进行记录。
任务调度器100还包括寄存器堆140,寄存器堆140连接至任务分解装置121。若异常处理电路1332根据作业的作业结束信息确定该作业存在第二异常情况时,则可以获得第二任务销毁指令,以销毁该作业所属的任务以及所述该作业所属的任务之后的所有任务。具体地,若异常处理电路1332根据作业的作业结束信息确定该作业存在第二异常情况时,则可以获得第二任务销毁指令,并将该第二任务销毁指令传送至任务销毁电路1215,通知任务销毁电路1215销毁该作业所属的任务及其之后的所有任务。可选地,当任务销毁电路1215接收到异常处理电路1332传送的第二任务销毁指令之后,任务销毁电路1215可以销毁该该作业所属的任务所在的任务队列中的所有任务。具体地,任务分派装置120首先根据第二任务销毁指令终止该作业所属的任务及该作业所属的任务之后的其他任务的调度,并通知与该任务分派装置120连接的寄存器清除该作业所属的任务。在该作业所属的任务从寄存器中清除之后,可以获得该作业所属的任务的调度结束信息。
同时,在该作业所属的任务从寄存器中清除之后,任务分派装置120可以向状态监控装置130发送该作业所属的任务之后的其他任务对应的任务注册请求,以获得该作业所属的任务之后的其他任务对应的任务标识。状态监控装置130的任务注册电路131可以分别为该作业所属的任务之后的其他任务分配一个任务标识。当任务销毁电路1215接收到状态监控装置130的任务注册电路131反馈的任务标识时,任务销毁电路1215可以根据其接收到的任务标识,获得该作业所属的任务之后的其他任务对应的调度结束信息,以销毁该作业所属的任务之后的所有任务。
通过设置上述异常处理机制,可以保证任务执行结果的准确性。并且,当存在异常情况时,状态监控装置130可以通知任务销毁电路1215销毁对应的任务和/或其之后的全部任务,避免第二处理器300在存在异常时继续执行其他任务带来的资源浪费。
可选地,状态控制电路1213还用于在接收到任务销毁指令时,获得第一中断信号,并将第一中断信号传送至第一处理器200,之后执行销毁操作。具体地,当任务销毁电路1215接收到任务销毁指令时,首先终止该作业所属的任务的调度,以避免异常情况下进行调度消耗不必要的资源。同时,当任务销毁电路1215接收到任务销毁指令后,可以获得第一中断信号,并将第一中断信号传送至第一处理器200。进一步地,当第一处理器200接收到第一中断信号后,第一处理器200还可以获取各个第二处理器本体340的状态信息,并根据各个第二处理器本体340的状态信息,确定出现异常的第二处理器本体340。更进一步地,任务销毁电路1215还用于在完成销毁操作之后,获得第二中断信号,并将第二中断信号传送至第一处理器200。
进一步地,状态控制电路1213还用于根据任务的基本任务信息,确定该任务是否存在异常,并在该任务存在异常时,则终止所述任务的分解及调度过程,之后通过调用任务销毁电路1215执行销毁操作。即当状态控制电路1213确定该任务存在异常时,任务销毁电路1215可以根据该任务的异常情况,销毁该任务或该任务所属的任务队列中的所有任务。
在一个实施例中,多个任务以任务队列的方式进行存储于任务缓存装置110中,任务缓存装置110还用于监测各个任务队列的队列状态。当任务队列的队列头指针与队列尾指针不相同,且任务缓存装置110的剩余存储空间大于零时,则任务缓存装置110可以向全局内存400发送数据读取请求,以向任务缓存装置110存入新的任务。
进一步地,任务分解装置121还用于在任务调度结束或被销毁之后,向任务缓存装置110发送任务释放请求;任务缓存装置110还用于根据任务释放请求,释放该任务,并将该任务所在的任务队列的队列头指针累加一次,以更新该任务所在的任务队列的队列头任务。本申请实施例中,通过释放已经调度结束或被销毁的任务,能够避免已经调度结束的任务或被销毁的任务占用任务缓存装置110的存储空间,提高任务缓存装置110的空间利用率。
在一个实施例中,基于各个任务具有不同的任务类别,不同任务类别的任务的调度流程不同。具体地,若该任务的任务类别为数据处理任务,如block(阻塞任务)、cluster(聚类任务)和union(联合任务)时,该数据处理任务可以先通过任务分解装置121和状态监控装置130进行任务注册,之后,注册成功后的数据处理任务可以被任务分解装置121预拆分为多个作业,获得该任务的分解信息。同时,注册成功后的数据处理任务可以通过任务调度装置122进行调度。其中,该任务调度器100中任务分解装置121、任务调度装置122及状态监控装置130等装置的工作过程可参见上文中的描述。
若任务为事件任务时,则注册请求电路1212根据该事件任务的基本任务信息获得该事件任务的任务注册请求,并将该事件任务的任务注册请求传送至状态监控装置130。当接收到该状态监控装置130传送的任务标识之后,该任务分解装置121的状态控制电路可以将该事件任务的任务状态更新为调度结束状态。进一步地,状态监控装置130可以将事件任务的注册请求的发送时间点传送至第一处理器200。其中,事件任务用于实现任务调度器100与第一处理器200之间的同步。
进一步地,注册请求电路1212还用于检测该事件任务是否触发主机同步信号,若该事件任务触发主机同步信号时,则可以接收第一处理器传送的中断信号,并在中断信号清除之后,再根据事件任务的基本任务信息获得事件任务的任务注册请求,将事件任务的任务注册请求传送至状态监控装置130。
例如,当任务分解装置121根据其接收到的任务的基本任务信息,确定该任务为事件任务,则可以继续判断该事件任务是否触发主机同步信号(event host sync)。若主机同步信号为1,则表明该事件任务触发主机同步信号,此时,第一处理器可以在该事件任务所在的任务队列中位于该事件任务之前的任务均执行结束之后,即获得该事件任务之前的所有任务的调度结束信息时,可以向任务分解装置121发送中断信号,并在一定的等待时间之后,清除该中断信号,并将中断信号的清除信息传送至任务分解装置。任务分解装置可以在中断信号清除之后,再根据事件任务的基本任务信息获得事件任务的任务注册请求,将事件任务的任务注册请求传送至状态监控装置130,并记录事件任务的任务注册请求的发送时间点。进一步地,状态监控装置130可以将事件任务的注册请求的发送时间点传送至第一处理器200。任务分解装置在接收到事件任务的任务标识之后,可以将该事件任务的任务状态更新为调度结束状态,完成该事件任务的调度及处理过程。
若主机同步信号为0,则表明该事件任务未触发主机同步信号,此时,该事件任务可以按照阻塞任务进行任务等待操作。即当该事件任务未触发主机同步信号时,则任务分解装置的依赖关系处理电路可以在确定该事件任务所在的队列中的前置任务均执行完成之后,再调用该注册请求电路,获得该事件任务的任务注册请求,以获得该事件任务的任务标识。进一步地,任务分解装置在接收到事件任务的任务标识之后,可以将该事件任务的任务状态更新为调度结束状态,完成该事件任务的调度及处理过程。本申请实施例中,该事件任务的前置任务的确定过程可参见上文中依赖关系处理电路对任务的处理过程。
若任务为通信任务时,任务缓存装置110还用于获取通信任务的描述符,根据通信任务的描述符获取通信任务对应的任务模板,将通信任务对应的描述符和任务模板对应存储,获得重组后的通信任务。本申请实施例中,任务缓存装置110中存储有多个通信任务的任务队列,每个任务队列的队列头指针指向通信任务的描述符,从而任务缓存装置110可以根据任务队列的队列头指针获取该通信任务的描述符等通信信息。之后,任务缓存装置110可以根据该通信的描述符等通信信息从全局内存400中获取该通信任务对应的任务模板,并将通信任务的描述符及任务模板对应存储,获得重组后的通信任务。该重组后的通信任务能够被发送至任务分派装置进行分解及调度。具体地,该重组后的通信任务可以在任务分解装置中进行任务注册及分解,获得该重组后的通信任务对应的分解信息。进一步地,该重组后的通信任务可以在任务调度装置中进行调度,获得调度信息。之后,该重组后的通信任务可以被发送至第二处理器进行处理。该重组后的通信任务的任务处理过程与上述的联合任务(union任务)的处理过程一致,具体可参见上文中的描述。
进一步地,任务缓存装置110还可以进一步该重组后的通信任务能否发送至任务分派装置,若是,则可以将该重组后的通信任务发送至任务分派装置进行分解调度。例如,任务缓存装置110还可以根据该通信任务的基本任务信息和/或通信信息,确定该重组后的通信任务是否存在前置任务,若该重组后的通信任务不存在前置任务,或其前置任务已经发射至任务分派装置进行处理,则可以将该重组后的通信任务发射至任务分派装置。
进一步地,任务缓存装置在获取该通信任务的描述符的过程中,还可以实时判断获取该通信任务的描述符的过程中是否触发错误信号(ecc信号)。若任务缓存装置在获取该通信任务的描述符的过程中触发错误信号,则可以重新获取该通信任务的描述符。更进一步地,该通信任务的描述符可以包括用于表示其状态的状态标识位,该状态标识位可以用于标识该通信任务的描述符是否存在异常。例如,若任务缓存装置在接收到该通信任务的描述符之后,可以根据该通信任务的描述符,确定该通信任务的描述符存在异常时,则可以将该通信任务标记为失败任务。若该任务缓存装置根据该通信任务的描述符,确定该通信任务的描述符不存在异常时,则可以根据该通信任务的描述符获取该通信任务对应的任务模板。
可选地,在任务缓存装置在根据该通信任务的描述符,获取该通信任务对应的任务模板的过程中,任务缓存装置还可以实时判断该任务模板的获取过程中是否触发错误信号(ecc信号)。若任务缓存装置在获取该通信任务的任务模板的过程中触发错误信号,则可以将通信任务标记为失败任务。
本申请实施例的任务调度器100,通过任务调度器100的任务分派装置120和状态监控装置130首先对其接收到的任务进行注册,注册成功后的任务可以进行调度及处理,即任务分派装置120能够在接收到任务的任务标识之后,获得任务的分解信息,并根据任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得调度信息,并将调度信息发送至第二处理器300,以便第二处理器300可以根据该调度信息执行该任务,因此通过上述的任务调度器100,能够实现神经网络等数据量较大数据的调度及处理,减少第一处理器200的运算量,提高任务的调度及处理效率,进而提升计算机系统的处理效率。
同时,如图8所示,本申请实施例还提供了一种任务处理系统,包括第一处理器200、全局内存400、任务调度器100及第二处理器300,任务调度器100连接在第一处理器200和第二处理器300之间。本申请实施例中任务调度器100的结构及工作原理,与上述任一实施例中的任务调度器100相同,具体可参见上文中的描述,此处不再赘述。
其中,全局内存400可以连接至第一处理器200,全局内存400中存储有多个任务队列。任务调度器100可以通过DMA610连接至全局内存400。可选地,全局内存400可以为DRAM(Dynamic Random Access Memory,动态随机存储器)或SRAM(Static Random-AccessMemory,静态随机存储器)等等。
任务调度器100的任务缓存装置110连接全局内存400,能够从全局内存400中获取多个任务的基本任务信息和全部任务信息。可选地,从全局内存400中获取的多个任务以任务队列的方式存储于任务缓存装置110中。同时,任务调度器100可以连接至第二处理器300,第二处理器300能够获取任务的全部任务信息,可选地,第二处理器300能够通过任务调度器100的任务调度装置122获得任务的全部任务信息。进一步地,第二处理器300还能够获得任务调度器100的任务分派装置120传送的任务的调度信息及分解信息,并根据任务的全部任务信息、调度信息及任务的分解信息执行任务,并将任务的执行状态信息通过任务调度器100传送至第一处理器200。具体地,第二处理器300能够根据任务的全部任务信息、调度信息及任务的分解信息,将该任务实际拆分为多个作业,并根据调度信息分别执行各个作业。进一步地,第二处理器300可以将各个作业的作业结束信息作为执行状态信息,并将各个作业的作业结束信息通过任务调度器100传送至全局内存400,第一处理器200可以从全局内存400中获得该任务的各个作业的作业结束信息。
可选地,第一处理器200可以是CPU等通用处理器,第二处理器300可以作为第一处理器200的协处理器。具体地,第二处理器300可以包括第二处理器本体340以及用于控制第二处理器本体340运行的控制装置,第二处理器本体340可以是IPU(IntelligenceProcessing Unit,智能处理器)或NPU(Neural-network Process Unit,神经网络处理器)等人工智能处理器。当然,在其他实施例中,该第二处理器本体340也可以是CPU或GPU等通用处理器。
可选地,第二处理器300包括多个第二处理器本体340以及第二处理器本体的控制装置330,多个第二处理器本体340均连接至第二处理器本体的控制装置330。或者,该第二处理器本体340也可以包括多个核处理器,各个核处理器均连接至所述第二处理器本体的控制装置330。其中,第二处理器本体的控制装置330用于根据接收到的任务调度器100传送的调度信息、任务的分解信息及全部任务信息,将任务拆分为多个作业,并根据调度信息将目标作业发送至相应的第二处理器本体340;第二处理器本体340用于执行接收到的目标作业。
具体地,任务调度器100的任务调度装置122可以将调度信息、目标作业所属的任务的全部任务信息及分解信息发送至第二处理器本体的控制装置330。或者,任务调度器100的任务调度装置122在确定目标作业之后,可以将调度信息传送至第二处理器本体的控制装置330,第二处理器本体的控制装置330可以根据调度信息获取目标作业所属的任务的全部任务信息及分解信息。之后,第二处理器本体的控制装置330可以将该目标作业所属的任务拆分为多个作业,并根据调度信息将目标作业发送至相应的第二处理器本体340进行处理。其中,该调度信息可以包括目标作业的作业标识,以及该目标作业对应的第二处理器300的处理器标识。
进一步地,第二处理器本体的控制装置330还用于在接收调度信息时,为目标作业分配一个作业标识;当接收到目标作业对应的所有第二处理器本体340反馈的信息时,则获得目标作业的作业结束信息,并将目标作业的作业结束信息传送至状态监控装置130,之后,销毁目标作业对应的作业标识。
更进一步地,目标作业可以对应一个以上的第二处理器本体340,各个第二处理器本体340的连接关系及结构可参见下文中的描述。第二处理器本体的控制装置330还用于在目标作业对应的一个以上第二处理器本体340反馈的信息存在异常时,则将目标作业的执行状态标记为执行异常,目标作业的执行状态附加在目标作业的作业结束信息中,并将该目标作业的作业结束信息传送至状态监控装置130。状态监控装置130能够根据目标作业的作业结束信息中的目标作业的执行状态,获得任务销毁指令。
可选地,多个第二处理器本体340形成多个处理器集群,每个处理器集群均对应设置有共享存储600;每个处理器集群中的各个第二处理器本体340均连接至处理器集群对应的共享存储600。进一步地,各个共享存储600之间相互连接,各个共享存储600均连接任务调度器100和/或全局内存400。本申请实施例中,通过设置共享存储600,避免了每次数据读写均需调用全局内存400,能够节省全局内存400的读写带宽。
可选地,任务处理系统还包括多个与共享存储600连接的DMA610(Direct MemoryAccess,直接内存存取);处理器集群中的各个第二处理器本体340均通过DMA610连接至处理器集群对应的共享存储600;各个共享存储600通过DMA610连接任务调度器100和/或全局内存400,各个共享存储600之间通过DMA610连接。本申请实施例中,通过设置多个DMA610,能够实现不同的硬件装置之间的数据访存,无需设置中断程序,从而可以提高该系统的处理效率。
作为进一步的改进,任务处理系统还包括互联模块500,第一处理器200、第二处理器300、全局内存400及任务调度器100均连接至互联模块500,如片上互联模块500(Networks On Chip)。可选地,该互联模块500可以是二叉树互联模块500或2D-mesh互联模块500。进一步地,第二处理器300的数量为一个以上,一个以上的第二处理器300均连接至互联模块500;任务调度器100的数量为一个以上,一个以上的任务调度器100均连接至互联模块500。这样,通过互联模块500和一个以上的任务调度器100和第二处理器300,能够提高该任务处理系统的可扩展性,以满足不同的需求。
在一个实施例中,如图9所示,该第二处理器本体340可以包括控制器单元310和运算单元320,其中,控制器单元310与运算单元320连接,该运算单元320可以包括一个主处理电路321和多个从处理电路322,该主处理电路321和从处理电路322形成主从结构。可选地,上述的控制器单元310用于获取数据以及计算指令。该数据具体可以包括机器学习数据,可选地,该机器学习数据可以为神经网络数据。控制器单元310还用于解析其获取的计算指令得到运算指令,并将多个运算指令以及数据发送给主处理电路。主处理电路321用于对数据以及该主处理电路321与多个从处理电路322之间传输的数据和运算指令执行前序处理。多个从处理电路322用于依据从主处理电路321传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给主处理电路321;主处理电路321还用于对多个中间结果执行后续处理得到计算指令的计算结果。
可选地,该控制器单元310可以包括指令缓存单元311、指令处理单元312和存储队列单元314;指令缓存单元311用于存储机器学习数据关联的计算指令;
指令处理单元312用于对计算指令解析得到多个运算指令;存储队列单元314用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。可选地,该控制器单元310还可以包括依赖关系处理单元313,用于在具有多个运算指令时,确定第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系,如第一运算指令与第零运算指令存在关联关系,则将第一运算指令缓存在指令存储单元内,在第零运算指令执行完毕后,从指令存储单元提取第一运算指令传输至运算单元。具体地,若依赖关系处理单元313依据第一运算指令提取第一运算指令中所需数据(例如矩阵)的第一存储地址区间,依据第零运算指令提取第零运算指令中所需矩阵的第零存储地址区间,如第一存储地址区间与第零存储地址区间具有重叠的区域,则确定第一运算指令与第零运算指令具有关联关系,如第一存储地址区间与第零存储地址区间不具有重叠的区域,则确定第一运算指令与第零运算指令不具有关联关系。
在一个实施例中,如图10所示,运算单元320还可以包括一个或多个分支处理电路323,其中,一个或多个分支处理电路323连接至主处理电路321,每个分支处理电路323连接一个以上的从处理电路322。分支处理电路323用于执行转发主处理电路321与从处理电路322之间的数据或指令。在此实施例中,主处理电路321具体用于将确定输入神经元为广播数据,权值为分发数据,并将分发数据分配为多个数据块,将多个数据块中的至少一个数据块、广播数据以及多个运算指令中的至少一个运算指令发送给分支处理电路;分支处理电路323用于转发主处理电路321与多个从处理电路322之间的数据块、广播数据以及运算指令;多个从处理电路322用于依据该运算指令对接收到的数据块以及权值执行运算得到中间结果,并将中间结果传输给分支处理电路323;主处理电路321还用于将分支处理电路发送的中间结果进行后续处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元。
在另一种可选实施例中,如图11所示,运算单元320可以包括一个主处理电路321和多个从处理电路322。其中,多个从处理电路322呈阵列分布;每个从处理电路322与相邻的其他从处理电路322连接,主处理电路321连接多个从处理电路中的k个从处理电路,k个从处理电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,需要说明的是,如图11所示的K个从处理电路仅包括第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,即该k个从处理电路为多个从处理电路中直接与主处理电路连接的从处理电路。K个从处理电路用于在主处理电路以及多个从处理电路之间的数据以及指令的转发。
可选的,该主处理电路还可以包括转换处理电路、激活处理电路、加法处理电路中的一种或任意组合;其中,转换处理电路用于将主处理电路接收的数据块或中间结果执行第一数据结构与第二数据结构之间的互换(例如连续数据与离散数据的转换);或将主处理电路接收的数据块或中间结果执行第一数据类型与第二数据类型之间的互换(例如定点类型与浮点类型的转换);激活处理电路用于执行主处理电路内数据的激活运算;加法处理电路用于执行加法运算或累加运算。
进一步地,所述从处理电路包括乘法处理电路;所述乘法处理电路用于对接收到的数据块执行乘积运算得到乘积结果。更进一步地,从处理电路还可以包括转发处理电路和累加处理电路,转发处理电路用于将接收到的数据块或乘积结果转发,所述累加处理电路用于对该乘积结果执行累加运算得到该中间结果。
本申请提供的处理器将运算单元320设置成一主多从结构,对于正向运算的计算指令,其可以将依据正向运算的计算指令将数据进行拆分,这样通过多个从处理电路即能够对计算量较大的部分进行并行运算,从而提高运算速度,节省运算时间,进而降低功耗。
可选地,上述机器学习计算具体可以包括:人工神经网络运算,上述输入数据具体可以包括:输入神经元数据和权值数据。上述计算结果具体可以为:人工神经网络运算的结果即输出神经元数据。
对于神经网络中的运算可以为神经网络中的一层的运算,对于多层神经网络,其实现过程是,在正向运算中,当上一层人工神经网络执行完成之后,下一层的运算指令会将运算单元中计算出的输出神经元作为下一层的输入神经元进行运算(或者是对该输出神经元进行某些操作再作为下一层的输入神经元),同时,将权值也替换为下一层的权值;在反向运算中,当上一层人工神经网络的反向运算执行完成后,下一层运算指令会将运算单元中计算出的输入神经元梯度作为下一层的输出神经元梯度进行运算(或者是对该输入神经元梯度进行某些操作再作为下一层的输出神经元梯度),同时将权值替换为下一层的权值。
上述机器学习计算还可以包括支持向量机运算,k-近邻(k-nn)运算,k-均值(k-means)运算,主成分分析运算等等。为了描述的方便,下面以人工神经网络运算为例来说明机器学习计算的具体方案。
对于人工神经网络运算,如果该人工神经网络运算具有多层运算,多层运算的输入神经元和输出神经元并非是指整个神经网络的输入层中神经元和输出层中神经元,而是对于网络中任意相邻的两层,处于网络正向运算下层中的神经元即为输入神经元,处于网络正向运算上层中的神经元即为输出神经元。以卷积神经网络为例,设一个卷积神经网络有L层,K=1,2,...,L-1,对于第K层和第K+1层来说,我们将第K层称为输入层,其中的神经元为所述输入神经元,第K+1层称为输出层,其中的神经元为所述输出神经元。即除最顶层外,每一层都可以作为输入层,其下一层为对应的输出层。
下面结合附图1-11及附图14简要说明本申请的任务处理系统的工作过程:
任务分解装置121可以根据其从任务缓存装置110中获取的基本任务信息,确定该任务的任务类别,其中,任务类别可以包括数据处理任务(包括联合任务、阻塞任务及聚类任务等等)、事件任务和通信任务。
若任务为数据处理任务,如任务为联合任务(union)时,则任务分解装置121可以根据其从任务缓存装置110中获得的任务的基本任务信息,获得任务注册请求,并将任务注册请求发送至状态监控装置130,以进行任务注册。状态监控装置130可以为任务分配一个任务标识,并将任务标识反馈至任务分解装置121。若该任务为阻塞任务,任务分解装置121首先向状态监控装置130发送前置任务查询请求,以确定该阻塞任务之前的任务是否执行结束,并在该任务的前置任务均执行完毕之后,再向状态监控装置130发送任务注册请求。
任务分解装置121可以根据其获得的该任务的任务标识,将该任务的任务状态更新为待调度状态。任务分解装置121还可以根据该任务的基本任务信息,对该任务进行预拆分,以将任务分解为多个作业。同时,任务分解装置121还可以获得该任务的任务调度请求,并将该任务的任务调度请求传送至任务调度装置122。
任务调度装置122能够根据其接收到的任务调度请求,从任务缓存装置110中获取任务的全部任务信息,从任务分解装置121中获取任务的分解信息,从而任务调度装置122能够根据该任务的全部任务信息和分解信息,确定该任务所包含的作业以及各个作业的处理要求等作业信息。进一步地,任务调度装置122可以将任务的各个作业与第二处理器本体340进行匹配,并将匹配成功的作业添加到待调度作业集中,并将该任务的调度成功信号传送至任务分解装置121,任务分解装置121可以根据该调度成功信号将该任务的任务状态从待调度状态更新为调度状态。若同一任务中一个以上的作业与第二处理器本体340匹配失败,则任务分解装置121可以生成调度失败信号,并将调度失败信号传送任务分解装置121,任务分解装置121可以将该任务的任务状态重设为待调度状态,以便在下一次调度过程中,重新发起该任务的调度。
更进一步地,任务调度装置122可以获得待调度作业集中各个作业的目标权重,并根据各个作业的目标权重从该待调度作业集中选定目标作业,获得调度信息。第二处理器300可以根据调度信息、目标作业所属的任务的全部任务信息及分解信息,执行该目标作业。再进一步地,第二处理器本体的控制装置330还可以将作业的作业结束信息发送至状态监控装置130,状态监控装置130可以根据作业的作业结束信息进行异常判断,并在存在异常情况时,生成任务销毁指令,以通知任务分解装置121执行销毁操作。具体工作过程中可参见上文中的描述。
若任务分解装置121根据其接收到的任务的基本任务信息,确定该任务为事件任务,则可以根据该事件任务的基本任务信息获得该事件任务的任务注册请求,并将该事件任务的任务注册请求传送至状态监控装置130。当接收到该状态监控装置130传送的任务标识之后,该任务分解装置121可以将该事件任务的任务状态更新为调度结束状态。进一步地,状态监控装置130可以将事件任务的注册请求的发送时间点传送至第一处理器200。其中,事件任务用于实现任务调度器100与第一处理器200之间的同步。进一步地,任务分解装置还可以检测该事件任务是否触发主机同步信号,若该事件任务触发主机同步信号时,则可以接收第一处理器传送的中断信号,并在中断信号清除之后,再根据事件任务的基本任务信息获得事件任务的任务注册请求,将事件任务的任务注册请求传送至状态监控装置130。
例如,当任务分解装置121根据其接收到的任务的基本任务信息,确定该任务为事件任务,则可以继续判断该事件任务是否触发主机同步信号(event host sync)。若主机同步信号为1,则表明该事件任务触发主机同步信号,此时,第一处理器可以在该事件任务所在的任务队列中位于该事件任务之前的任务均执行结束之后,即获得该事件任务之前的所有任务的调度结束信息时,可以向任务分解装置121发送中断信号,并在一定的等待时间之后,清除该中断信号,并将中断信号的清除信息传送至任务分解装置。任务分解装置可以在中断信号清除之后,再根据事件任务的基本任务信息获得事件任务的任务注册请求,将事件任务的任务注册请求传送至状态监控装置130,并记录事件任务的任务注册请求的发送时间点。进一步地,状态监控装置130可以将事件任务的注册请求的发送时间点传送至第一处理器200。任务分解装置在接收到事件任务的任务标识之后,可以将该事件任务的任务状态更新为调度结束状态,完成该事件任务的调度及处理过程。
若主机同步信号为0,则表明该事件任务未触发主机同步信号,此时,该事件任务可以按照阻塞任务进行任务等待操作。即当该事件任务未触发主机同步信号时,则任务分解装置的依赖关系处理电路可以在确定该事件任务所在的队列中的前置任务均执行完成之后,再调用该注册请求电路,获得该事件任务的任务注册请求,以获得该事件任务的任务标识。进一步地,任务分解装置在接收到事件任务的任务标识之后,可以将该事件任务的任务状态更新为调度结束状态,完成该事件任务的调度及处理过程。本申请实施例中,该事件任务的前置任务的确定过程可参见上文中依赖关系处理电路对任务的处理过程。
若任务为通信任务时,任务缓存装置110可以获取该通信任务的通信描述符,根据该通信任务的描述符等通信信息从全局内存400中获取该通信任务对应的任务模板,并将通信任务的描述符及任务模板对应存储,获得重组后的通信任务。该重组后的通信任务能够被发送至任务分派装置进行分解及调度。具体地,该重组后的通信任务可以在任务分解装置中进行任务注册及分解,获得该重组后的通信任务对应的分解信息。进一步地,该重组后的通信任务可以在任务调度装置中进行调度,获得调度信息。之后,该重组后的通信任务可以被发送至第二处理器进行处理。该重组后的通信任务的任务处理过程与上述的联合任务(union任务)的处理过程一致,具体可参见上文中的描述。
进一步地,任务缓存装置110还可以进一步确定该重组后的通信任务能否发送至任务分派装置,若是,则可以将该重组后的通信任务发送至任务分派装置进行分解调度。例如,任务缓存装置110还可以根据该通信任务的基本任务信息和/或通信信息,确定该重组后的通信任务是否存在前置任务,若该重组后的通信任务不存在前置任务,或其前置任务已经发射至任务分派装置进行处理,则可以将该重组后的通信任务发射至任务分派装置。
进一步地,任务缓存装置在获取该通信任务的描述符的过程中,还可以实时判断获取该通信任务的描述符的过程中是否触发错误信号(ecc信号)。若任务缓存装置在获取该通信任务的描述符的过程中触发错误信号,则可以重新获取该通信任务的描述符。更进一步地,该通信任务的描述符可以包括用于表示其状态的状态标识位,该状态标识位可以用于标识该通信任务的描述符是否存在异常。例如,若任务缓存装置在接收到该通信任务的描述符之后,可以根据该通信任务的描述符,确定该通信任务的描述符存在异常时,则可以将该通信任务标记为失败任务。若该任务缓存装置根据该通信任务的描述符,确定该通信任务的描述符不存在异常时,则可以根据该通信任务的描述符获取该通信任务对应的任务模板。
可选地,在任务缓存装置在根据该通信任务的描述符,获取该通信任务对应的任务模板的过程中,任务缓存装置还可以实时判断该任务模板的获取过程中是否触发错误信号(ecc信号)。若任务缓存装置在获取该通信任务的任务模板的过程中触发错误信号,则可以将通信任务标记为失败任务。
如图12所示,本申请实施例还提供了一种任务处理方法,上述方法包括如下步骤:
S100、任务分派装置120获取一个以上的任务的基本任务信息,分别根据任务的基本任务信息获得各个任务的任务注册请求;
S200、状态监控装置130根据接收到的任务的任务注册请求,为每个任务分配一个任务标识,并将各个任务的任务标识传送至任务分派装置120;
S300、任务分派装置120在接收到任务的任务标识之后,获得任务的分解信息,并根据任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得调度信息;
S400、第二处理器300根据获得的调度信息、目标作业所属的任务的分解信息及全部任务信息,将目标作业所属的任务拆分为多个作业,并根据调度信息执行目标作业。
具体地,任务分派装置120从任务缓存装置110中获取任务的基本任务信息,并根据任务的基本任务信息获得任务的任务注册请求。状态监控装置130根据接收到的任务注册请求,为任务分配一个任务标识,并将任务的任务标识回传给任务分派装置120,以完成任务的注册过程。本申请实施例中,注册完成的任务(即获得任务标识的任务)能够被任务分派装置120进行分解及调度,并进一步发送至第二处理器300进行处理。任务分派装置120在接收到任务的任务标识之后,根据该任务的基本任务信息对该任务进行预拆分,将该任务分为多个作业,获得任务的分解信息。进一步地,任务分派装置120还可以根据任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得调度信息。
可选地,任务分派装置120可以在确定目标作业之后,即将调度信息发送至第二处理器300。第二处理器300能够获取该调度信息执行该目标作业,以完成该目标作业的处理。当完成该目标作业所属的任务中所有作业的调度之后,任务调度器完成一次调度,进入下一次调度。可选地,任务分派装置120可以在获得调度信息之后,可以将该调度信息传送至任务缓存装置和任务分解装置,已获得该目标作业所属的任务的全部任务信息和分解信息,并将该调度信息、该目标作业所属的任务的全部任务信息和分解信息传送至第二处理器300。
本申请实施例中,通过上述的任务调度器,能够实现神经网络等数据量较大数据的调度及处理,减少第一处理器的运算量,提高任务的调度及处理效率,进而提升计算机系统的处理效率。
在一个实施例中,如图13所示,上述步骤S100还包括:
S110、任务分派装置120的任务分解装置121根据任务的基本任务信息确定任务存在前置任务时,向状态监控装置130发送前置任务查询请求;
S120、状态监控装置130根据前置任务查询请求,确定任务的前置任务是否执行完毕,并将查询结果反馈至任务分解装置121;
S130、任务分解装置121还用于在根据查询结果确定任务的前置任务执行完毕之后,再向状态监控装置130发送任务注册请求。
具体地,该基本任务信息中还包含任务的依赖关系信息,任务分解装置121的依赖关系处理电路1211可以根据基本任务信息中的依赖关系信息判断当前任务是否存在前置任务,并在确定该当前任务存在前置任务时,向状态监控装置130发送前置任务查询请求,以确定该当前任务的前置任务是否执行完毕。状态监控装置130的状态缓存电路能够记录各个任务的执行完毕信息,进一步可以根据前置任务查询请求,确定任务的前置任务是否执行完毕,并将查询结果反馈至依赖关系处理电路1211。依赖关系处理电路1211还用于在根据查询结果确定任务的前置任务执行完毕之后,再通过注册请求电路1212向状态监控装置130发送任务注册请求。若依赖关系处理电路1211根据查询结果确定任务的前置任务未执行完毕,则可以暂停该任务的注册,即不会向状态监控装置130发送相应的任务注册请求。这样,只有在当前任务的前置任务执行完毕之后,才执行当前任务的注册过程,可以保证各个任务的执行顺序的正确性,进而保证运算结果的准确性及可靠性。
可选地,任务的基本任务信息中包含任务的作业总数量和每个作业的作业大小;上述步骤S300还包括:
S310、任务分派装置120的任务分解装置121根据任务的作业总数量和各个作业的作业大小,获得任务的分解信息。其中,任务的作业总数量为2n,其中,n为正整数,如任务的作业总数量可以为128、256、1024或2048等等,各个作业的作业大小为处理器字长的整数倍。
在一个实施例中,上述步骤S300还包括如下步骤:
S320、任务分派装置120的任务分解装置121在接收到任务的任务标识之后,向任务分派装置120的任务调度装置122发送任务调度请求;
S330、任务调度装置122接收任务调度请求,并根据任务调度请求获取任务的分解信息及全部任务信息和第二处理器的处理器状态信息;
S340、任务调度装置122根据各个任务的分解信息及全部任务信息和处理器状态信息,分别将任务的各个作业与第二处理器300进行匹配,并将与第二处理器300匹配成功的作业添加至待调度作业集;
S350、任务调度装置122根据待调度作业集中各个作业的目标权重从待调度作业集中选定目标作业,获得调度信息。
具体地,任务调度装置122的第二读写控制电路1220在接收到任务的任务调度请求时,根据任务的任务调度请求,获取任务的分解信息和全部任务信息,以及第二处理器300的处理器状态信息。任务调度装置122的匹配电路1221可以根据任务的全部任务信息及任务分解信息,可以获得该任务的各个作业所需的第二处理器300信息(如处理器类型等信息),根据各个作业的大小获得各个作业所需的处理器的处理能力等信息。第二处理器的处理器状态信息可以包括处理器的类型信息、处理器的运行状态信息(处理器是否空闲)以及处理器的处理能力等信息。这样,任务调度装置122的匹配电路1221可以根据该任务的全部任务信息及任务分解信息,以及处理器状态信息,将任务的各个作业与第二处理器300进行匹配,并将与第二处理器300匹配成功的作业添加至待调度作业集。其中,该待调度作业集可以包括多个任务的作业。任务调度装置的选择电路1222可以根据待调度作业集中各个作业的目标权重从待调度作业集中选定目标作业,获得调度信息,并将调度信息传送至任务缓存装置110及任务分解装置121。其中,该待调度作业集中各个作业的目标权重可以计算获得,当然,该待调度作业集中各个作业的目标权重也可以是预先设置。
在一个实施例中,上述步骤S350还包括如下步骤:
任务调度装置122根据待调度作业集中各个作业的目标权重,确定各个作业的调度优先级;
任务调度装置122根据各个作业的调度优先级,将待调度作业集中调度优先级最高的作业作为目标作业,获得调度信息。
在一个实施例中,待调度作业集的数量为一个以上,每个待调度集用于存储同一作业类别的作业;上述的步骤S350还可以包括如下步骤:
任务调度装置122分别根据每个作业类别对应的待调度作业集中多个作业的期望权重和当前历史权重,确定每个作业类别对应的待调度作业集中各个作业的目标权重;
任务调度装置122将作业类别对应的待调度作业集中目标权重最大的作业作为作业类别的预发射作业;
任务调度装置122根据各个预发射作业的目标权重确定目标作业,获得调度信息。进一步地,若各个预发射作业的目标权重相同时,则选择器1224可以根据各个预发射作业的期望权重确定目标作业。例如,当各个预发射作业的目标权重相同时,任务调度装置122的选择器1224可以将期望权重最大的预发射作业作为目标作业。
在一个实施例中,上述的任务调度装置122任务调度装置122分别根据每个作业类别对应的待调度作业集中多个作业的期望权重和当前历史权重,确定每个作业类别对应的待调度作业集中各个作业的目标权重的步骤,包括:
任务调度装置122分别根据作业类别对应的待调度作业集中各个作业的配置权重,以及作业类别对应的待调度作业集中多个作业的总配置权重,获得作业类别对应的待调度作业集中各个作业的期望权重;其中,各个作业的配置权重可以是该作业所属的任务的基本任务信息中包含配置权重,即各个作业的初始权重。该作业的期望权重可以等于作业的配置权重与该待调度作业集中的总配置权重之比。
任务调度装置122分别根据作业类别对应的待调度作业集中各个作业的期望权重,获得作业类别对应的待调度作业集中各个作业对应的当前历史权重;可选地,第二运算单元1226可以根据各个待调度作业集中各个作业的期望权重,以及预设的映射关系,获得各个作业对应的当前历史权重。
任务调度装置122计算作业类别对应的待调度作业集中各个作业的期望权重和当前历史权重的权重差值,根据权重差值获得各个作业的目标权重。具体地,任务调度装置122能够计算作业类别对应的待调度作业集中各个作业的期望权重和当前历史权重的权重差值,对该权重差值进行量化获得各个作业的目标权重。可选地,作业的目标权重与权重差值呈正比关系,即权重差值越大,则作业的目标权重越大,以保证该作业能够被及时调度。因此,若当前历史权重和期望权重的权重差值越大,则表明该作业的历史调度次数越少,可以通过该权重差值来提高作业的调度优先级。
可选地,作业类别对应的待调度作业集中各个作业的配置权重为作业所属的任务的配置权重,即同一任务中各个作业的配置权重相同。此时,第一运算单元1225只需根据作业所属的任务的配置权重,以及该待调度作业集中多个任务的总配置权重计算获得各个作业的期望权重。即该作业的期望权重可以等于作业所属的任务的配置权重与该待调度作业集中多个任务的总配置权重之比。进一步地,作业的期望权重为作业所属的任务的期望权重。
在一个实施例中,上述的任务调度装置122分别根据作业类别对应的待调度作业集中各个作业的期望权重,获得作业类别对应的待调度作业集中各个作业对应的当前历史权重的步骤,还包括:
任务调度装置122根据各个作业的期望权重确定各个作业对应的延迟因子。具体地,任务调度装置122可以根据各个作业的期望权重以及预设的映射关系,确定各个作业对应的延迟因子。一般地,期望权重越大,延迟因子越小。即作业的期望权重越大,则其调度优先级可能越高。
任务调度装置122根据各个作业的初始历史权重和作业对应的延迟因子,更新作业的初始历史权重,获得作业的当前历史权重。可选地,若一个任务的作业在本次调度中均没有被调度,即该任务的所有作业在本次调度中均没有被选定为目标作业,则任务调度装置122可将该任务的各个作业的初始历史权重与延迟因子的比值作为各个作业的调整因子,并将各个作业的该初始历史权重与其对应的调整因子的差值作为该作业的当前历史权重。若一个任务的作业在本次调度中被调度,即该目标作业属于该任务时,任务调度装置122可以更新该任务的其他作业的历史权重。具体地,任务调度装置122可将该任务的各个作业的初始历史权重与延迟因子的比值作为各个作业的第一调整因子,将延迟因子的最大值与该作业对应的延迟因子的比值作为各个作业的第二调整因子,并根据各个作业的初始历史权重、第一调整因子与第二调整因子计算获得当前历史权重。例如,该当前历史权重=初始历史权重-第一调整因子+第二调整因子。
进一步地,上述方法还包括如下步骤:
任务调度装置122在作业类别对应的待调度作业集中新增同一任务的多个作业,或者同一任务的多个作业均被发射之后,则更新作业类别对应的待调度作业集中各个作业的期望权重和初始历史权重。当该作业为新增的作业时,该作业的初始历史权重即为其配置权重。
在一个实施例中,上述的任务调度装置122根据各个预发射作业的目标权重确定目标作业,获得调度信息的步骤,包括:
任务调度装置122在各个预发射作业的目标权重相同时,根据各个预发射作业的期望权重确定目标作业;
任务调度装置122在各个预发射作业的目标权重不同时,将目标权重最大的预发射作业作为目标作业。
在一个实施例中,上述方法还包括如下步骤:
任务分解装置121在接收到状态监控装置130回传的任务的任务标识之后,将获得任务标识的任务的任务状态更新为待调度状态;
任务分解装置121在接收到任务调度装置122传送的调度成功信号时,将待调度任务的任务状态由待调度状态更新为调度状态;
任务分解装置121在完成任务的调度之后,将当前调度任务的任务状态从调度状态更新为调度结束状态,获得当前调度任务的调度结束信息,并根据当前调度任务的调度结束信息销毁当前调度任务。
在一个实施例中,上述方法还包括如下步骤:
在预设时间内,若任务中的一个以上的作业与第二处理器300未匹配成功时,任务调度装置122获得任务的调度失败信号,并将任务的调度失败信号传送给任务分解装置121;
任务分解装置121在接收到任务调度装置122传送的调度失败信号时,将当任务的任务状态由调度状态设置为待调度状态。
具体地,若在预设时间(如128节拍或256节拍)内,任务中的一个以上的作业与第二处理器300未匹配成功时,则匹配电路1221获得任务的调度失败信号,并将任务的调度失败信号传送给任务分解装置121,以便任务分解装置121的状态控制电路1213根据该调度失败信号,更新该任务的任务状态,以便在下一次调度中重新对该任务进行调度。
在一个实施例中,上述步骤S400还可以包括如下步骤:
S410、第二处理器本体的控制装置330获取所述调度信息、目标作业所属的任务的全部任务信息和分解信息,并根据目标作业所属的任务的全部任务信息和分解信息将目标作业所属的任务拆分为多个作业;
S420、第二处理器本体的控制装置330根据调度信息,将目标作业发送至相应的第二处理器本体340;第二处理器本体340执行接收到的目标作业。
在一个实施例中,上述方法还包括如下步骤:
第二处理器本体的控制装置330确定各个任务的作业接收数量,并将任务的作业接收数量传送至状态监控装置130;
状态监控装置130在确定任务的作业接收数量与预设作业数量相等时,开始接收目标作业所属的任务的各个作业的作业结束信息。可选地,预设作业数量为作业总数量;或者,预设作业数量为2m,其中,m的取值范围为5~10,m为正整数,预设作业数量小于发送至作业总数量。
状态监控装置130将任务的各个作业的作业结束信息传送至第一处理器200。
进一步地,状态监控装置130将任务的各个作业的作业结束信息传送至第一处理器200的步骤,还包括:
状态监控装置130在接收到的作业结束信息的数量达到预设结束信息数量时,按照预设的排列方式对接收到的作业结束信息重新进行排序,并按照重新排序后的顺序将接收到的作业结束信息传送至第一处理器200。
可选地,该预设结束信息数量可以为该任务的作业总数量。此时,当状态缓存电路1331接收到的作业结束信息的数量达到任务的作业总数量时,状态处理电路133可以按照预设的排列方式对接收到的作业结束信息重新进行排序,并按照重新排序后的顺序将接收到的作业结束信息传送至第一处理器200。进一步地,当状态缓存电路1331接收到的作业结束信息的数量达到任务的作业总数量时,状态处理电路可以确定已经接收到该任务的所有作业的作业结束信息,即该任务已经执行完毕。更进一步地,该状态缓存电路1331还用于记录该任务的执行完毕信息。当接收到任务分解装置121的依赖关系处理电路发送的前置任务查询请求时,状态缓存电路1311可以用于根据前置任务查询请求,确定任务的前置任务是否执行完毕,并将查询结果反馈至依赖关系处理电路。
更进一步地,若任务为阻塞任务,上述方法还包括如下步骤:
状态监控装置130在接收到阻塞任务作业结束信息的数量等于阻塞任务的作业总数量,且阻塞任务所属的阻塞区间之前的上一阻塞区间内的所有任务的作业结束信息均传送至第一处理器200之后,再将阻塞任务的多个作业的作业结束信息传送至第一处理器200。
其中,阻塞任务是指调用了阻塞原语把自己阻塞,等待相应的前置任务的结束信息写入指定位置才被唤醒的任务。一个阻塞任务到下一个阻塞任务之间的所有任务为一个阻塞区间。需要说明的是,若任务无需依赖其他任务的处理结果即可执行,可直接将结束信息写入缓存,无需当前任务所处的阻塞区间,以及后续处理。例如,该阻塞任务需要等待其之前的所有任务均执行完毕之后,才可以执行该阻塞任务(该阻塞任务的属性可以标记为wait enable)。或者,在该阻塞任务执行完毕之后,该阻塞任务之后的其他任务才能开始执行,此时,该阻塞任务的属性可以标记为block enable。
在一个实施例中,上述方法还包括如下步骤:
第二处理器本体的控制装置330在作业对应的一个以上第二处理器本体340反馈的信息存在异常时,则将作业的执行状态标记为执行异常,并将作业的执行状态附加于作业的作业结束信息中,作业的作业结束信息传送至状态监控装置130;
状态监控装置130根据作业的作业结束信息判断作业是否存在执行异常;
状态监控装置130在确定作业存在执行异常时,获得任务销毁指令,并将任务销毁指令传送至任务分解装置121;
任务分解装置121根据任务销毁指令销毁执行销毁操作,销毁操作包括销毁存在执行异常的当前作业所属的任务以及销毁存在执行异常的作业所属的任务及作业所属的任务所属的任务队列中的所有任务。
可选地,执行异常包括第一异常情况,任务销毁指令包括第一任务销毁指令;上述方法包括如下步骤:
状态监控装置130在根据作业的作业结束信息确定目标任务存在第一异常情况时,获得第一任务销毁指令,并将第一任务销毁指令传送至任务分解装置121;
任务分解装置121根据第一任务销毁指令终止调度存在执行异常的作业,以及作业之后的所有作业,并获得作业所属的任务的调度结束信息。
进一步地,执行异常包括第二异常情况,任务销毁指令还包括第二任务销毁指令;上述方法还包括如下步骤:
状态监控装置130在根据作业的作业结束信息确定作业所属的任务存在第二异常情况时,则根据作业结束信息获得第二任务销毁指令,并将第二任务销毁指令传送至任务分解装置121;
任务分解装置121在接收到第二任务销毁指令时,则根据第二任务销毁指令终止作业所属的任务及作业所属的任务之后的其他任务的调度;
当作业所属的任务从寄存器中清除之后,任务分派装置120向状态监控装置130发送作业所属的任务之后的其他任务对应的任务注册请求;
状态监控装置130根据作业所属的任务之后的其他各个任务对应的任务注册请求,分别为每个作业所属的任务之后的任务分配一个任务标识,并将各个作业所属的任务之后的任务对应的任务标识传送至任务分派装置120;
当任务分派装置120接收到作业所属的任务之后的各个任务对应的任务标识时,根据作业所属的任务之后的各个任务对应的任务标识,获得作业所属的任务之后的各个任务对应的调度结束信息,以销毁作业所属的任务之后的所有任务。
更进一步地,上述方法还包括如下步骤:
任务分解装置121在接收到任务销毁指令时,获得第一中断信号,并将第一中断信号传送至第一处理器200,之后执行销毁操作;
任务分解装置121在完成销毁操作之后,获得第二中断信号,并将第二中断信号传送至第一处理器200。
本申请实施例中,通过设置上述异常处理机制和中断机制,可以保证任务执行结果的准确性。该异常处理机制和中断机制的工作原理,与上文中的任务调度器中异常处理机制和中断机制的工作原理一致,具体可参见上文中的描述。
在一个实施例中,上述方法还包括如下步骤:
第二处理器本体的控制装置330在接收到作业对应的所有第二处理器本体340反馈的信息时,则获得作业的作业结束信息,并将作业的作业结束信息传送至状态监控装置130。
在一个实施例中,上述方法还包括如下步骤:
若任务为通信任务,任务缓存装置110根据通信任务的描述符获取通信任务对应的任务模板,将通信任务对应的描述符和任务模板对应存储。
具体地,任务缓存装置110中存储有多个通信任务的任务队列,每个任务队列的队列头指针指向通信任务的描述符。任务缓存装置110可以首先根据任务队列的队列头指针获取通信任务的描述符等通信信息,再根据该通信的描述符等通信信息从全局内存400中获取该通信任务对应的任务模板,并将通信任务的描述符及任务模板对应存储,获得重组后的通信任务。该重组后的通信任务能够被发送至任务分派装置进行分解及调度。具体地,该重组后的通信任务可以在任务分解装置中进行任务注册及分解,获得该重组后的通信任务对应的分解信息。进一步地,该重组后的通信任务可以在任务调度装置中进行调度,获得调度信息。之后,该重组后的通信任务可以被发送至第二处理器进行处理。该重组后的通信任务的任务处理过程与上述的联合任务(union任务)的处理过程一致,具体可参见上文中的描述。进一步地,任务缓存装置110还可以进一步该重组后的通信任务能否发送至任务分解装置121,若是,则可以将该重组后的通信任务发送至任务分派装置进行分解调度。
进一步地,任务缓存装置在获取该通信任务的描述符的过程中,还可以实时判断获取该通信任务的描述符的过程中是否触发错误信号(ecc信号)。若任务缓存装置在获取该通信任务的描述符的过程中触发错误信号,则可以重新获取该通信任务的描述符。更进一步地,该通信任务的描述符可以包括用于表示其状态的状态标识位,该状态标识位可以用于标识该通信任务的描述符是否存在异常。例如,若任务缓存装置在接收到该通信任务的描述符之后,可以根据该通信任务的描述符,确定该通信任务的描述符存在异常时,则可以将该通信任务标记为失败任务。若该任务缓存装置根据该通信任务的描述符,确定该通信任务的描述符不存在异常时,则可以根据该通信任务的描述符获取该通信任务对应的任务模板。
可选地,在任务缓存装置在根据该通信任务的描述符,获取该通信任务对应的任务模板的过程中,任务缓存装置还可以实时判断该任务模板的获取过程中是否触发错误信号(ecc信号)。若任务缓存装置在获取该通信任务的任务模板的过程中触发错误信号,则可以将通信任务标记为失败任务。
在一个实施例中,上述方法还包括如下步骤:
若任务为事件任务,任务分解装置在接收到事件任务的任务标识之后,将事件任务的任务状态更新为调度结束状态。
进一步地,上述方法还包括如下步骤:
任务分解装置在事件任务触发主机同步信号时,获取第一处理器传送的中断信号,并在中断信号解除之后,再根据事件任务的基本任务信息获得事件任务的任务注册请求,将所述事件任务的任务注册请求传送至所述状态监控装置,并记录所述事件任务的任务注册请求的发送时间点。
具体地,若任务分解装置121根据其接收到的任务的基本任务信息,确定该任务为事件任务,则可以根据该事件任务的基本任务信息获得该事件任务的任务注册请求,并将该事件任务的任务注册请求传送至状态监控装置130。当接收到该状态监控装置130传送的任务标识之后,该任务分解装置121可以将该事件任务的任务状态更新为调度结束状态。进一步地,状态监控装置130可以将事件任务的注册请求的发送时间点传送至第一处理器200。其中,事件任务用于实现任务调度器100与第一处理器200之间的同步。进一步地,任务分解装置还可以检测该事件任务是否触发主机同步信号,若该事件任务触发主机同步信号时,则可以接收第一处理器传送的中断信号,并在中断信号清除之后,再根据事件任务的基本任务信息获得事件任务的任务注册请求,将事件任务的任务注册请求传送至状态监控装置130。
例如,当任务分解装置121根据其接收到的任务的基本任务信息,确定该任务为事件任务,则可以继续判断该事件任务是否触发主机同步信号(event host sync)。若主机同步信号为1,则表明该事件任务触发主机同步信号,此时,第一处理器可以在该事件任务所在的任务队列中位于该事件任务之前的任务均执行结束之后,即获得该事件任务之前的所有任务的调度结束信息时,可以向任务分解装置121发送中断信号,并在一定的等待时间之后,清除该中断信号,并将中断信号的清除信息传送至任务分解装置。任务分解装置可以在中断信号清除之后,再根据事件任务的基本任务信息获得事件任务的任务注册请求,将事件任务的任务注册请求传送至状态监控装置130,并记录事件任务的任务注册请求的发送时间点。进一步地,状态监控装置130可以将事件任务的注册请求的发送时间点传送至第一处理器200。任务分解装置在接收到事件任务的任务标识之后,可以将该事件任务的任务状态更新为调度结束状态,完成该事件任务的调度及处理过程。若主机同步信号为0,则表明该事件任务未触发主机同步信号,此时,该事件任务可以按照阻塞任务进行任务等待操作。即当该事件任务未触发主机同步信号时,则任务分解装置的依赖关系处理电路可以在确定该事件任务所在的队列中的前置任务均执行完成之后,再调用该注册请求电路,获得该事件任务的任务注册请求,以获得该事件任务的任务标识。进一步地,任务分解装置在接收到事件任务的任务标识之后,可以将该事件任务的任务状态更新为调度结束状态,完成该事件任务的调度及处理过程。本申请实施例中,该事件任务的前置任务的确定过程可参见上文中依赖关系处理电路对任务的处理过程。
应当清楚的是,本申请实施例的任务处理方法中各个步骤的执行过程,与上述任务处理系统中各个装置的工作原理相一致,具体可参见上文中的描述,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (32)
1.一种任务调度器,其特征在于,所述任务调度器连接在第一处理器和第二处理器之间,所述任务调度器包括:
任务缓存装置,用于存储多个任务对应的基本任务信息和全部任务信息;所述基本任务信息至少包括所述任务的配置信息;
任务分派装置,所述任务分派装置与所述任务缓存装置连接,所述任务分派装置用于从所述任务缓存装置中获取一个以上的所述任务的基本任务信息,并分别根据各个所述任务的基本任务信息获得所述任务的任务注册请求;以及
状态监控装置,所述状态监控装置连接所述任务分派装置及所述第二处理器,所述状态监控装置用于根据接收到的各个所述任务的任务注册请求,为各个所述任务分配一个任务标识,并将各个所述任务的任务标识回传给所述任务分派装置;
其中,所述任务分派装置还用于在接收到所述任务的任务标识之后,获得所述任务的分解信息,并根据所述任务的分解信息及所述第二处理器的处理器状态信息确定目标作业,获得调度信息,并将所述调度信息发送至所述第二处理器;
所述任务分派装置还用于根据各作业的配置权重和总权重,确定各所述作业的期望权重;根据所述作业的期望权重以及所述作业对应的延迟因子,确定所述作业的当前历史权重;根据所述作业的所述期望权重以及所述当前历史权重,确定所述作业的目标权重;将各所述作业的目标权重最大的作业作为所述目标作业。
2.根据权利要求1所述的任务调度器,其特征在于,所述任务分派装置包括:
任务分解装置,所述任务分解装置连接所述任务缓存装置及所述状态监控装置,所述任务分解装置用于从所述任务缓存装置中获取所述任务的基本任务信息,并根据所述任务的基本任务信息获得所述任务的任务注册请求;当接收到所述状态监控装置回传的所述任务的任务标识时,分别获得具有所述任务标识的所述任务的分解信息及任务调度请求;以及
任务调度装置,所述任务调度装置连接所述任务缓存装置、所述任务分解装置及所述第二处理器,所述任务调度装置用于在接收到具有所述任务标识的所述任务的任务调度请求时,根据所述第二处理器的处理器状态信息及各个所述任务的分解信息确定目标作业,获得调度信息,并将所述调度信息传送至所述第二处理器。
3.根据权利要求2所述的任务调度器,其特征在于,所述任务分解装置包括:
第一读写控制电路,所述第一读写控制电路连接所述任务缓存装置,所述任务缓存装置还用于在所述任务缓存装置中存在处于等待发射状态的任务时,获得任务使能信号;所述第一读写控制电路用于在接收到所述任务缓存装置传送的任务使能信号时,从所述任务缓存装置中获取所述任务的基本任务信息;
注册请求电路,所述注册请求电路连接所述第一读写控制电路,用于根据所述任务的基本任务信息获得所述任务的任务注册请求,将所述任务注册请求传送至所述状态监控装置;以及
数据分割器,所述数据分割器连接所述注册请求电路,用于在接收到所述状态监控装置传送的所述任务的任务标识之后,根据具有所述任务标识的所述任务的基本信息,分别将具有所述任务标识的所述任务拆分为多个作业,获得各个所述任务的分解信息。
4.根据权利要求3所述的任务调度器,其特征在于,所述任务的基本任务信息中包含所述任务的作业总数量和每个作业的作业大小;
所述数据分割器用于根据所述任务的作业总数量和各个作业的作业大小,获得各个所述任务的分解信息;
其中,每个所述任务的作业总数量为2n,其中,n为正整数;每个所述作业的所述作业大小为处理器字长的整数倍。
5.根据权利要求3所述的任务调度器,其特征在于,所述任务分解装置还包括状态控制电路,所述状态控制电路连接所述注册请求电路和所述任务调度装置;
所述状态控制电路用于在接收到所述状态监控装置回传的所述任务的任务标识之后,将具有所述任务标识的所述任务的任务状态更新为待调度状态;在接收到所述状态监控装置回传的所述任务的任务标识之后,获得处于所述待调度状态的任务的任务调度请求,并将处于所述待调度状态的任务的任务调度请求传送至任务调度装置;
所述状态控制电路还用于在接收到所述任务调度装置传送的调度成功信号时,将所述任务的任务状态由待调度状态更新为调度状态;在完成所述任务的调度之后,将所述任务的任务状态从调度状态更新为调度结束状态,获得所述任务的调度结束信息,并根据所述任务的调度结束信息销毁所述任务;
所述状态控制电路还用于在接收到所述任务调度装置传送的调度失败信号时,将所述任务的任务状态设置为待调度状态。
6.根据权利要求3所述的任务调度器,其特征在于,所述任务分解装置还包括依赖关系处理电路,所述依赖关系处理电路连接所述第一读写控制电路和所述状态监控装置;
所述依赖关系处理电路用于在根据所述任务的基本任务信息确定所述任务存在前置任务时,向所述状态监控装置发送前置任务查询请求;
所述状态监控装置还用于根据所述前置任务查询请求,确定所述任务的前置任务是否执行完毕,并将查询结果反馈至所述依赖关系处理电路;
所述依赖关系处理电路还用于在根据所述查询结果确定所述任务的前置任务执行完毕之后,再通过所述注册请求电路向所述状态监控装置发送任务注册请求。
7.根据权利要求3所述的任务调度器,其特征在于,若所述任务为事件任务时,所述注册请求电路还用于在所述事件任务触发主机同步信号时,获取第一处理器传送的中断信号,并在所述中断信号解除之后,再根据所述事件任务的基本任务信息获得所述事件任务的任务注册请求,将所述事件任务的任务注册请求传送至所述状态监控装置,并记录所述事件任务的任务注册请求的发送时间点。
8.根据权利要求2所述的任务调度器,其特征在于,所述任务调度装置包括:
第二读写控制电路,所述第二读写控制电路连接所述任务缓存装置和所述任务分解装置,所述第二读写控制电路用于在接收到所述任务的任务调度请求时,根据所述任务的任务调度请求,获取所述任务的分解信息和全部任务信息,以及所述第二处理器的处理器状态信息;
匹配电路,所述匹配电路与所述第二读写控制电路连接,用于根据各个所述任务的分解信息和全部任务信息,以及所述处理器状态信息,分别将所述任务的各个作业与所述第二处理器进行匹配,并将与所述第二处理器匹配成功的所述作业添加至待调度作业集;以及
选择电路,所述选择电路与所述匹配电路连接,用于根据所述待调度作业集中各个作业的目标权重从所述待调度作业集中选定目标作业,获得调度信息,并将所述调度信息传送至所述任务缓存装置及所述任务分解装置。
9.根据权利要求8所述的任务调度器,其特征在于,所述匹配电路还用于在预设时间内,所述任务中的一个以上的作业与所述第二处理器未匹配成功时,则获得所述任务的调度失败信号,并将所述任务的调度失败信号传送给所述任务分解装置。
10.根据权利要求8所述的任务调度器,其特征在于,所述选择电路包括:
运算器,所述运算器连接所述匹配电路,所述运算器用于根据所述待调度作业集中各个所述作业的目标权重,并根据所述待调度作业集中各个所述作业的目标权重确定所述各个所述作业的调度优先级;以及
选择器,所述选择器连接所述运算器,所述选择器用于根据所述各个所述作业的调度优先级,将所述待调度作业集中调度优先级最高的作业作为所述目标作业,获得调度信息,并将调度成功信息传送至所述任务缓存装置及所述任务分解装置。
11.根据权利要求8所述的任务调度器,其特征在于,所述待调度作业集的数量为一个以上,每个所述待调度作业集用于存储同一作业类别的作业;所述选择电路包括:
运算器,所述运算器连接所述匹配电路,所述运算器用于分别根据每个所述作业类别对应的待调度作业集中各个作业的期望权重和当前历史权重,确定每个所述作业类别对应的待调度作业集中各个作业的目标权重,并将所述作业类别对应的待调度作业集中目标权重最大的所述作业作为所述作业类别的预发射作业;以及
选择器,所述选择器连接所述运算器,所述选择器用于根据各个所述预发射作业的目标权重确定所述目标作业,获得调度信息,并将所述调度信息传送至所述任务缓存装置及所述任务分解装置。
12.根据权利要求11所述的任务调度器,其特征在于,所述运算器包括:
第一运算单元,用于根据所述作业类别对应的待调度作业集中各个作业的配置权重,以及所述作业类别对应的待调度作业集中多个作业的总配置权重,获得所述作业类别对应的待调度作业集中各个作业的期望权重;
第二运算单元,所述第二运算单元连接所述第一运算单元,所述第二运算单元用于根据所述作业类别对应的待调度作业集中各个所述作业的期望权重,获得所述作业类别对应的待调度作业集中各个所述作业对应的当前历史权重;
第三运算单元,所述第三运算单元连接所述第二运算单元,用于计算所述作业类别对应的待调度作业集中各个所述作业的期望权重和当前历史权重的权重差值,根据所述权重差值获得各个作业的目标权重,并将所述作业类别对应的待调度作业集中目标权重最大的所述作业作为所述作业类别的预发射作业。
13.根据权利要求12所述的任务调度器,其特征在于,所述作业类别对应的待调度作业集中各个作业的配置权重为所述作业所属的任务的配置权重,所述作业的期望权重为所述作业所属的任务的期望权重。
14.根据权利要求12所述的任务调度器,其特征在于,所述第二运算单元还包括:
延迟子单元,所述延迟子单元与所述第一运算单元连接,用于根据各个所述作业的期望权重确定各个所述作业对应的延迟因子;
更新子单元,所述更新子单元连接所述延迟子单元和所述第一运算单元,用于根据各个所述作业的初始历史权重和所述作业对应的延迟因子,获得所述作业的当前历史权重。
15.根据权利要求11所述的任务调度器,其特征在于,所述选择器还用于在各个所述预发射作业的目标权重相同时,根据各个所述预发射作业的期望权重确定所述目标作业;在各个所述预发射作业的目标权重不同时,将目标权重最大的所述预发射作业作为所述目标作业。
16.根据权利要求2所述的任务调度器,其特征在于,所述状态监控装置包括:
任务注册电路,所述任务注册电路连接所述任务分解装置;所述任务注册电路用于接收所述任务的任务注册请求,根据所述任务的任务注册请求为所述任务分配任务标识,并将所述任务的任务标识回传给所述任务分解装置;
校验电路,所述校验电路连接所述任务分解装置,所述校验电路用于获取所述任务分解装置传送的所述任务包含的作业总数量,以及所述第二处理器传送的所述任务的作业接收数量,并根据所述任务的作业总数量和所述任务的作业接收数量获得分派完成指令;以及
状态处理电路,所述状态处理电路连接所述校验电路和第一处理器,所述状态处理电路用于根据所述分派完成指令接收所述任务的各个作业的作业结束信息,并将所述任务的各个作业的作业结束信息传送至所述第一处理器。
17.根据权利要求16所述的任务调度器,其特征在于,所述校验电路包括比较器;
所述比较器用于获取所述第二处理器传送的所述任务的作业接收数量以及预设作业数量,并在所述第二处理器传送的所述任务的作业接收数量与预设作业数量相等时,获得所述分派完成指令;
其中,所述预设作业数量为所述任务的作业总数量;或者,所述预设作业数量为2m,其中,m的取值范围为5~10,m为正整数,所述预设作业数量小于发送至所述任务的作业总数量。
18.根据权利要求16所述的任务调度器,其特征在于,所述状态处理电路包括状态缓存电路,所述状态缓存电路连接所述校验电路和所述第一处理器;
所述状态缓存电路用于根据所述分派完成指令接收所述任务的各个作业的作业结束信息,在接收到的作业结束信息的数量达到预设结束信息数量时,按照预设的排列方式对所述接收到的作业结束信息重新进行排序,并按照重新排序后的顺序将所述接收到的作业结束信息传送至所述第一处理器。
19.根据权利要求16所述的任务调度器,其特征在于,所述状态处理电路包括状态缓存电路,所述状态缓存电路连接所述校验电路和所述第一处理器;
若所述任务为阻塞任务时,所述状态缓存电路用于在所述接收到所述阻塞任务的作业结束信息的数量等于所述阻塞任务的作业总数量,且所述阻塞任务所属的阻塞区间之前的上一阻塞区间内的所有任务的作业结束信息均传送至所述第一处理器之后,再将所述阻塞任务的多个作业的作业结束信息传送至所述第一处理器。
20.根据权利要求18或19所述的任务调度器,其特征在于,所述状态处理电路还包括异常处理电路,所述任务分解装置还包括任务销毁电路,所述异常处理电路连接所述任务销毁电路;
所述第二处理器用于将所述作业的作业结束信息传送至所述异常处理电路;
所述异常处理电路用于根据所述作业的作业结束信息判断所述作业是否存在执行异常,并在所述作业存在执行异常时,获得任务销毁指令,并将所述任务销毁指令传送至所述任务销毁电路;
所述任务销毁电路用于根据所述任务销毁指令销毁执行销毁操作,所述销毁操作包括销毁存在执行异常的作业所属的任务以及销毁存在执行异常的作业所属的任务及所述作业所属的任务对应的任务队列中的所有任务。
21.根据权利要求20所述的任务调度器,其特征在于,所述执行异常包括第一异常情况和第二异常情况,所述任务销毁指令包括第一任务销毁指令和第二任务销毁指令;
所述异常处理电路用于在根据所述作业的作业结束信息确定存在第一异常情况时,获得第一任务销毁指令,并将所述第一任务销毁指令传送至所述任务销毁电路,所述任务销毁电路根据所述第一任务销毁指令终止调度所述存在执行异常的作业,以及所述作业之后的所有作业,获得所述作业所属的任务的调度结束信息;
所述异常处理电路还用于在根据所述作业的作业结束信息确定存在第二异常情况时,获得所述第二任务销毁指令,并将所述第二任务销毁指令传送至所述任务销毁电路,所述任务销毁电路用于根据所述第二任务销毁指令销毁所述作业所属的任务及所述作业所属的任务之后的所有任务。
22.根据权利要求21所述的任务调度器,其特征在于,所述任务调度器还包括寄存器堆,所述寄存器堆连接至所述任务分解装置;
所述任务销毁电路还用于根据所述第二任务销毁指令销毁所述作业所属的任务及所述作业所属的任务之后的所有任务时,具体用于执行如下步骤:
根据所述第二任务销毁指令终止所述作业所属的任务及所述作业所属的任务之后的其他任务的调度,向所述寄存器堆发送任务清除请求;
所述寄存器堆用于根据接收到的任务清除请求,将所述作业所属的任务从所述寄存器堆中清除,并将清除结束信息传送至所述任务销毁电路;
所述任务销毁电路还用于在接收到所述清除结束信息之后,向状态监控装置发送所述作业所属的任务之后的各个所述任务对应的任务注册请求,在接收到所述状态监控装置反馈的所述作业所属的任务之后的各个所述任务对应的任务标识之后,根据各个所述作业所属的任务对应的任务标识,获得各个所述作业所属的任务对应的调度结束信息,以销毁所述作业所属的任务之后的所有任务。
23.根据权利要求20所述的任务调度器,其特征在于,所述任务销毁电路还用于在接收到所述任务销毁指令时,获得第一中断信号,并将所述第一中断信号传送至第一处理器,之后执行销毁操作;在完成所述销毁操作之后,获得第二中断信号,并将所述第二中断信号传送至第一处理器。
24.根据权利要求1-19任一项所述的任务调度器,其特征在于,所述多个任务以任务队列的方式进行存储,所述任务缓存装置还用于监测各个任务队列的队列状态,当所述任务队列的队列头指针与队列尾指针不相同,且所述任务缓存装置的剩余存储空间大于零时,则向全局内存发送数据读取请求,以向所述任务缓存装置存入新的任务。
25.根据权利要求24所述的任务调度器,其特征在于,若所述任务为通信任务时,所述任务缓存装置还用于根据所述通信任务的描述符获取所述通信任务对应的任务模板,将所述通信任务对应的描述符和任务模板对应存储。
26.一种任务处理系统,其特征在于,包括:
第一处理器;
全局内存,所述全局内存连接所述第一处理器,所述全局内存用于存储有多个任务队列;
任务调度器,所述任务调度器为上述权利要求1-25任一项所述的任务调度器,所述任务调度器连接所述全局内存,所述任务调度器的任务缓存装置连接所述全局内存,能够从所述全局内存的任务队列中获取所述任务的基本任务信息和全部任务信息;以及
第二处理器,所述第二处理器连接所述任务调度器,所述第二处理器能够获取所述任务的全部任务信息、所述任务的分解信息及调度信息,并根据所述任务的全部任务信息、所述任务的分解信息及调度信息执行所述任务,并将所述任务的执行状态信息通过所述任务调度器传送至所述第一处理器。
27.根据权利要求26所述的任务处理系统,其特征在于,所述第二处理器包括多个第二处理器本体以及第二处理器本体的控制装置,多个所述第二处理器本体均连接至所述第二处理器本体的控制装置;
所述第二处理器本体的控制装置用于在接收到所述调度信息时,根据接收到的所述任务调度器传送的所述任务的分解信息及所述全部任务信息,将所述任务拆分为多个作业,并根据所述调度信息将所述目标作业发送至相应的第二处理器本体;
所述第二处理器本体用于执行接收到的所述目标作业。
28.根据权利要求26所述的任务处理系统,其特征在于,所述第二处理器本体的控制装置还用于在接收所述调度信息时,为所述目标作业分配一个作业标识;当接收到所述目标作业对应的所有第二处理器本体反馈的信息时,则获得所述目标作业的作业结束信息,并将所述目标作业的作业结束信息传送至所述状态监控装置,销毁所述目标作业对应的作业标识。
29.根据权利要求26所述的任务处理系统,其特征在于,所述第二处理器本体的控制装置还用于在所述目标作业对应的一个以上第二处理器本体反馈的信息存在异常时,则将所述目标作业的执行状态标记为执行异常,所述目标作业的执行状态附加在所述目标作业的作业结束信息中;
所述状态监控装置能够根据所述目标作业的作业结束信息中的目标作业的执行状态,获得任务销毁指令。
30.根据权利要求26所述的任务处理系统,其特征在于,每个所述第二处理器本体均包括运算单元和控制器单元,所述运算单元包括主处理电路和多个从处理电路;
所述控制器单元用于获取数据、机器学习模型以及计算指令;
所述控制器单元还用于解析所述计算指令得到多个运算指令,并将所述多个运算指令以及所述数据发送给所述主处理电路;
所述主处理电路用于对所述数据以及所述主处理电路与所述多个从处理电路之间传输的数据和运算指令执行前序处理;
所述多个从处理电路用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
所述主处理电路还用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
31.根据权利要求26所述的任务处理系统,其特征在于,多个第二处理器本体形成多个处理器集群,每个处理器集群均对应设置有共享存储;所述任务处理系统还包括多个与所述共享存储连接的DMA;
所述处理器集群中的各个所述第二处理器本体均通过所述DMA连接至所述处理器集群对应的共享存储;
各个所述共享存储通过所述DMA连接所述任务调度器和/或所述全局内存,各个所述共享存储之间通过所述DMA连接。
32.一种任务处理方法,其特征在于,所述方法包括如下步骤:
任务分派装置获取一个以上的任务的基本任务信息,分别根据所述任务的基本任务信息获得各个所述任务的任务注册请求;所述基本任务信息至少包括所述任务的配置信息;
状态监控装置根据接收到的所述任务的任务注册请求,为每个所述任务分配一个任务标识,并将各个所述任务的任务标识传送至所述任务分派装置;
所述任务分派装置在接收到所述任务的任务标识之后,获得所述任务的分解信息,并根据所述任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得调度信息;其中,所述任务分派装置根据各作业的配置权重和总权重,确定各所述作业的期望权重;根据所述作业的期望权重以及所述作业对应的延迟因子,确定所述作业的当前历史权重;根据所述作业的所述期望权重以及所述当前历史权重,确定所述作业的目标权重;将各所述作业的目标权重最大的作业作为所述目标作业;
所述第二处理器根据所述调度信息获取所述调度信息、所述目标作业所属的任务的分解信息及全部任务信息,将所述目标作业所属的任务拆分为多个作业,并根据所述调度信息执行所述目标作业。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211639153.1A CN116149810A (zh) | 2018-10-10 | 2018-10-10 | 任务调度装置及任务调度方法 |
CN201811180136.XA CN111026521B (zh) | 2018-10-10 | 2018-10-10 | 任务调度器、任务处理系统及任务处理方法 |
PCT/CN2019/110273 WO2020073938A1 (zh) | 2018-10-10 | 2019-10-10 | 任务调度器、任务处理系统及任务处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811180136.XA CN111026521B (zh) | 2018-10-10 | 2018-10-10 | 任务调度器、任务处理系统及任务处理方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211639153.1A Division CN116149810A (zh) | 2018-10-10 | 2018-10-10 | 任务调度装置及任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111026521A CN111026521A (zh) | 2020-04-17 |
CN111026521B true CN111026521B (zh) | 2023-07-14 |
Family
ID=70192400
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211639153.1A Pending CN116149810A (zh) | 2018-10-10 | 2018-10-10 | 任务调度装置及任务调度方法 |
CN201811180136.XA Active CN111026521B (zh) | 2018-10-10 | 2018-10-10 | 任务调度器、任务处理系统及任务处理方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211639153.1A Pending CN116149810A (zh) | 2018-10-10 | 2018-10-10 | 任务调度装置及任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN116149810A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113835849A (zh) * | 2020-06-24 | 2021-12-24 | 上海寒武纪信息科技有限公司 | 任务处理系统及方法 |
CN112115202A (zh) * | 2020-09-18 | 2020-12-22 | 北京人大金仓信息技术股份有限公司 | 集群环境下的任务分发方法和装置 |
CN112486656B (zh) * | 2020-12-10 | 2022-12-16 | 上海创远仪器技术股份有限公司 | 实现无线电离线任务调度和数据下载的方法 |
TWI823655B (zh) * | 2022-11-01 | 2023-11-21 | 大陸商星宸科技股份有限公司 | 適用於智慧處理器的任務處理系統與任務處理方法 |
CN116954954B (zh) * | 2023-09-20 | 2024-07-09 | 摩尔线程智能科技(北京)有限责任公司 | 一种多任务队列处理的方法、装置、存储介质及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929718A (zh) * | 2012-09-17 | 2013-02-13 | 江苏九章计算机科技有限公司 | 一种基于任务调度的分布式gpu计算机系统 |
CN103729257A (zh) * | 2012-10-16 | 2014-04-16 | 阿里巴巴集团控股有限公司 | 一种分布式并行计算方法以及系统 |
CN104301130A (zh) * | 2013-07-17 | 2015-01-21 | 腾讯科技(深圳)有限公司 | 监控数据采集方法和系统及任务分发服务器和采集装置 |
CN107291547A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种任务调度处理方法、装置及系统 |
CN107453929A (zh) * | 2017-09-22 | 2017-12-08 | 中国联合网络通信集团有限公司 | 集群系统自构建方法、装置及集群系统 |
US9898347B1 (en) * | 2017-03-15 | 2018-02-20 | Sap Se | Scaling computing resources in a cluster |
CN107846371A (zh) * | 2017-10-31 | 2018-03-27 | 广东电网有限责任公司电力调度控制中心 | 一种多媒体业务QoE资源分配方法 |
-
2018
- 2018-10-10 CN CN202211639153.1A patent/CN116149810A/zh active Pending
- 2018-10-10 CN CN201811180136.XA patent/CN111026521B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929718A (zh) * | 2012-09-17 | 2013-02-13 | 江苏九章计算机科技有限公司 | 一种基于任务调度的分布式gpu计算机系统 |
CN103729257A (zh) * | 2012-10-16 | 2014-04-16 | 阿里巴巴集团控股有限公司 | 一种分布式并行计算方法以及系统 |
CN104301130A (zh) * | 2013-07-17 | 2015-01-21 | 腾讯科技(深圳)有限公司 | 监控数据采集方法和系统及任务分发服务器和采集装置 |
CN107291547A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种任务调度处理方法、装置及系统 |
US9898347B1 (en) * | 2017-03-15 | 2018-02-20 | Sap Se | Scaling computing resources in a cluster |
CN107453929A (zh) * | 2017-09-22 | 2017-12-08 | 中国联合网络通信集团有限公司 | 集群系统自构建方法、装置及集群系统 |
CN107846371A (zh) * | 2017-10-31 | 2018-03-27 | 广东电网有限责任公司电力调度控制中心 | 一种多媒体业务QoE资源分配方法 |
Non-Patent Citations (2)
Title |
---|
TRIS: A Fast and Accurate Identifiers Splitting and Expansion Algorithm;Latifa Guerrouj;《2012 19th Working Conference on Reverse Engineering》;20121220;103-112 * |
基于动态任务调度的STDS算法设计研究;刘正;《智能系统学报》;20150415(第02期);162-170 * |
Also Published As
Publication number | Publication date |
---|---|
CN116149810A (zh) | 2023-05-23 |
CN111026521A (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026521B (zh) | 任务调度器、任务处理系统及任务处理方法 | |
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
US20240211149A1 (en) | Scaling out architecture for dram-based processing unit (dpu) | |
CN103593242B (zh) | 基于Yarn框架的资源共享控制系统 | |
CN111026518B (zh) | 任务调度方法 | |
CN110990154B (zh) | 一种大数据应用优化方法、装置及存储介质 | |
US20230136661A1 (en) | Task scheduling for machine-learning workloads | |
CN104123304A (zh) | 数据驱动的并行排序系统和方法 | |
CN102135901A (zh) | 带有动态数量工作者的并行查询引擎 | |
US20200133728A1 (en) | Data based scheduling for horizontally scalable clusters | |
CN111026540B (zh) | 任务处理方法、任务调度器和任务处理装置 | |
CN111026539B (zh) | 通信任务处理方法、任务缓存装置及存储介质 | |
CN112970037B (zh) | 用于实施神经网络应用的多芯片系统、适用于多芯片系统的数据处理方法、和非暂时性计算机可读介质 | |
CN114730273A (zh) | 虚拟化设备和方法 | |
CN111026523A (zh) | 任务调度控制方法、任务调度器及任务处理装置 | |
WO2020073938A1 (zh) | 任务调度器、任务处理系统及任务处理方法 | |
CN111026522A (zh) | 任务调度装置、任务调度器和任务处理装置 | |
CN111026514B (zh) | 任务调度方法 | |
CN106537321A (zh) | 存取文件的方法、装置和存储系统 | |
CN111026517B (zh) | 任务分解装置及任务调度器 | |
KR20220010036A (ko) | 메모리 관리 방법 및 관련 제품 | |
CN110413562B (zh) | 一种具有自适应功能的同步系统和方法 | |
CN111026515B (zh) | 状态监控装置、任务调度器及状态监控方法 | |
KR20220107616A (ko) | 추론 태스크들을 병렬적으로 처리하는 가속기 및 이의 동작 방법 | |
CN111837104A (zh) | 一种在多个处理器之间调度软件任务的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |