掌桥专利:专业的专利平台
掌桥专利
首页

基于GPU混合集群的模型任务处理系统和资源调度方法

文献发布时间:2024-04-29 00:47:01


基于GPU混合集群的模型任务处理系统和资源调度方法

技术领域

本发明涉及高性能科学计算技术领域,具体涉及一种基于GPU混合集群的模型任务处理系统和资源调度方法。

背景技术

随着大数据和人工智能的迅猛发展,GPU已成为处理大规模模型任务不可或缺的工具,其发展速度非常之快。而在科学计算领域,由于GPU强大的并行计算能力,能够为计算密集型应用提供强大的加速效果,GPU也受到了热烈欢迎。

与传统科学计算中使用的CPU不同,GPU属于异构加速设备,在使用GPU对应用进行加速时,GPU的内存和带宽相对于CPU而言是非常稀缺且昂贵的资源,不仅如此,模型任务的复杂性和多样性也对GPU的调度策略产生了巨大的影响。因此,如何高效地利用GPU资源并实现模型任务的优化调度仍然是一个巨大的挑战。

由于国际社会及市场供给等因素,专用于计算中心的计算设备价格持续上升,而消费级GPU的单精度计算能力并不比专用GPU低,而成本仅仅只有几十分之一。另一方面,本系统的目的并不是向开放用户提供实时的、高可靠的服务,因此,将消费级GPU应用于本系统是非常具有性价比的做法。不仅如此,如果用户既有大规模任务,又有小规模任务,传统的调度系统会将小任务插到正在执行的大任务中执行,这往往会占用计算节点的内存带宽、网络带宽等资源,这样将在一定程度上影响原本的大任务的执行效率。

发明内容

有鉴于此,有必要提供一种在有限的GPU资源情况下提高对模型任务的处理效率的基于GPU混合集群的模型任务处理系统和资源调度方法。

一种基于GPU混合集群的模型任务处理系统,用于特定领域的任务执行管理,所述系统包括:

计算资源管理子系统,用于以分组方式管理GPU节点,并将各个节点上的计算资源分配给待执行任务,在任务执行过程中依据资源使用状态实时更新资源池中的信息;

模型任务管理子系统,用于接收用户输入的特定领域的待执行任务及任务参数,若用户未输入任务参数,则根据历史数据计算待中心任务的任务参数;

任务队列管理子系统,用于管理任务队列和资源分配,为待执行的任务分配不同的队列和相应的计算资源,并实现任务的暂停、恢复,以及失败任务的重新排队;

用户任务查询子系统,用于用户查询任务的执行状态。

优选地,所述计算资源管理子系统判断引起计算资源及其状态变更的是否属于以下原因:

第一,任务开始、暂停、结束;

第二,集群增加、删除节点;

第三,由于硬件故障导致的硬件资源减少;

第四,节点被预留。

优选地,所述模型任务管理子系统具有有限的任务类别,且不允许用户指定具体的硬件队列。

优选地,所述任务队列管理子系统具有任务分配功能和任务暂停及重新开始功能:

任务分配功能是根据每个模型任务的计算需求,分配相应数量的GPU资源,并根据所剩的资源在任务队列中选择其他任务优先执行;

任务暂停及重新开始功能是当任务具备暂停的功能时,支持任务的暂停与恢复;被暂停的任务需要的数据将被存储在本地的硬盘上,以方便更快速的暂停和重新开始。

优选地,所述用户任务查询子系统通过访问所述任务队列管理子系统,得到任务的执行状态,并向用户反馈。

以及,一种基于GPU混合集群的模型任务处理系统和资源调度方法,用于通过如上所述的基于GPU混合集群的模型任务处理系统,实现针对特定领域的任务的GPU资源调度,所述方法包括以下步骤:

步骤一,用户将需要运行的模型任务及任务参数输入模型任务管理子系统;

步骤二,用户提交模型任务后,任务队列管理子系统将待运行模型任务纳入任务队列中,并为待运行模型任务分配GPU资源;

步骤三,任务队列管理子系统将模型任务调度至GPU节点上运行,计算资源管理子系统监督计算资源的运行状态并完成资源池中资源状态的实时更新,同时监控模型任务的执行状态,并将执行状态数据传送至任务队列管理子系统;

