家居专利数据库

计算机实现的任务调度方法与流程

发布日期:2024-08-21 浏览次数:

本发明涉及一种计算机实现的任务调度方法。本发明进一步涉及一种任务调度设备、数据处理设备、飞行器、计算机程序和计算机可读数据载体。背景技术:1、计算机可以具有不同的计算单元集合,即中央处理单元(cpu)、现场可编程门阵列(fpga)或集成电路(ic)、或上述的组合,其都能够实现例如相同的加密函数,例如对一段数据进行签名、验证签名或安全密钥交换。在某些情况下,计算机可以接收大量请求以执行此类函数。2、多核处理考虑在多个核上分布计算任务的任务。这里的关键问题是何时以及在哪个核上启动计算线程、任务或子任务,使得特定的效用(例如,总计算时间、能量)被优化。硬件加速处理实现执行特定任务所需的子函数的专用硬件的设计。这里的目标是标识将从硬件加速中受益最多的函数并且将它们高效地实现和集成到整个计算架构中。技术实现思路1、本发明的目的是提供一种改进的任务调度方法,特别是一种具有不同计算单元的异构计算环境。2、为了实现这个目的,本发明提供了一种根据权利要求1所述的计算机实现的任务调度方法。任务调度设备、数据处理设备、飞行器、计算机程序和计算机可读数据载体是并行权利要求的主题。3、本发明的有利实施例是从属权利要求的主题。4、在一个方面中,本发明提供了一种计算机实现的任务调度方法,所述方法用于在具有多个计算硬件组件的数据处理设备中使用,并且用于在给定时间t∈tact处可用且被配置成执行计算任务中的任何一个的所述计算硬件组件的集合a[t]之中在给定时间t∈tact处调度计算任务的集合r[t],tact是每个长度为δt的离散时间间隔的集合,每个计算任务与对应的任务质量类别c∈c相关联,c是任务质量类别的集合,每个任务质量类别c∈c和每个计算硬件组件与根据δt的对应的处理时间值tproc相关联,相关联的处理时间值tproc指示通过对应的计算硬件组件来处理对应的类别c∈c的任何一个计算任务的持续时间,每个任务质量类别c∈c和每个计算硬件组件进一步与对应的效用值uproc相关联,相关联的效用值uproc指示通过对应的计算硬件组件来处理对应的类别c∈c的任何一个计算任务而引起的成本或添加值,该方法包括:5、a)将每个任务质量类别c∈c与根据δt的对应的计算时间限制值dlimit相关联;6、b)在给定时间t∈tact处,针对每个计算任务r∈r[t]和每个硬件组件a∈a[t]来定义对应的决策变量xra[t]∈{0,1},其中,在每个任务r∈r[t]至多可分配给一个计算硬件组件a∈a[t]并且每个计算硬件组件a∈a[t]至多被指派有一个计算任务r∈r[t]的约束下,如果所述计算任务r∈r[t]被分配给计算硬件组件a∈a[t],则xra=1,否则xra=0;7、c)在给定时间t∈tact处,鉴于cr∈c是r∈r[t]的相关联的任务质量类别c,通过求解最大化问题来确定决策变量数据x[t],对于所有r∈r[t]和a∈a[t],该最大化问题包括cr∈c和a∈a[t]的相关联的效用值uproc,根据以下条件:8、对于所有r∈r[t],9、其中,x[t]∈f[t],f[t]是在给定时间t∈tact处满足步骤b)中的约束的所有决策变量数据的集合,是cr∈c和a∈a[t]的相关联的处理时间tproc,并且是cr∈c的相关联的计算时间限制值dlimit;以及10、d)在给定时间t∈tact处,基于所确定的决策变量数据x[t]在计算硬件组件(12)的集合a[t]之中调度计算任务(14)的集合r[t]。11、优选地,步骤c)进一步包括:12、c1)在给定时间t∈tact处,根据下式来求解最大化问题:13、14、其中,是cr∈c和a∈a[t]的相关联的效用值uproc。15、优选地,步骤c)进一步包括:16、c2)在给定时间t∈tact处,将二分匹配问题求解为最大化问题。17、优选地,步骤c)进一步包括:18、c3)在给定时间t∈tact处,根据下式来求解二分匹配问题:19、20、其中,是cr∈c和a∈a[t]的相关联的效用值uproc,是cr∈c和a∈a[t]的相关联的处理时间tproc,是cr∈c的相关联的计算时间限制值dlimit,并且是根据每δt的cr∈c的虚拟队列变量。21、优选地,步骤c)进一步包括:22、c4)在给定时间t∈tact处,根据下式为每个类别cr∈c来迭代地计算根据每δt的相关联的虚拟队列变量23、24、其中,λ≥0对应于迭代的调谐参数。25、优选地,相关联的计算时间限制值dlimit对应于通过数据处理设备中的每个计算硬件组件来处理对应类别c∈c的任何一个计算任务的平均持续时间。26、优选地,相关联的效用值uproc对应于指示在对应的计算硬件组件上具有对应类别c∈c的每个计算任务的优先级的相关联的优先级值pproc。27、优选地,相关联的效用值uproc对应于指示在数据处理设备中的每个计算硬件组件上具有对应类别c∈c的每个计算任务的优先级的相关联的优先级值pproc。28、优选地,每个计算任务包括加密计算函数。29、在另一方面中,本发明提供了一种任务调度设备,其包括用于执行根据前述实施例中的任一项所述的方法的装置。30、在另一方面中,本发明提供一种数据处理设备,其包括任务调度设备和多个计算硬件组件。31、优选地,多个计算硬件组件包括cpu、gpu、fpga、ic等中的一个或多个。32、优选地,多个计算硬件组件中的至少两个计算硬件组件对于至少一个任务质量类别c∈c具有不同的对应的处理时间值tproc和/或不同的对应的效用值uproc。33、在另一方面中,本发明提供了一种飞行器,特别是航空器,包括任务调度设备和/或数据处理设备。34、在另一方面中,本发明提供了一种包括指令的计算机程序,当程序由计算机执行时,使计算机执行根据前述实施例中的任一项所述的方法。35、在另一方面中,本发明提供一种其上存储有计算机程序的计算机可读数据载体。36、本发明的实施例优选地具有以下优点和效果:37、与传统的多核处理器相比,硬件加速器(fpga或ic)能够具有若干优点:它们能够显著地改进针对特定任务的性能和能耗。它们具有实现流水线结构的潜力,这允许更高的任务吞吐量。此外,它们能够提供密码例程的可信实施方式,因为它们不像软件那样容易地被破坏。另一方面,到加速器的数据传输经常形成瓶颈,该瓶颈可能减慢其使用、忽略或甚至抵消硬件实施方式的益处。本发明的优选实施例的优点是通过考虑cpu、fpga和ic的不同实施方式选项的属性来利用可用的计算能力。通过在正确的时间点处将任务指派给正确的硬件段,能够减少总体任务吞吐量和/或能耗。38、本发明的优选实施例可以包括与所有相关联的cpu、fpga和ic交互以标识它们的计算状态的计算块、决定将在哪个设备上执行下一个任务的决策例程、以及将任务传输到相关硬件段的接口。39、可以在用于加密函数的任务调度器中考虑本发明的优选实施例。优选实施例能够在“后量子”(即,量子安全)密码学的领域中使用,但是也能够扩展到经典密码学。因此,本发明的优选实施例可以涉及硬件-软件协同设计、硬件加速和多核计算的领域,但是在密码学领域中。优选地,本发明的实施例适用于具有用于加密函数的硬件加速的任何产品。本发明的优选实施例针对在航空器的电子舱中或在地面站对应物的云中的加密函数。它们可以例如在航空器数据平台中实现。40、现在参考附图更详细地解释本发明的实施例,其中:41、图1示出了数据处理设备的实施例;42、图2示出了计算机实现的任务调度方法的实施例;43、图3示出了航空系统的实施例;44、图4示出了图3的系统的服务器,45、图5示出了对称密钥交换的过程;46、图6示出了签名生成和验证的过程;47、图7示出了利用任务调度设备的过程;以及48、图8示出了利用任务调度设备的另一过程。49、图1示出了数据处理设备10的实施例。50、数据处理设备10包括多个计算硬件组件12。计算硬件组件12是处理单元并且可以包括中央处理单元28(cpu)、图形处理单元(gpu)、现场可编程门阵列30(fpga)、集成电路32(ic)、和/或任何其他种类的处理单元中的一个或多个。51、每个计算硬件组件12被配置用于执行计算任务14。计算任务14能够包括例如密码计算函数。52、每个计算任务14能够被指派任务质量类别c∈c,c是任务质量类别的集合。每个任务质量类别c∈c和每个计算硬件组件12与根据长度为δt的离散时间间隔的对应的处理时间值tproc相关联。相关联的处理时间值tproc指示通过对应的计算硬件组件12来处理对应的类别c∈c的任何一个计算任务14的持续时间。53、每个任务质量类别c∈c和每个计算硬件组件12进一步与对应的效用值uproc相关联。相关联的效用值uproc可以指示通过对应的计算硬件组件12来处理对应的类别c∈c的任何一个计算任务14而引起的成本或添加值。例如,uproc=-e可以指示将对应类别c∈c的任何一个计算任务14指派给对应的计算硬件组件12引起了e>0的能量成本。同样地,值uproc=1可以指示将对应类别c∈c的任何一个计算任务14指派给对应的计算硬件组件12添加了完成一个计算任务14的值。54、可替选地或附加地,相关联的效用值uproc可以对应于指示在对应的计算硬件组件12上具有对应类别c∈c的每个计算任务14的优先级的相关联的优先级值pproc。55、可替选地或附加地,相关联的效用值uproc可以对应于指示在数据处理设备10中的每个计算硬件组件12上具有对应类别c∈c的每个计算任务14的优先级的相关联的优先级值pproc。56、在本示例中,数据处理设备10被配置为异构环境,因为给定任务质量类别c∈c的一个计算任务14的对应的处理时间值tproc可以在计算硬件组件12之间不同,以及/或者,给定任务质量类别c∈c的一个计算任务14的对应的效用值uproc可以在计算硬件组件12之间不同。57、数据处理设备10进一步包括任务调度设备16。任务调度设备16被配置用于在给定时间t∈tact处均可用的所述计算硬件组件12的集合a[t]之中在给定时间t∈tact处调度计算任务14的集合r[t],tact是离散时间间隔δt的集合。在图1中,t=5δt作为示例。58、由于对于具有cr∈c的计算任务r∈r[t](cr∈c是r∈r[t]的相关联的任务质量类别c),相关联的处理时间值tproc和/或相关联的效用值uproc可以在可用的计算硬件组件a∈a[t]之间不同,所以问题是如何在计算硬件组件12的集合a[t]之中在给定时间t∈tact处调度计算任务14的集合r[t]。59、图2示出了计算机实现的任务调度方法的实施例。60、在步骤s11中,方法包括:61、-将每个任务质量类别c∈c与根据δt的对应的计算时间限制值dlimit相关联。62、对应的计算时间限制值dlimit优选地是正数。dlimit可以对应于通过数据处理设备10中的每个计算硬件组件12来处理对应类别c∈c的任何一个计算任务14的平均持续时间。例如,dlimit可以指示当tproc≤dlimit时,通过计算硬件组件12来处理对应类别c∈c的任何一个计算任务14是可接受的。也能够将dlimit看作是外部设置的目标值。dlimit的高值可以允许通过给定的计算硬件部件12来处理不同的对应类别c∈c的更多的计算任务14,而低值dlimit限制被允许由给定的计算硬件部件12处理的更少的对应类别c∈c的计算任务14。63、在步骤s12中,方法包括:64、-在给定时间t∈tact处,针对每个计算任务r∈r[t]和每个硬件组件a∈a[t]来定义对应的决策变量xra[t]∈{0,1},其中,在每个任务r∈r[t]至多可分配给一个计算硬件组件a∈a[t]并且每个计算硬件组件a∈a[t]至多被指派有一个计算任务r∈r[t]的约束下,如果所述计算任务r∈r[t]被分配给计算硬件组件a∈a[t],则xra=1,否则,xra=0。65、在步骤s13中,方法包括:66、-在给定时间t∈tact处,鉴于cr∈c是r∈r[t]的相关联的任务质量类别c,通过求解最大化问题来确定决策变量数据x[t],对于所有r∈r[t]和a∈a[t],该最大化问题包括cr∈c和a∈a[t]的相关联的效用值uproc,在以下条件下:67、对于所有r∈r[t],68、其中,x[t]∈f[t],f[t]是在给定时间t∈tact处满足步骤s12中的约束的所有决策变量数据的集合,是cr∈c和a∈a[t]的相关联的处理时间tproc,并且是cr∈c的相关联的计算时间限制值dlimit。69、对于给定的r∈r[t],通过矛盾排除了针对所有a∈a[t]的xra[t]=0的平凡解。这保证了至少一个计算任务r∈r[t]被分配,即使每个计算任务r∈r[t]引起了成本。70、在步骤s14中,作为第一种可能的解决方案,方法可以包括:71、-在给定时间t∈tact处,根据下式来求解最大化问题:72、73、其中,是cr∈c和a∈a[t]的相关联的效用值uproc。74、在步骤s15中,作为第二种可能的解决方案,方法可以包括:75、-在给定时间t∈tact处,根据下式来求解最大化问题:76、77、其中,是cr∈c和a∈a[t]的相关联的效用值uproc,是cr∈c和a∈a[t]的相关联的处理时间tproc,是cr∈c的相关联的计算时间限制值dlimit,并且是根据每δt的cr∈c的虚拟队列变量。78、在这种形式中,最大化问题表示二分匹配或指派问题。二分匹配或指派问题是可以例如通过匈牙利算法解决的组合优化问题。79、在步骤s15中,根据下式为每个类别cr∈c来迭代地计算80、81、其中,λ≥0对应于迭代的调谐参数。虚拟队列变量被设置为非负值。作为可能的起始值可以被选择。82、在步骤s16中,方法包括:83、-在给定时间t∈tact处,基于所确定的决策变量数据x[t]在计算硬件组件12的集合a[t]之中调度计算任务14的集合r[t]。84、本发明还包括任务调度设备16,其包括用于执行任务调度方法的装置。本发明进一步包括数据处理设备10,包括这样的任务调度设备16和多个计算硬件组件12。本发明进一步包括飞行器,特别是航空器18,包括任务调度设备16和/或数据处理设备10。本发明进一步包括一种包括指令的计算机程序(未示出),当程序被计算机执行时,使计算机执行所述任务调度方法。本发明进一步包括其上存储有计算机程序的计算机可读数据载体(未示出)。85、本发明的优选实施例能够总结如下:86、通信链路成为航空系统的组成部分。在多个场境(商业空域以及城市空域)中实现或设想的示例是数据上传到云,如图3所示。这里,多个航空器18或通用飞行器(av)将遥测或状态更新20上传到云服务器22。在该服务器22上,数据被处理并且由终端用户24经由交互26获取或重新分布到av。为了避免误用,需要加密地保护通信链路,以提供机密性、完整性和/或认证。为此,经常使用基于非对称加密的公钥基础设施(pki)。pki涉及用于密钥交换和签名生成/验证的不同过程。这些过程需要执行可以在通用cpu 28上或在特定硬件(诸如fpga 30或ic32)上运行的计算任务。在一些地方中,例如在云22中,建立了大量连接,这导致需要执行加密函数的大量时间。为了有效地处理该负载,目标是多核和多加速器设置。87、目标系统包括如图4所示的硬件组件12的集合,即一个或多个cpu 28、一个或多个fpga 30和/或一个或多个ic32。每个组件12可经由通信接口34(例如总线系统)到达,该通信接口34能够用于向其传输数据和命令。此外,每个组件12具有将其输出或状态写入到的相关联的一段存储器36。存储器36可以物理地或逻辑地与其相关联。最后,存在调度器16,即,将加密任务14分发到不同组件12的控制例程。88、假设每个硬件组件12具有用于以下加密函数的子集的实施方式:89、keygen–创建一对公钥和私钥,90、sign–对特定的一段数据进行签名,91、verify–验证已被签名的一段数据的签名,92、encaps–封装用于密钥交换机制的共享秘密,93、decaps–解封用于密钥交换机制的共享秘密。94、能够组合函数以执行与pkl相关的任务14,例如对称密钥交换、证书生成和验证等。例如,对称密钥交换的过程以图5所示的方式发生,而签名生成和验证如图6所示的发生,其中pk是公钥,sk是密钥,m是消息,sig是签名,并且c是这些图中的密文。95、调度器16能够例如经由总线与硬件组件12交互,并且能够发出不同命令14的执行。然后将结果反馈到与部件12相关联的存储器36中,如图7所示。96、取决于确切的命令,输入(input)和输出(output)部分改变:97、98、注意,在特定实现中,可以馈入或输出附加参数,诸如交换的数据字段的长度。此外,在特定实现中,输入和输出都可以包含标识命令与其相关联的通信对等体的额外id字段。99、当在计算机上的线程38试图执行命令时,它将命令14和输入传递到调度器16,如图8所示。调度器16将命令14和输入视为“请求”,其保持在内部数据结构中。以由内部调度例程40确定的顺序来处理所有请求。例程40决定哪个请求接下来被传递到加密函数,以及它被确切地传递到哪个cpu 28、fpga 30或ic 32。例如,调度例程40能够实现先进先出队列、优先级队列系统或类似地。一旦通过加密函数处理了请求,输出就被馈送回到发起线程38,该发起线程38继续其预期操作。100、在所有可能的调度例程之中,应特别地提及两个特定的调度类别,即严格优先级调度和具有虚拟队列的效用优化调度器。101、考虑时间被分组为离散间隔t∈{1,2,3,…},并且假设在每个间隔处,a[t]={1,2,3,…}是可用的函数实例的集合(将接受命令的fpga、ic或cpu)并且r[t]={1,2,3,…}是待定请求(待定命令)的集合。每个请求是质量类别cr∈c的一部分。对于每个请求r∈r[t]和实例a∈a[t],传输相关联的命令和数据、执行函数和返回输出所需的时间由tra给出。每个类别和实例具有相关联的效用值uca,该效用值uca确定通过将类别c的任务指派给它所引起的“成本”或“添加值”。例如,uca:=-eca将指示指派类别c的任务给实例a引起能量成本eca。同样,值uca:=1将引起指派类别c的任务给实例a添加了完成一个任务的值。在每个时刻t处,存在决策变量xra∈{0,1},其中如果请求r被分配给实例a,则是1,并且否则是零。为了有效,决策向量x必须满足约束的集合,即,每个请求能够被至多指派给一个函数实例,并且每个函数实例不能具有多于一个的被指派请求。为了简洁起见,这些约束被写为x∈f,其中f是有效(“可行”)分配的集合。102、然后,两个调度器以下面的方式工作:103、1)严格优先级调度器:这里,效用是每类别的严格优先级值,即,并且目标是优化数学问题其是通过依次将具有最高优先级的请求首先指派给它们所选择的函数,然后将具有第二高优先级的请求指派给其余的函数来解决的,以此类推。104、2)虚拟队列调度器:这里,目标是最大化问题的长期平均值105、106、107、这是通过将每个类别的虚拟队列变量vc相关联来完成的。在每个分配之后,对于可以用于微调调度器的给定λ≥0,由来更新队列变量。在每个时刻中,调度器然后求解问题该问题是可以用已知方法(例如,利用匈牙利方法)求解的二分匹配问题。108、参考符号列表:109、10 数据处理设备110、12 计算硬件组件111、14 计算任务112、16 任务调度设备113、18 航空器114、20 遥测或状态更新115、22 服务器116、24 终端用户117、26 相互作用118、28 cpu119、30 fpga120、32 ic121、34 接口122、36 存储器123、38 线程124、40 例程125、t 给定时间126、r[t] 计算任务的集合127、a[t] 计算硬件组件的集合128、tact 每个长度为δt的离散时间间隔的集合129、c 任务质量类别的集合130、tproc 处理时间值131、uproc 效用值132、dlimit 计算时间限制133、xra 决策变量134、x 决策变量数据135、vc 虚拟队列标量136、λ 调谐参数137、pproc 优先级值