步骤四,任务执行完后,计算资源管理子系统回收相关计算资源;模型任务管理子系统收集任务的运行信息。

优选地,所述步骤一中的模型任务参数包括任务类型、优先级、需要的CPU和GPU资源、预估的运行时间、数据量大小、内存使用大小;当用户未输入任务参数时,根据历史数据推测相关参数。

优选地,所述步骤二中的任务队列管理子系统将待运行模型任务纳入任务队列中,并为待运行模型任务分配GPU资源的步骤具体包括:

任务队列管理子系统根据每个模型任务的计算需求,分配相应数量的GPU资源;

若整体负载低于阈值,则优先将空闲的节点分配给待执行任务,以便将任务尽快的执行完;

若整体负载高于阈值,则使用最小满足原则,选择最小能够满足计算条件的计算节点和最不稀缺的硬件资源给待执行任务,将优质资源留给后续的任务。

优选地,所述步骤四中的计算资源管理子系统回收相关计算资源之后,还包括以下步骤:

队列任务管理子系统查询任务池中是否有未执行的任务;

若有未执行的任务,则从任务池中选择下一个被执行的任务;

其中,任务优先级的计算公式为:

优选地,所述步骤四中的模型任务管理子系统收集任务的运行信息包括运行结果、运行时间、计算资源的使用情况及GPU使用率随时间的变化情况。

上述基于GPU混合集群的模型任务处理系统和资源调度方法中,模型任务管理子系统接收到用户输入的模型任务后,任务队列管理子系统将其纳入任务队列并为其分配所需的计算资源,然后将其调度至相应的GPU节点上运行,在任务运行过程中,计算资源管理子系统全程监控任务的执行状态和计算资源硬件的运行状态,并针对运行过程中出现的异常情况做出相应的处理,以确保模型任务的顺利执行;在任务执行结束后,系统回收计算资源并收集任务运行信息,以便于调整GPU资源分配和任务调度策略。所述模型任务处理系统和所述资源调度方法针对包括消费级显卡在内的GPU混合集群,按照类别以芯片算力为调度级别,优先考虑硬件资源的利用率,既提高了模型任务的处理效率,保证了模型任务的顺利执行,也提高了GPU资源的利用率。本发明的方法简便有效,易于实现,便于推广。

附图说明

图1是本发明实施例基于GPU混合集群的资源调度方法的流程图。

具体实施方式

本实施例以基于GPU混合集群的模型任务处理系统和资源调度方法为例,以下将结合具体实施例和附图对本发明进行详细说明。

请参阅图1,示出本发明实施例提供的一种基于GPU混合集群的模型任务处理系统和资源调度方法,所述基于GPU混合集群的模型任务处理系统,用于同一目标用户或者特定领域的任务执行管理,所述系统包括:

计算资源管理子系统,用于以分组方式管理GPU节点,并将各个节点上的计算资源分配给待执行任务,在任务执行过程中依据资源使用状态实时更新资源池中的信息;

模型任务管理子系统,用于接收用户输入的特定领域的待执行任务及任务参数,若用户未输入任务参数,则根据历史数据计算待中心任务的任务参数;

任务队列管理子系统,用于管理任务队列和资源分配,为待执行的任务分配不同的队列和相应的计算资源,并实现任务的暂停、恢复,以及失败任务的重新排队;

用户任务查询子系统,用于用户查询任务的执行状态。

优选地,所述计算资源管理子系统判断引起计算资源及其状态变更的是否属于以下原因:

第一,任务开始、暂停、结束;

第二,集群增加、删除节点;

第三,由于硬件故障导致的硬件资源减少;

第四,节点被预留。

具体地,造成节点预留的具体原因包括用户或任务优先级等,例如,将节点因紧急任务预留给某些用户。

具体地,所述计算资源管理子系统将GPU混合集群中的各个节点以分组方式管理,分为科学计算型(支持双精度浮点数计算)、单精度计算型(只支持单精度浮点数计算)、纯CPU型等等。

具体地,计算资源的稀缺程度为:科学计算型>单精度计算型>纯CPU型,在满足资源需求的前提下,系统优先分配稀缺程度低的资源。

优选地,所述模型任务管理子系统具有有限的任务类别,且不允许用户指定具体的硬件队列。

具体地,由于系统处理的任务领域为某一特定的领域,因此,模型的任务类别是有限且容易区分的;其次,要求用户清楚地知道待执行任务对硬件的需求(例如,是否需要高速的双精度浮点数计算等)以及大致的运行时间,用户在运行前提交的任务参数能够帮助系统提高集群的GPU利用率;最后,由于在特定领域内的模型任务类型是有限的,因此,根据历史数据能够计算出待执行任务的大致资源需求资源、运行时间等属性。

另外,所述模型任务管理子系统不允许用户指定具体的硬件队列,只能选择任务类型,避免因用户偏好导致的资源紧张和集群效率低下。

具体地,所述任务参数包括但不限于任务类型、优先级、需要的CPU和GPU资源、预估的运行时间、数据量大小、内存使用大小等。

优选地,所述任务队列管理子系统具有任务分配功能和任务暂停及重新开始功能:

任务分配功能是根据每个模型任务的计算需求,分配相应数量的GPU资源,并根据所剩的资源在任务队列中选择其他任务优先执行;

任务暂停及重新开始功能是当任务具备暂停的功能时,支持任务的暂停与恢复;被暂停的任务需要的数据将被存储在本地的硬盘上,以方便更快速的暂停和重新开始。

具体地,所述任务队列管理子系统根据每个模型任务的计算需求,分配相应数量的GPU和其他资源,同时也可以在队列中最前面的任务因为资源不足而无法执行时,根据所剩的资源在任务队列选择其他任务优先执行;当任务具备暂停的功能时(如某个任务需要多次迭代,则可以在某次迭代结束之后保存此时的任务执行状态),支持任务的暂停与恢复;对于因硬件原因(如宕机)导致的任务失败等非正常结束的任务的重新排队。

优选地,所述用户任务查询子系统通过访问所述任务队列管理子系统,得到任务的执行状态,并向用户反馈。

具体地,为保证系统的执行效率不受外部因素干扰,系统不仅限制了用户指定使用计算资源的类型,还限制用户查询计算资源信息,只能按照任务类别提交相关任务,等待系统调度执行。

例如,用户不能查询计算资源的信息,不能指定消费级GPU或者数据中心级GPU来执行提交的任务,只能等待系统自行调度执行,使用户无法干涉系统的运行状态,从而最大限度保证了系统的稳定运行。

以及,一种基于GPU混合集群的模型任务处理系统和资源调度方法,用于通过如上所述的基于GPU混合集群的模型任务处理系统,实现针对特定领域的任务的GPU资源调度,所述方法的主要步骤包括:

用户将需要运行的模型任务及任务参数输入模型任务管理子系统;用户提交模型任务后,任务队列管理子系统将待运行模型任务纳入任务队列中,并为待运行模型任务分配GPU资源;任务队列管理子系统将模型任务调度至GPU节点上运行,计算资源管理子系统监督计算资源的运行状态并完成资源池中资源状态的实时更新,同时监控模型任务的执行状态,并将执行状态数据传送至任务队列管理子系统;任务执行完后,计算资源管理子系统回收相关计算资源;模型任务管理子系统收集任务的运行信息。

所述资源调度方法的具体步骤包括:

步骤S10,用户将需要运行的模型任务及任务参数输入模型任务管理子系统。

其中,模型的任务参数包括任务类型、优先级、需要的CPU和GPU资源、预估的运行时间、数据量大小、内存使用大小;当用户未输入任务参数时,根据历史数据推测相关参数。

具体地,对于特定的领域,模型的任务类别是有限且容易区分的;其次,用户清楚的知道这个任务对硬件的需求(如是否需要高速的双精度浮点数计算等)以及大致的运行时间,用户在运行前提交这些资料可以帮助调度系统提高集群的GPU利用率;最后,由于在特定领域内,模型任务类型是有限的,所以可以根据历史数据来推测新任务的大致资源需求时间、运行时间等属性。

步骤S20,用户提交模型任务后,任务队列管理子系统将待运行模型任务纳入任务队列中,并为待运行模型任务分配GPU资源。

步骤S21,任务队列管理子系统根据每个模型任务的计算需求,分配相应数量的GPU资源;

步骤S22,若整体负载低于阈值,则优先将空闲的节点分配给待执行任务,以便将任务尽快的执行完;

步骤S23,若整体负载高于阈值,则使用最小满足原则,选择最小能够满足计算条件的计算节点和最不稀缺的硬件资源给待执行任务,将优质资源留给后续的任务。

具体地,整体负载的阈值设置为50%,即,在系统空闲时,为任务分配优质资源以尽快完成任务的执行;在系统繁忙时,计算任务所需资源,为任务分配能够满足最低要求的计算资源,将优质资源保留给更高的需求者,实现物尽其用。

步骤S30,任务队列管理子系统将模型任务调度至GPU节点上运行,计算资源管理子系统监督计算资源的运行状态并完成资源池中资源状态的实时更新,同时监控模型任务的执行状态,并将执行状态数据传送至任务队列管理子系统。

步骤S40,任务执行完后,计算资源管理子系统回收相关计算资源。

步骤S41,队列任务管理子系统查询任务池中是否有未执行的任务;若有未执行的任务,则从任务池中选择下一个被执行的任务;

其中,任务优先级的计算公式为:

具体地,新的任务b提交后,首先为新任务b划分队列,然后查询该队列中的正在运行的任务所使用资源的剩余情况,并计算这个队列中所使用资源的利用率,再计算如果暂停正在运行的某个任务a1,转而运行新任务b的资源利用率;这两个利用率之比就是资源利用率的提高值。然后依次查询新任务b替代此队列中的a2、a3、a4、……an等等所有正在运行的任务,并取上述比值中的最大值作为新任务的优先级。如果任务b的优先级L≤1,则无法替换已经在运行的任务。即,使计算资源始终处于最大利用率状态,且不允许用户的外部干扰。

步骤S42,模型任务管理子系统收集任务的运行信息。

具体地,模型任务管理子系统收集任务的运行信息包括但不限于运行结果、运行时间、计算资源的使用情况及GPU使用率随时间的变化情况等。

具体地,收集的任务运行信息用于调整系统GPU资源分配和任务调度策略,帮助用户进行后续任务优化,为同类型的任务推荐任务执行参数。

具体地,在本实施例中,首先对计算资源进行分组管理,将同一类型的硬件设备分为一组,用户提交新的任务后,由系统进行资源分配,不允许用户干预资源分配和任务的执行情况。

当系统资源的使用率较低时,优先进行任务执行,使任务尽快执行完毕;当系统资源的使用率较高时,计算任务所需资源,为任务分配能够满足最低要求的计算资源。

另外,为了提高硬件资源的利用率,必要时进行任务调整,将正在进行的任务停下来,保存好中间变量,然后用节省出来的资源来满足新任务的需求;比如新的任务需要3个计算节点才能开始,但是目前只剩余2个,而有一个节点被某个任务独占,将此任务暂停,然后开始执行新的任务,待新任务执行完成后再重新载入之前被暂停的任务,这样,能够显著提升硬件的利用率。

上述基于GPU混合集群的模型任务处理系统和资源调度方法中,模型任务管理子系统接收到用户输入的模型任务后,任务队列管理子系统将其纳入任务队列并为其分配所需的计算资源,然后将其调度至相应的GPU节点上运行,在任务运行过程中,计算资源管理子系统全程监控任务的执行状态和计算资源硬件的运行状态,并针对运行过程中出现的异常情况做出相应的处理,以确保模型任务的顺利执行;在任务执行结束后,系统回收计算资源并收集任务运行信息,以便于调整GPU资源分配和任务调度策略。所述模型任务处理系统和所述资源调度方法针对包括消费级显卡在内的GPU混合集群,按照类别以芯片算力为调度级别,优先考虑硬件资源的利用率,既提高了模型任务的处理效率,保证了模型任务的顺利执行,也提高了GPU资源的利用率。本发明的方法简便有效,易于实现,便于推广。

需要说明的是,以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • GPU并行光线跟踪集群的绘制任务动态均衡分配方法
  • 一种基于AI云的GPU资源调度方法和装置
  • 基于流网络模型的无人机集群任务资源调度方法
  • 一种测试任务的混合集群资源调度方法
技术分类

06120116594560