CN116932156A - 一种任务处理方法、装置及系统 - Google Patents
一种任务处理方法、装置及系统 Download PDFInfo
- Publication number
- CN116932156A CN116932156A CN202210365491.4A CN202210365491A CN116932156A CN 116932156 A CN116932156 A CN 116932156A CN 202210365491 A CN202210365491 A CN 202210365491A CN 116932156 A CN116932156 A CN 116932156A
- Authority
- CN
- China
- Prior art keywords
- subtask
- node
- task
- ith
- computing
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 104
- 238000005457 optimization Methods 0.000 claims abstract description 85
- 230000008569 process Effects 0.000 claims abstract description 51
- 238000003860 storage Methods 0.000 claims description 63
- 238000012545 processing Methods 0.000 claims description 33
- 230000004931 aggregating effect Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 abstract description 6
- 238000007726 management method Methods 0.000 description 105
- 238000004364 calculation method Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种任务处理方法、装置及系统,该系统包括管理节点和计算节点集群,计算节点集群用于执行任务,该任务包括N个子任务,该N个子任务迭代执行;管理节点用于获取计算节点集群在执行第i次个子任务时对应IO操作的特性值;管理节点根据第i个子任务对应的IO操作的特性值确定IO优化策略;管理节点应用IO优化策略至所述第i个子任务之后的子任务中。基于该方法,管理节点可以根据任务自身的配置参数提供针对性的优化策略,不需要使用其他任务的优化策略,如此,即使任务的配置参数发生变化也可以继续优化,这样任务在执行过程中便能得到及时优化,从而有效节约大量时间资源,进一步,降低用于执行任务的计算资源被占用的时间。
Description
技术领域
本申请涉及高性能计算技术领域,尤其涉及一种任务处理方法、装置及系统。
背景技术
在输入输出(input/output,IO)密集型的高性能计算场景,如高性能计算(highperformance computing,HPC)或超算(supercomputing,SC)等大规模应用中,应用的计算IO数量可以达到TB量级,应用的IO性能成为应用的技术瓶颈,优化应用的IO性能可以大规模减少应用的计算耗时。
目前,在对应用的IO性能进行优化时,通常是完整运行一遍应用后,即执行完输入应用的任务后,记录执行该任务的整个过程中的各项IO特性,然后基于所记录的整个任务执行过程中的IO特性进行分析,确定应用的IO性能的优化方案,这样,在应用再次运行执行所述任务时,即可使用优化方案对应用IO性能进行优化。这种方案需要应用完整运行一遍任务才能确定优化方案,对于高性能计算或者超算场景,由于计算量大,不能使应用执行任务时的IO性能及时得到优化。另外,在业务的配置参数(如用于执行任务的计算资源数目)更改之后,IO特性也会发生变化,如果还使用同样的优化方案,则起不到优化效果。
发明内容
本申请提供一种任务处理方法、装置及系统,用于针对任务自身的配置参数提供一种优化方案,使得应用在执行任务过程中的IO性能能够得到及时优化,从而节约用于执行任务的时间资源。
第一方面,本申请实施例提供一种任务处理系统,任务处理系统至少包括管理节点和计算节点集群;计算节点集群用于执行任务,该任务包括N个子任务,该N个子任务迭代执行。迭代执行是指该多个子任务顺序执行,且每个子任务的执行过程是重复的,如计算节点集群执行第一个子任务,第一个子任务执行完成后,执行第二子任务,第二子任务执行完成后,执行第三个子任务,依此类推。
管理节点用于获取该计算节点集群执行第i个子任务时对应的IO操作的特性值,示例性地,IO操作可以是将计算结果写入存储器,i大于等于1,小于N,N取大于1的正整数;根据这些特征值确定IO优化策略,并应用该IO优化策略至第i个子任务之后的子任务中。
通过上述设计,管理节点可以基于计算节点集群执行第i个子任务过程中产生的IO操作的特性值确定IO优化策略,并应用该IO优化策略执行后续迭代中,管理节点可以根据任务自身的配置参数提供针对性的优化策略,不需要使用其他任务的优化策略,如此,即使任务的配置参数发生变化也可以继续优化,从而使得任务在执行过程中便能得到及时优化,从而在本次任务处理过程中便可以实现IO优化,缩短后续迭代的运行时间,从而有效节约任务运行所需的时间资源,进一步,降低用于执行任务的计算资源被占用的时间,从而缩短整个任务所需的机时,更进一步,计算资源被占用的时间变短,计算资源在相同时间内可以用于处理更多任务,有利于提高计算资源的利用率。
在一种可能的实现方式中,该任务处理系统还包括IO节点集群,IO节点集群用于处理计算节点集群在执行任务时产生的IO操作。
通过上述设计,IO节点集群用于处理计算节点集群的IO操作,如将计算节点集群执行任务的计算结果写入存储节点,可以减少计算节点集群的IO操作阻塞在存储节点的情况。
在一种可能的实现方式中,IO优化策略包括下列中的一项或多项策略:调整(如增加或减少)IO节点集群中执行第i个子任务之后的子任务的IO节点的数量;或将执行第i个子任务之后的子任务中多个IO操作聚合为一个IO操作;或异步执行第i个子任务之后的子任务中的一个或多个IO操作。
通过上述设计,增加IO节点的数量,可以增加总的写带宽,从而可以降低执行任务的某段时间内写入大量数据时所需的时间,也即减少了任务执行所需的时间。减少IO节点的数量,在某些情况下,在保证不会延长写操作的执行时间的基础上,降低IO节点的资源占有率。将多个IO操作聚合为一个IO操作,也可以理解为,将多次写操作聚合为一次写操作,从而缩短写操作的执行时间,且对写入的存储介质更加友好,少次写相对于多次写更利于延长存储介质的使用寿命。异步执行IO操作,可以减少计算节点等待写IO操作的时间,加快计算进度,从而减少任务的执行时间。
在一种可能的实现方式中,IO操作的特性值包括下列中的一项或多项:计算节点集群执行第i个子任务时产生的每个IO操作所传输的数据的数据量大小;计算节点集群用于执行第i个子任务时产生的IO操作的进程的数量或者IO操作所涉及的文件的数量;计算节点集群执行第i个子任务时产生的IO操作所写入的数据的位置;计算节点集群执行第i个子任务时产生的涉及元数据的IO操作的数量;计算节点集群执行第i个子任务时运行每个IO操作的时间。
在一种可能的实现方式中,管理节点中包括IO操作的特性值与IO优化策略的对应关系,管理节点在根据第i个子任务对应的IO操作的特性值确定IO优化策略,具体用于:根据第i个子任务的IO操作的特性值和对应关系确定IO优化策略。
通过上述设计,通过预设对应关系可以灵活配置IO优化策略。
在一种可能的实现方式中,第i个子任务的输出为第i+1个子任务的输入。
第二方面,本申请实施例提供一种任务处理方法,在该方法中,方法应用于任务管理系统,系统包括管理节点、及计算节点集群,计算节点集群用于执行任务,任务包括N个子任务,N个子任务迭代执行;
方法包括:管理节点获取该计算节点集群执行第i个子任务时对应的IO操作的特性值,i大于等于1,小于N,N取大于1的正整数;根据这些特征值确定IO优化策略,并应用该IO优化策略至第i个子任务之后的子任务中。
在一种可能的实现方式中,系统还包括IO节点集群,IO节点集群用于处理计算节点集群在执行任务时产生的IO操作。
在一种可能的实现方式中,IO优化策略包括下列中的一项或多项策略:调整IO节点集群中执行第i个子任务之后的子任务的IO节点的数量;或将执行第i个子任务之后的子任务中多个IO操作聚合为一个IO操作;或异步执行第i个子任务之后的子任务中的一个或多个IO操作。
在一种可能的实现方式中,IO操作的特性值包括下列中的一项或多项:计算节点集群执行第i个子任务时产生的每个IO操作所传输的数据的数据量大小;计算节点集群用于执行第i个子任务时产生的IO操作的进程的数量或者IO操作所涉及的文件的数量;计算节点集群执行第i个子任务时产生的IO操作所写入的数据的位置;计算节点集群执行第i个子任务时产生的涉及元数据的IO操作的数量;计算节点集群执行第i个子任务时运行每个IO操作的时间。
在一种可能的实现方式中,管理节点中包括IO操作的特性值与IO优化策略的对应关系;管理节点在根据第i个子任务对应的IO操作的特性值确定IO优化策略,包括:根据第i个子任务的IO操作的特性值和对应关系确定IO优化策略。
在一种可能的实现方式中,第i个子任务的输出为第i+1个子任务的输入。
第三方面,本申请实施例还提供了一种管理设备,该管理设备具有实现上述第一方面的系统实例或第二方面的方法实例中管理节点的功能,有益效果可以参见第一方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述管理设备的结构中包括获取模块、处理模块。这些模块可以执行上述第二方面方法示例中管理节点的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第四方面,本申请还提供了一种计算装置,所述装置包括处理器和存储器,还可以包括通信接口,所述处理器执行所述存储器中的程序指令执行上述第二方面或第二方面任一可能的实现方式提供的方法。所述存储器与所述处理器耦合,其保存有执行数据备份过程中必要的程序指令和数据。所述通信接口,用于与其他设备进行通信,如接收待执行的任务。
第五方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质被计算设备执行时,所述计算设备执行前述第二方面或第二方面的任意可能的实现方式中提供的方法;或执行前述第三方面或第三方面的任意可能的实现方式中提供的方法。该存储介质中存储了程序。该存储介质包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(hard disk drive,HDD)、固态硬盘(solid state drive,SSD)。
第六方面,本申请提供了一种计算设备程序产品,所述计算设备程序产品包括计算机指令,在被计算设备执行时,所述计算设备执行前述第二方面或第二方面的任意可能的实现方式中提供的方法;所述计算设备执行前述第三方面或第三方面的任意可能的实现方式中提供的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面或第一方面的任意可能的实现方式中提供的方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
第七方面,本申请还提供一种芯片,所述芯片用于通过执行软件程序,实现上述第二方面以及第二方面的各个可能的实现方式中所述的方法。
上述第二方面至第七方面中任一实现方式的有益效果请参见第一方面的描述,此处不再赘述。
附图说明
图1为本申请实施例提供的一种可能的系统架构场景示意图;
图2为本申请实施例提供的一种各节点的硬件架构示意图;
图3为本申请实施例提供的一种任务的多轮迭代过程的示意图;
图4为本申请实施例提供的一种任务处理方法的流程示意图;
图5为一个城市的地图示意图;
图6为本申请实施例提供的一种子任务拆分的示意图;
图7为本申请实施例提供的一种计算节点集群20执行第一轮迭代的示意图;
图8为本申请实施例提供的另一种可能的系统架构示意图;
图9为本申请实施例提供的一种管理设备的架构示意图。
具体实施方式
本申请实施例可以应用于高性能计算(high performance computing,HPC)或超算(supercomputing,SC)等等计算系统中。这类计算系统可以应用于气象、航空航天、地理、石油、天文、基因和高能物理等领域,可以用于处理前述的各领域中的任务,如,预测某区域在未来一段时间的天气状况;计算火箭升空过程中,火箭弹体在单位时间内所受的力;预测某区域发生地震的概率,等等,处理这类任务通常需要耗费大量的时间资源。本申请实施例提供的任务处理方法,该方法可以根据任务自身的配置参数提供针对性的优化策略,不需要使用其他任务的优化策略,如此,即使任务的配置参数发生变化也可以继续优化,从而使得任务在执行过程中便能得到及时优化,以此节省用于执行任务的时间资源,进一步,降低用于执行任务的计算资源被占用的时间。
图1为本申请实施例提供的一种计算系统的架构示意图,该计算系统架构仅是一种示例性说明,只是给出了与本发明实施例相关的组成部分,但是图1并不是对本发明应用的具体限定。
如图1所示,该计算系统包括管理系统10、计算节点集群20、IO节点集群21、存储系统30、登录系统40。其中,管理系统10包括一个或多个管理节点100(图1中示出了两个管理节点100,但不限于三个管理节点100)。计算节点集群20包括多个计算节点200(图1示出的计算节点200的数量仅为一种示例,本申请对此不做限定)。IO节点集群21包括一个或多个IO节点201(图1示出的IO节点201的数量仅为一种示例,本申请对此不做限定)。存储系统30包括一个或多个存储节点300(图1示出的存储节点300的数量仅为一种示例,本申请对此不做限定)。登录系统40包括一个或多个登录节点400(图1中示出了个三个登录节点400,但不限于三个登录节点400)。
图1中左侧是用户设备,用户设备可以虚拟机或物理机,物理机可以是普通计算机101a、平板电脑101b、智能手机101c等。用户设备可以通过网络150登录至登录节点400,网络150通常表示任何电信或计算机网络,包含例如企业内部网、广域网(wide areanetwork,WAN)、局域网(local area network,LAN)、个域网(personal area network,PAN)或因特网等。用户可以操作用户设备登录至一个登录节点400,在登录节点400上用户可以提交任务,如预测某国家在未来一段时间的天气状况。可选的,在提交任务的过程中,用户还可以提交任务的配置参数,如用于执行任务的计算资源数目,例如计算节点的数量、处理器核的数量等。
管理节点100,可以为一个硬件装置,如服务器、笔记本电脑、桌面电脑等,也可以是一个软件装置,如可以为运行在硬件装置上的一套软件程序。管理节点100用于管理计算节点200、IO节点201等。如监控计算节点200、IO节点201的状态,如繁忙或空闲。管理节点100还可以用于管理用户提交的任务,如任务调度等。示例性地,管理节点100可以获取用户在登录节点400提交的任务,并将任务调度至多个空闲的计算节点200处理,可选的,还可以为任务分配一个或多个空闲的IO节点201,用于执行任务处理过程中的IO操作。管理系统10可以包括至少两个管理节点100,其中一个为主管理节点,其余为备管理节点,主管理节点和备管理节点互为备份,当主管理节点发生故障时,其中一个备管理节点接管发生故障的主管理节点的业务,继续对外提供服务,从而避免硬件故障导致整个计算系统的不可用。
计算节点200可以为一个硬件装置或虚拟机,硬件装置如服务器、笔记本电脑等。计算节点200用于处理管理节点100调度的任务,具体用于执行任务中的数据计算和处理等操作。为提高计算节点200的性能,计算节点200通过IO节点201存取数据,如计算节点向IO节点201发送读IO,读IO用于请求获取任务的初始数据(下文会进行介绍)。又如计算节点向IO节点201发送写IO,写IO携带任务的计算结果。
IO节点201用于处理来自计算节点200的IO请求,包括读IO请求和写IO请求。示例性地,IO节点201通过网络151接收计算节点200发送的读IO请求,通过网络152从存储节点300获取该读IO请求所请求读取的数据(如任务的初始数据),并将该数据返回至计算节点200。再示例性地,IO节点201通过网络151接收计算节点200发送的写IO请求,并通过网络152将该写IO请求中携带的待写入数据(如任务的计算结果)写入存储节点300。值得注意的是,IO节点201接收到计算节点200的写IO请求后,可以将该写IO中携带的数据暂时存储在IO节点201的内存或硬盘中,同时向计算节点200发送IO响应,计算节点200接收到IO响应后便可以继续执行后续的流程。该方式可以减少存储节点300侧IO阻塞对计算节点200的影响。通常,一个IO节点201服务多个计算节点200,即一个IO节点201可以用于处理多个计算节点200的IO请求。IO节点201可以为一个硬件装置或虚拟机,硬件装置如服务器、Pcie设备等。
存储节点300可以为一个硬件装置或虚拟机,硬件装置如存储服务器、存储阵列等,通常用于持久性地存储数据,以及处理来自IO节点201的IO请求,如存储节点300接收IO节点201发送的读IO请求,从存储节点300的存储介质中获取该读IO请求所请求读取的数据,并将该数据返回至IO节点201。又如存储节点300接收IO节点201发送的写IO请求,并将该写IO请求中携带的数据写入存储节点300的存储介质中。
如图1所示,管理集群10中的各个管理节点100、计算节点集群20中的各个计算节点200、IO节点集群21中的各个IO节点201、登录系统40中的各个登录节点400均连接在网络151上。如此,该网络151上的任意两个设备之间可以互相通信,如管理集群10中的任一管理节点100能够与计算节点集群20中任一计算节点200进行信息交互。管理集群10中的任一管理节点100能够与IO节点集群21中任一IO节点201进行信息交互。计算节点集群20中任一计算节点200能够与IO节点集群21中的任一IO节点201进行信息交互。计算节点集群20内的各个计算节点200之间可以互相通信。IO节点集群21中任一IO节点201能够与存储系统30中的任一存储节点300进行信息交互。这里的网络151可以为网络通道,如一系列诸如交换机等网络设备组成的传输链路,或与网络150类似的网络,关于网络151在此不再详细说明。
需要说明的是,(1)为了更好的提供计算服务、存储服务,计算节点200、IO节点201、存储节点300一般是硬件装置,而不是虚拟机。(2)图1示出的存储系统30可以是分布式存储系统,还可以是集中式存储系统,具体不做限定。(3)图1所示的IO节点集群21和存储系统30可以共同部署。比如,IO节点201和某个存储节点300集成在一个硬件装置中,参见图8。(4)上述介绍的各节点的功能仅为举例,如管理节点100除调度任务之外,还可以用于对计算节点集群20或存储系统30进行监控、告警、运维等功能,本申请实施例对此不做限定。
具体的,图2为本申请提供的图1中部分节点一种可能的结构示意图。如下分别对进行介绍:
一、管理节点100;
如图2所示,管理节点100可以包括处理器101、内存102、网卡103和总线104。其中,处理器101、内存102、网卡103通过总线104连接。
处理器101,用于基于获取到的,计算节点200在执行任务过程中产生的IO参数确定IO优化策略,并基于该IO优化策略来优化该任务的后续处理过程。处理器101可以为中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件、人工智能芯片、片上芯片、图形处理单元(graphic processingunit,GPU)等。需要说明的是,图2中仅示出了一个处理器101,在实际应用中,处理器101的数量往往有多个,其中,一个处理器101又具有一个或多个处理器核。本实施例不对处理器101的数量,以及处理器核的数量进行限定。
内存102,用于存储计算机指令和数据,如内存102存储实现本申请提供的任务处理方法所需的计算机指令和数据。内存102包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)、动态随机存取存储器(dynamic randomaccess memory,DRAM)等。也可以为非易失性存储器(non-volatile memory),例如存储级存储器(storage-class memory,SCM)等,或者易失性存储器与非易失性存储器的组合等。
网卡103可以用于与计算节点200、IO节点201通信。如管理节点100通过网卡103向计算节点200发送任务,又如管理节点100通过网卡103接收IO节点201采集的IO参数。
总线104除包括数据总线之外,还可以包括电源总线、地址总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线104。总线104可以是快捷外围部件互连标准(Peripheral Component Interconnect Express,PCIe)总线,或双数据速率(double data rate,DDR)总线,或串行高级技术附件(serial advancedtechnology attachment,SATA)总线,或串行连接SCSI(serial attached scsi,SAS)总线,或控制器局域网络总线(Controller Area Network,CAN),或扩展工业标准结构(extendedindustry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherentinterconnect for accelerators,CCIX)等。
二、计算节点200;
在软件层面,计算节点200可以运行软件程序,以实现该软件程序的功能。软件程序如高性能计算(highperformance computing,HPC)应用、人工智能(artificialintelligence,AI)应用、以及大数据处理应用程序等应用。HPC应用包括WRF(用于预测天气)、OpenFOAM(应用于空气动力学领域)等应用。通过提交任务至相应的应用,计算节点200运行应用以执行所提交的任务。
如图2所示,在硬件层面,每个计算节点200至少包括一个或多个处理器(图2示出四个处理器202、203、204、205,但本申请对此不做限定)、内存208、网卡209、IO监控模块210。其中,处理器202、203、204、205、内存208、网卡209、IO监控模块210通过总线206连接。
其中,一个或多个处理器202、203、204、205可用于运行一个或多个应用,具体的,每个处理器可用于运行一个应用,如此,多个处理器可以运行多个应用(如上述HPC应用),从而基于各自运行的应用并行执行任务的部分作业,如多个处理器并行处理同一个WRF任务的不同子任务,其中每个处理器(指用于执行任务的每个处理器)中分别运行一个WRF应用,以执行同一个WRF任务的其中一个子任务,不同处理器执行的子任务不同。
具体的,处理器202、203、204、205用于执行任务中的数据计算和处理。内存208可以用于存储应用的程序代码以及数据。以任务为预测天气为例,示例性地,处理器201可以从内存208中获取WRF应用的程序代码以及任务的初始数据,处理器201运行该WRF应用的程序代码对该初始数据进行计算,得到计算结果,计算结果可以是预测到的气象数据。下文会对此进行详细说明。
网卡209用于与外部设备(如管理节点100、IO节点201)通信。如计算节点200通过网卡209向IO节点201发送IO请求,示例性地,计算节点200通过网卡209向IO节点201发送读IO请求,以请求读取任务的初始数据。再示例性地,计算节点200通过网卡209向IO节点发送写IO请求,写IO请求携带任务的计算结果。
IO监控模块210,用于采集计算节点200执行任务过程所产生IO参数,可以是一个软件模块(如为一个应用)也可以是硬件模块,还可以是软件模块+硬件模块。如果是软件模块则可以在其中一个处理器202、203、204、205中运行。在本申请中,IO监控模块210采集的IO参数由网卡209发送给管理节点100。
计算节点200所包含的硬件组件与管理节点100类似,此处不再赘述。
三、IO节点201;
如图2所示,在硬件层面,IO节点201至少包括处理器211、内存212、(前端)网卡213、(后端)网卡214。处理器211用于处理来自计算节点200的IO请求,示例性地,处理器211通过网卡213接收计算节点200发送的读IO请求,如该读IO请求用于请求读取任务的初始数据,处理器211通过网卡214向存储节点300发送读IO请求,以从存储节点300获取该任务的初始数据,并通过网卡213将获取到的数据发送给计算节点200。再示例性地,处理器211通过网卡213接收计算节点200发送的写IO请求,如该写IO请求包括任务的计算结果,IO节点201通过网卡214将该任务的计算结果写入存储节点300。
IO节点201所包含的硬件组件与管理节点100类似,此处不再赘述。
四、存储节点300;
如图2所示,一个存储节点300包括一个或多个控制单元301、网卡304与多个硬盘305。网卡304用于与IO节点201通信。硬盘305用于存储数据,可以是磁盘或者其他类型的存储介质,例如非易失性存储器(non-volatile memory)、ROM、硬盘驱动器(hard diskdrive,HDD)、固态驱动器(solid state disk,SSD)、叠瓦式磁记录硬盘等。控制单元301用于根据IO节点201发送的写IO请求或读IO请求,往硬盘305中写入数据或者从硬盘305中读取数据。
需要说明的是,图2所示的各节点的结构仅为示例,在实际产品中,上述各节点可能包括相比图2更多或更少的组件,如管理节点100还可以包括键盘、鼠标、显示屏等输入/输出设备等,本申请实施例对上述各节点的具体结构不做限定。
在本申请中,图1所示的系统可以是HPC或超算等系统。这类系统可用于处理大规模的计算任务,具体的,应用将大规模的计算任务拆分为若干个子任务,然后将子任务分发到多个计算节点200上并行计算,再将计算结果汇总成最终的一个结果。
如下对本申请实施例中的任务进行具体介绍。
本申请中的任务包括多轮迭代,多轮迭代是指该任务包括多个重复的过程,每一次对过程的重复称为一轮“迭代”,每一轮迭代得到的计算结果会作为下一轮迭代的初始值,每一轮迭代重复执行相同的运算步骤,换而言之,每一轮迭代的计算结果,都是由对前一轮迭代所得的计算结果施行相同的运算步骤得到的。也可以理解为,每一轮迭代均为该任务的一个子任务。
以天气预测为例,假设某任务为预测某城市在未来一段时间(如2022.05.01)内的天气状况。示例性地,如图3所示,将该任务以时间(如小时)为粒度,划分为多个子任务,该多个子任务迭代执行,即包括多轮迭代,如第一个子任务(第一轮迭代)为:计算节点集群20基于该城市在2022.04.30.23:00~24:00的天气,预测该城市在2022.05.01.0:00~1:00内的天气。第二个子任务(第二轮迭代)为:基于第一个子任务的计算结果(即该城市在2022.05.01-0:00~1:00内的天气),预测该城市在2022.05.01.1:00~2:00内的天气。第三个子任务(第三轮迭代)为:基于第二个子任务的计算结果(即该城市在2022.05.01.1:00~2:00内的天气),预测该城市在2022.05.01.2:00~3:00内的天气。第四个子任务(第四轮迭代)为:基于第三个子任务的计算结果(即该区域在2022.05.01.2:00~3:00内的天气),预测该区域在2022.05.01.3:00~4:00内的天气。依此类推,逐次预测该区域在2022.05.01这一天中每个小时的天气状况。其中,每个子任务的预测方法均相同,即每个子任务的执行过程相同。可见,上述任务包括多轮迭代,其中的一轮迭代即为一个子任务,或者说,多个子任务迭代执行,其中的第i个子任务也可以称为第i轮迭代。
接下来结合附图4,以本申请实施例提供的任务处理方法应用于图1所示的系统为例,对该方法进行详细说明。图4为本申请实施例提供的一种任务处理方法所对应的流程示意图。如图4所示,该方法包括如下步骤:
步骤401,管理节点100获取待执行的任务。
管理节点100获取待执行的任务的方式有多种,如接收登录节点400发送的任务,又如,当管理节点100获取到多个任务时,可以将任务放入任务队列,之后管理节点100从任务队列选择待执行的任务。
步骤402,管理节点100将该待执行的任务调度至计算节点集群20。
在一种实施方式中,用户在提交任务时,还提交有任务的配置参数,如用于执行任务的计算资源数目等。示例性的,计算资源数目可以为10个计算节点100,则管理节点100基于计算节点集群20内的计算节点200的状态,选择10个空闲的计算节点200,将该任务调度至该10个计算节点200上。再示例性的,计算资源数目为400个处理器核,假设每个计算节点200上有20个处理器核,则管理节点100基于计算节点200的硬件配置,选择20(400/20)个空闲的计算节点200,将该任务调度至该20个计算节点上。在另一种可选的实施方式,由管理节点100决定执行任务的计算资源数目,如管理节点100基于预设策略确定执行该任务所适宜的计算资源数目。类似的,管理节点100基于用户提交的IO节点的数目来分配执行该任务的IO节点201,或者,管理节点100决定执行任务的IO节点201的初始数量,IO节点201用于响应计算节点200执行任务过程中的IO请求。
管理节点100执行任务调度时,示例性地,管理节点100可以将待处理的任务和调度信息(如用于指示基于任务的配置参数选择的计算资源)发送至其中一个计算节点200(称为主计算节点),由主计算节点执行任务拆分,以及根据调度信息执行子任务分发。或者,管理节点100执行主计算节点的功能,完成任务拆分和子任务分发。
如下以主计算节点为例,对主计算节点执行任务拆分和子任务分发过程进行介绍:
本申请实施例中的任务包括多轮迭代,主计算节点将该任务拆分为多个迭代执行的子任务(记为一级子任务,如下仍简称为子任务),参见前述的介绍,此处不再赘述。值得注意的是,由于子任务的划分方式有多种,不同维度划分得到的子任务不一定是迭代执行的,因此,如下以第i轮迭代来表示该任务中需要迭代执行的第i个子任务。
为了提高任务执行效率,进一步,还可以将每一轮迭代再细分为若干粒度更小的子任务(即一级子任务的子任务,记为二级子任务,如下仍简称为子任务),该多个子任务可以是并行执行的。举例来说,假设前述的城市的地图如图5所示,其中图5中的每个“点”表示该城市的部分区域。示例性地,还可以以“点”为粒度,将每一轮迭代拆分为多个子任务,每个子任务用于预测其中一个点所表示的区域的天气状况。如参见图6所示,子任务1用于预测区域1在0:00-1:00内的天气;子任务2用于预测区域2在0:00-1:00内的天气;子任务3用于预测区域3在0:00-1:00内的天气;依此类推。
之后,主计算节点根据调度信息执行子任务分发,其中,调度信息包括管理节点100选择的用于执行该任务的多个空闲的计算节点200的信息,子任务分发过程如管理节点100将多个子任务分发至调度信息指示的多个计算节点200上,其中一个计算节点200可用于处理一个或多个子任务。在一种实施方式中,若计算资源充足,则一个计算节点200可用于运行一个子任务,以最大化该任务的并行程度。如请结合图6和图7理解,主计算节点将第一轮迭代所包括的多个子任务分发至计算节点200-a、计算节点200-b、…、计算节点200-n。其中,一个子任务分发至一个计算节点,即向计算节点200-a、计算节点200-b、…、计算节点200-n分别发送一个子任务。如此,多个计算节点200便可以并行执行该多个子任务,即分别预测该城市其中一个区域的天气状况,从而缩短任务的运行时间。
主计算节点可以首先将第一轮迭代的子任务分发下去,第一轮迭代执行完成后,再分发第二轮迭代的子任务,依此类推,或者,也可以将多轮迭代的子任务一起分发下去,比如,将同一区域在不同轮迭代的子任务发送给一个计算节点,例如,子任务1、子任务1'、子任务1''等发送给计算节点200-a,其余子任务也按照区域进行分发,这里不再赘述。
步骤403,计算节点集群20启动执行该任务,并采集执行任务时产生的IO操作的特性值,并将采集到的特性(记为IO参数)值发送给管理节点100。
计算节点集群20执行该任务时,首先执行该任务的第一轮迭代,结合图6和图7理解,计算节点集群20执行第一轮迭代的过程包括:计算节点200-a、200-b、…、200-n执行各自的属于第一轮迭代的子任务,并采集执行该第一轮迭代过程产生的IO操作的IO参数。
如下进行具体介绍:
本领域技术人员可知,天气预测的方法可以是用数学方法构建方程,将区域在一段时间内的气象数据导入方程进行计算求解,从而预测该区域在未来一段时间内的大气变化和状态。其中,气象数据包括该区域内在一段时间内的气象数据,例如气温,风速风向,空气湿度,降雨量等等。上述天气预测方法可以通过运行WRF应用的程序代码(如图7中的wrf.exe)实现,计算节点200每次预测(迭代)便执行一次wrf.exe程序代码:对本轮迭代的初始值进行计算,以得到本次预测(迭代)的计算结果,如预测到的气象数据。另外,该预测方法仅为举例说明,实际上,WRF应用可能包含更复杂的运算,此处不做重点说明。
继续结合图6和图7,第一轮迭代过程具体包括:计算节点200-a执行子任务1:示例性地,计算节点200将区域1在2022.04.30的23:00~24:00内的气象数据,导入方程,计算区域1在2022.05.01的0:00~1:00内的气象数据(记为计算结果1)。参见图7,计算节点200-a向IO节点201发送携带计算节点1的写IO,以将计算结果1写入IO节点201。
类似的,计算节点200-b执行子任务2:将区域2在2022.04.30的23:00~24:00内的气象数据,导入方程,计算该区域2在2022.05.01的0:00~1:00这段时间内的气象数据(记为计算结果2),类似的,将计算结果2通过一个写IO发送至IO节点201。
类似的,计算节点200-c执行子任务3:将区域3在2022.04.30的23:00~24:00内的气象数据,导入方程,计算该区域3在2022.05.01的0:00~1:00这段时间内的气象数据(记为计算结果3),类似的,将计算结果3通过一个写IO发送至IO节点201。
依此类推,各计算节点分别执行第一轮迭代的子任务。
值得注意的是,由于迭代的过程是相同的,因此各计算节点执行一轮迭代所需的时间大致相同,基于此,参见图6所示,在同一轮迭代中,各计算节点执行各自属于同一轮迭代的子任务的启动时间可以是相同的,各子任务的结束时间也大致相同。可以这样理解,若要预测一个城市在某时间段的天气,则该城市的全部区域在该时间段内的天气应同步预测。
需要说明的是,(1)上述任务拆分方式仅为举例,还可以将任务拆分为更小的粒度,例如以一项气象数据为粒度,再将图6中的一个二级子任务进一步细分为用于预测同一区域内各项气象数据的子任务(记为三级子任务),其中每个三级子任务用于预测该区域的一项气象数据,每个三级子任务可以由计算节点200上的一个处理器核处理,多个处理器核并行处理。理论上,任务的并行化执行程度越高,则任务所需的总运行时间便越短。(2)每次的计算结果可以通过一个或多个写IO发送给IO节点201,比如,一个写IO包括气温,风速风向,空气湿度,降雨量等等气象数据,则可以将预测出的各项气象数据置于一个写IO中。或者,也可以通过多个写IO写入预测到的多项气象数据,即一个写IO携带其中一项气象数据,比如一个写IO用于写入预测到的气温值,一个写IO用于写入预测到的风速值,另一个写IO用于写入预测到的降雨量值等,从而通过多个写IO将计算结果写入IO节点201。(3)除计算结果之外,计算节点200还可能与IO节点201有其他数据交互,具体不做限定。(4)图7中,各计算节点200将计算结果均发送至同一个IO节点201,应理解,图7仅为示例,分配给该任务的IO节点201的数量可以为多个,多个IO节点201分担计算节点集群20的写操作,如计算节点200-a、200-b、…、200-i将计算结果发送至IO节点201-a,计算节点200-(i+1)、…、200-n将计算结果发送至IO节点201-b,等等。
示例性地,计算节点200可以运行IO监控软件,每个计算节点200分别通过各自运行的IO监控软件来采集IO参数。具体的,IO参数包括执行IO操作相关的参数以及用于指示IO性能的参数,示例性的,IO参数包括但不限于下列中的一项或多项:
1)每个IO请求中携带的待写入数据的起始地址、待写入数据的数据量大小:数据块是指写IO请求中携带的待写入数据的数据量,具体的,写IO请求包括数据块的起始地址(如偏移量)+数据长度,数据块的大小即为该数据块的数据长度,度量单位可以是Byte、MB、GB等。
2)执行IO操作的进程数量和文件数量:IO模式由执行IO操作的进程数量和文件数量来区分,IO模式:包括1:1、N:1和N:N。其中1:1表示一个进程向一个文件写数据;N:1表示N个进程向一个文件写数据,其中,N取正整数;N:N表示N个进程向多个文件写数据,可以理解为,N个进程独立处理单个或多个文件。
3)涉及元数据的IO请求的数量:元数据用于描述数据,包括数据的键值(如Key)、数据的存储地址等信息。涉及元数据的IO请求包括用于读取元数据的读IO请求,以及用于写入元数据的写IO请求。若涉及元数据的IO请求的数量超过预设阈值则为元数据密集型。元数据密集型出现的原因通常是写入的小碎片数据较多导致的。
4)运行IO操作的时间:可以是完成每个IO操作的时间,还可以是本轮迭代执行所有IO操作的总时间。
示例性地,各计算节点200可以仅将采集到的各项IO参数的值发送给管理节点100。再示例性地,计算节点200可以将采集到的IO参数的值和时间戳一起发送给管理节点100,时间戳可以是采集到IO参数的值的时间,这样,管理节点100可以基于各计算节点200采集的IO参数的时间戳来统计整个计算资源数目所包括的计算节点(如计算节点200-a、200-b、…、200-n,可用计算节点200-i表示)在某时刻的IO参数的值之和,比如,整个计算资源数目在某时刻所产生的所有待写入数据的数据量之和,其中,整个计算资源数目所包括的计算节点也可以称为用于执行该任务的全部计算资源,下文会进行详细说明。需要说明的是,上述IO参数仅为举例,本申请对此不做限定。
步骤404,管理节点100基于计算集群20执行该任务的第一轮迭代过程中的IO参数确定IO优化策略。
管理节点100可以通过下列几种方式识别哪些IO参数属于计算节点200第一轮迭代过程中的:
在一种实施方法中,管理节点100将在任务启动后的预设时间(第一预设时间)内,接收到的IO参数作为第一轮迭代的IO参数,其中第一预设时间为该任务中的一轮迭代所需的时间,第一预设时间段可以基于实验或经验设定或其他方式设定,具体不做限定。
在第二种实施方式中,管理节点100在接收到首个IO参数之后,将时间戳间隔在预设时间(第二预设时间)内的两个IO参数归为第一轮迭代的IO参数,其中第二预设时间也可以基于实验或经验设定或其他方式设定,具体不做限定。
在第三种实施方式中,可以由应用(如WRF应用)配置第一轮迭代的最后一个IO参数的标记,管理节点100将携带该标记的IO参数之前接收到的IO参数,或时间戳在携带该标记的IO参数的时间戳之前的IO参数作为第一轮迭代的IO参数,等等。
第四种实施方式,由管理节点100执行子任务分发时,首先下发第一轮迭代的子任务,第一轮迭代的子任务执行完成后在发送第二轮迭代的子任务,如此,管理节点100可以确定接收到的IO参数是否属于第一轮迭代过程。
管理节点100基于各计算节点200第一轮迭代过程中的IO参数进行分析,确定IO优化策略。该IO优化策略可以应用于后续的一轮迭代或者后续的多轮迭代或者后续每一轮迭代中,用于提高计算节点200执行IO操作的IO性能。
IO优化策略包括但不限于下列中的一项或多项:
策略一:调整执行该任务的IO节点201的数量;
策略二:将多个IO操作(记为第一IO操作)聚合为一个IO操作;
策略三:异步执行一个或多个IO操作(记为第二IO操作)。
示例性地,管理节点100内存储有IO参数与IO优化策略的对应关系,管理节点100基于第一轮迭代的一项或多项IO参数在该对应关系中对应的IO优化策略。表1为本申请实施例提供的一种对应关系的示例。
表1
结合表1理解:
(1)IO节点201的IO带宽是指IO节点201在单位时间内可处理的最大数据量,度量单位可以是MB/s、GB/s等。比如,IO节点201的IO带宽为2GB/s,意为IO节点201在1秒内最多可以写2GB的数据。IO节点201的IO带宽的值可以是IO节点201发送给管理节点100的,也可以是管理节点100基于IO节点201的硬件配置获取的。应注意的是,这里的IO节点201的IO带宽是指IO节点201的能力,并非指IO节点201运行过程中的实时IO带宽,可以理解的是,IO节点201运行过程中的实时IO带宽随其接收到的写IO请求中的待写入数据的数据量的变化而变化。
期望的IO带宽是指能够实现最短IO操作时间的条件下,执行该任务所需的最大IO带宽,示例性地,可以基于用于执行任务的全部计算资源在单位时间内产生的待写入数据的数据量的最大值,计算该任务期望的IO带宽的最大值,其中用于执行任务的全部计算资源在单位时间内产生的待写入数据的数据量等于该全部计算资源中每个计算资源(如计算节点200-a、200-b、…、200-n)在相同时间段内产生的待写入数据的数据量之和。示例性地,可以基于每个计算资源的写IO请求的时间戳确定时间段,进一步基于相同时间段内的每个写IO请求中携带的待写入数据的数据长度确定数据量之和。举例来说,假设管理节点100接收到的,时间戳在同一秒(假设单位时间为秒)内的写IO请求包括写IO请求1、写IO请求2、…写IO请求n,则用于执行任务的全部计算资源在该一秒内产生的数据量等于这些IO请求中携带的待写入数据的数据量之和,即写IO请求1携带的待写入数据的数据量+写IO请求2携带的待写入数据的数据量+写IO请求3携带的待写入数据的数据量+,…+写IO请求n携带的待写入数据的数据量。该一秒的期望的IO带宽可以是各IO请求中携带的待写入数据的数据量之和/秒。同理,分别计算第一轮迭代过程中每一秒对应的期望的IO带宽,进一步获得第一轮迭代中期望的IO带宽最大值。
如果期望的IO带宽最大值为20GB/s,而单个IO节点201的IO带宽为1GB/s,假设用于执行该任务的全部IO节点201为4个,则总IO带宽为4*1GB/s=4GB/s。则基于策略一,4GB/s<80GB/s,进一步确定将IO节点201的数量增加至20/1=20个,从而减少写IO请求在IO节点201侧拥塞,进一步减少任务的运行时间,可以理解,任务的运行时间越短则计算节点200被占用的时间便越短,所需的机时(计算资源数目*任务运行时间(单位:h))越少,因此,也有利于提高计算资源的利用率。
(2)计算节点200可以通过下列方式确定两个写IO请求所写入的数据是否连续:例如,计算节点200执行两个写IO请求中,其中一个写IO请求中的待写入数据的起始地址(偏移量,如7MB)+该待写入数据的数据长度(如3MB)等于另一个写IO请求所携带的待写入数据的起始地址(偏移量,如10MB),则该两个写IO请求所写入的数据为连续的。否则,不是连续的。管理节点100可以将写入数据连续的多个IO请求聚合为一个IO请求,从而减少写操作的执行时间,其中多个是指两个及两个以上。
应注意,前述的每轮迭代的过程相同是指计算过程相同以及产生的IO请求相同。比如,结合图6理解,其中一个计算节点200的第一轮迭代中生成的写IO请求包括:写IO请求A、写IO请求B、写IO请求C。写IO请求A用于写入区域1在0:00-1:00的温度值,写IO请求B用于写入区域1在0:00-1:00的风力值,写IO请求C用于写入区域3在0:00-1:00的降雨概率值。
那么,第二轮迭代也会生成如下IO请求:写IO请求A'、写IO请求B'、写IO请求C',其中,写IO请求A'用于写入区域1在1:00-2:00的温度值,写IO请求B'用于写入区域1在1:00-2:00的风力值,IO操作3'用于写入区域1在1:00-2:00的降雨概率值。
可见,每轮迭代应用生成的写IO请求是相同的,即写IO请求A与写IO请求A'是相同的,写IO请求B与写IO请求B'是相同的,写IO请求C与写IO请求C'是相同的,不同之处仅在于计算结果的值可能是不同的。其中,应用会为每轮迭代中相同的写IO请求生成相同的标识。
假设第一轮迭代中,管理节点100确定写IO请求A、写IO请求B、写IO请求C所写入的数据是连续的,则管理节点100确定的IO优化策略包括,在后续迭代中,将与写IO请求A、写IO请求B、写IO请求C具有相同标识的3个写IO请求聚合为一个写IO请求,如将写IO请求A'、写IO请求B'、写IO请求C'聚合为一个写IO请求。如此可以将多个待写入的小数据块聚合为一个大数据块,通过一次写操作完成该大数据块的写入,避免执行多次写操作,从而减少执行写操作的时间。
同理,如前所述,元数据密集型可能是写入的小碎片数据多导致的,若第一轮迭代为元数据密集型,则管理节点100可以将多个用于写入小碎片数据的写IO请求聚合为一个写IO请求,参见前述的示例,此处不再赘述。
(3)结合图6理解,由于每个计算节点200执行一轮迭代时间大致相同,因此可以基于一个计算节点200在一轮迭代中用于执行IO操作的总时间(执行每个IO操作的时间之和)和一轮迭代的总时间来计算执行IO操作占整轮迭代的时间比例,比如,计算节点200-a执行第一轮迭代的总时间为20分钟,而第一轮迭代中执行IO操作的时间之和为10分钟,则该时间比例为50%。
若该时间比例超过预设比例,则可以理解为计算节点200大部分时间处于等待状态,即等待IO操作执行完毕后,再继续执行计算。这种情况下,计算资源利用率低。针对此,IO优化策略可以包括,异步执行IO操作。异步执行IO操作是指,计算节点200发送写IO请求后,IO节点201可以在将该写IO请求携带的数据写入存储节点300之前,便向计算节点200返回该写IO请求的完成响应,具体的示例如,IO节点201可以将来自计算节点200的写IO请求中携带的数据暂时保存在IO节点201本地的内存或硬盘中,当向计算节点200返回写IO请求的完成响应后,再将本次暂存的数据写入存储节点300。相对于跨节点执行写操作,在本地写入数据所需的时间较短,从而减少计算节点200的等待时间,提高计算节点200的资源利用率。
(4)管理节点100基于本轮迭代的进程数量和文件数量确定IO模式,如果为N:N,则优化策略可以是增加IO节点201的数量。
需要说明的是,本申请实施例的IO优化策略还可以包括减少IO节点201的数量,例如期望的IO带宽小于用于执行任务的全部IO节点201的总IO带宽,则还可以减少IO节点201的数量。该项IO优化策略可以在保证不会延迟执行IO操作的时间的基础上,减少处理任务所需的IO节点201的数量,从而提升IO节点的资源利用率。
应理解,表1仅为一种预设对应关系的示例,该对应关系的编制原则至少包括基于不同IO参数分别确定的IO优化策略互不冲突,比如,最终确定的多项IO优化策略不应该既包括增加IO节点201,又包括减少IO节点201。如果配置的策略中不包括互相冲突的策略,则不需要考虑该问题。如果存在互相冲突的策略,则为防止不同IO参数分别对应的策略互斥,可以在对应关系设置每一组策略对应多项IO参数条件,当多项IO参数同时满足其在对应关系中设置的多项IO条件时才应用该组策略,其中,一组策略包括一个或多个策略,该多个策略互不冲突。比如,当期望的IO带宽的最大值小于用于执行任务的全部IO节点201的总IO带宽,且,IO模式不是N:N时,对应的策略为减少IO节点201。当期望的IO带宽的最大值大于用于执行任务的全部IO节点201的总IO带宽,或,IO模式不是N:N时,对应的策略为增加IO节点201。
需要说明的是,上述IO参数、IO优化策略、及对应关系仅为举例,本申请实施例对此不做限定,任何IO参数、以及可以提高IO性能的IO优化策略以及对应关系均适用于本申请实施例。
步骤405,管理节点100配置IO优化策略应用于该任务的后续迭代。
具体的,可以应用于后续的一轮迭代或者后续的多轮迭代或者后续的每一轮迭代。
示例性地,管理节点100将该IO优化策略发送至计算节点200,计算节点200基于该IO优化策略执行IO操作,如将多个写IO请求聚合为一个写IO请求,将写IO请求发送至增加的IO节点201,等。值得注意的是,计算节点200不感知管理节点100是否在配置IO优化策略,计算节点200持续进行迭代,如果接收到来自管理节点100的IO优化策略时,计算节点200已开始新一轮迭代,则可以在下一轮迭代执行该IO优化策略。
需要说明的是,上述基于第一轮迭代的IO参数优化后续迭代的IO策略仅为示意,本申请实施例还可以根据第i轮迭代的IO参数确定IO优化策略,并基于该IO优化策略优化第(i+m)轮迭代的IO操作,其中i可以取1,2,3,…,k-1中的任意正整数,k为该任务包括的总迭代次数,m可以取遍1,2,3,…等一个或多个正整数,即可以基于第i轮迭代的IO参数确定的IO优化策略,优化第i轮迭代之后的一轮或多轮或每一轮迭代的IO操作。
基于上述设计,管理节点100可以基于计算节点集群20执行任务的第一轮迭代过程中的IO参数确定IO优化策略,并应用该IO优化策略执行后续迭代中的IO操作,该方法可以根据任务自身的配置参数提供针对性的优化策略,不需要使用其他任务的优化策略,如此,即使任务的配置参数发生变化也可以继续优化,从而在本次任务处理过程中便可以实现IO优化,缩短后续迭代的运行时间,从而有效节约大量时间资源,进一步,降低用于执行任务的计算资源被占用的时间,从而缩短整个任务所需的机时,更进一步,计算资源被占用的时间变短,计算资源在相同时间内可以用于处理更多任务,有利于提高计算资源的利用率。
需要说明的是,本申请实施例提供的方法中管理节点100所执行的用于确定IO优化策略的方法还可以由其他设备执行,如独立的服务器。
在一种实施方式中,IO节点集群21和存储系统30可以共同部署,如IO节点201和存储节点300可以部署于一个硬件装置中,该硬件装置可以称为IO节点也可以称为存储节点。参见图8所示,图8为本申请实施例提供的另一种系统架构示意图。图8与图1的区别在于,图8中的存储节点301具备图1中的IO节点201和存储节点300的功能,其余节点及其功能与图1相同,此处不再赘述。其中,图8中的存储节点也可以称为IO节点。
需要说明的是,在图8的架构中,由于省去了IO节点201,因此,IO优化策略不包括调整IO节点201的数量,基于图8所示的架构实施本申请提供的方法流程与图4所示的方法流程类似,此处不再赘述。
基于与方法实施例同一发明构思,本申请实施例还提供了一种管理设备,该设备用于执行上述图4方法实施例中管理节点100执行的方法。如图9所示,管理设备900包括获取模块901、处理模块902;具体地,在管理设备900中,各模块之间通过通信通路建立连接。
获取模块901,用于获取所述计算节点集群在执行第i个子任务时对应IO操作的特性值,其中i大于等于1,小于N;具体实现方式请参见图4中的步骤401的描述,此处不再赘述。
处理模块902,用于根据所述第i个子任务对应的IO操作的特性值确定IO优化策略;具体实现方式请参见图4中的步骤404的描述,此处不再赘述。应用所述IO优化策略至所述第i个子任务之后的子任务中。具体实现方式请参见图4中的步骤405的描述,此处不再赘述。
本申请实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述相关方法步骤,以实现上述实施例中的管理节点100所执行的方法,参见图4相关步骤的描述,此处不再赘述。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的管理节点100所执行的方法,参见图4相关步骤的描述,此处不再赘述。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中管理节点100所执行的方法,参见图4相关步骤的描述,此处不再赘述。
其中,本申请实施例提供的管理设备900、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的管理节点100对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元(或模块)可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本申请实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。
Claims (19)
1.一种任务处理系统,其特征在于,所述系统包括管理节点、及计算节点集群;
所述计算节点集群用于执行任务,所述任务包括N个子任务,所述N个子任务迭代执行,N取大于1的正整数;
所述管理节点用于获取所述计算节点集群在执行第i个子任务时对应IO操作的特性值,其中i大于等于1,小于N;
所述管理节点根据所述第i个子任务对应的IO操作的特性值确定IO优化策略;
所述管理节点应用所述IO优化策略至所述第i个子任务之后的子任务中。
2.如权利要求1所述的系统,其特征在于,所述系统还包括IO节点集群,所述IO节点集群用于处理所述计算节点集群在执行所述任务时产生的IO操作。
3.如权利要求2所述的系统,其特征在于,所述IO优化策略包括下列中的一项或多项策略:
调整所述IO节点集群中执行所述第i个子任务之后的子任务的IO节点的数量;或
将执行所述第i个子任务之后的子任务中多个IO操作聚合为一个IO操作;或
异步执行所述第i个子任务之后的子任务中的一个或多个IO操作。
4.如权利要求1-3任一项所述的系统,其特征在于,所述IO操作的特性值包括下列中的一项或多项:
所述计算节点集群执行所述第i个子任务时产生的每个IO操作所传输的数据的数据量大小;
所述计算节点集群用于执行所述第i个子任务时产生的IO操作的进程的数量或者所述IO操作所涉及的文件的数量;
所述计算节点集群执行所述第i个子任务时产生的IO操作所写入的数据的位置;
所述计算节点集群执行所述第i个子任务时产生的涉及元数据的IO操作的数量;
所述计算节点集群执行所述第i个子任务时运行每个IO操作的时间。
5.如权利要求1-4任一项所述的系统,其特征在于,所述管理节点中包括IO操作的特性值与IO优化策略的对应关系,所述管理节点在根据所述第i个子任务对应的IO操作的特性值确定IO优化策略,具体用于:
根据所述第i个子任务的IO操作的特性值和所述对应关系确定IO优化策略。
6.如权利要求1-5任一项所述的系统,其特征在于,所述第i个子任务的输出为第i+1个子任务的输入。
7.一种任务处理方法,其特征在于,所述方法应用于任务管理系统,所述系统包括管理节点、及计算节点集群,所述计算节点集群用于执行任务,所述任务包括N个子任务,所述N个子任务迭代执行,N取大于1的正整数;
所述方法包括:
所述管理节点获取所述计算节点集群在执行第i个子任务时对应IO操作的特性值,其中i大于等于1,小于N;
所述管理节点根据所述第i个子任务对应的IO操作的特性值确定IO优化策略;
所述管理节点应用所述IO优化策略至所述第i个子任务之后的子任务中。
8.如权利要求7所述的方法,其特征在于,所述系统还包括IO节点集群,所述IO节点集群用于处理所述计算节点集群在执行所述任务时产生的IO操作。
9.如权利要求8所述的方法,其特征在于,所述IO优化策略包括下列中的一项或多项策略:
调整所述IO节点集群中执行所述第i个子任务之后的子任务的IO节点的数量;或
将执行所述第i个子任务之后的子任务中多个IO操作聚合为一个IO操作;或
异步执行所述第i个子任务之后的子任务中的一个或多个IO操作。
10.如权利要求7-9任一项所述的方法,其特征在于,所述IO操作的特性值包括下列中的一项或多项:
所述计算节点集群执行所述第i个子任务时产生的每个IO操作所传输的数据的数据量大小;
所述计算节点集群用于执行所述第i个子任务时产生的IO操作的进程的数量或者所述IO操作所涉及的文件的数量;
所述计算节点集群执行所述第i个子任务时产生的IO操作所写入的数据的位置;
所述计算节点集群执行所述第i个子任务时产生的涉及元数据的IO操作的数量;
所述计算节点集群执行所述第i个子任务时运行每个IO操作的时间。
11.如权利要求7-10任一项所述的方法,其特征在于,所述管理节点中包括IO操作的特性值与IO优化策略的对应关系;
所述管理节点在根据所述第i个子任务对应的IO操作的特性值确定IO优化策略,包括:
根据所述第i个子任务的IO操作的特性值和所述对应关系确定IO优化策略。
12.如权利要求7-11任一项所述的方法,其特征在于,所述第i个子任务的输出为第i+1个子任务的输入。
13.一种管理设备,其特征在于,包括:
获取模块,用于获取所述计算节点集群在执行任务的第i个子任务时对应IO操作的特性值,其中i大于等于1,小于N;所述任务包括N个子任务,所述N个子任务迭代执行,N取大于1的正整数;
处理模块,用于根据所述第i个子任务对应的IO操作的特性值确定IO优化策略;应用所述IO优化策略至所述第i个子任务之后的子任务中。
14.如权利要求13所述的设备,其特征在于,所述IO优化策略包括下列中的一项或多项策略:
调整所述IO节点集群中执行所述第i个子任务之后的子任务的IO节点的数量;或
将执行所述第i个子任务之后的子任务中多个IO操作聚合为一个IO操作;或
异步执行所述第i个子任务之后的子任务中的一个或多个IO操作;其中,所述IO节点集群用于处理所述计算节点集群在执行所述任务时产生的IO操作。
15.如权利要求13或14所述的设备,其特征在于,所述IO操作的特性值包括下列中的一项或多项:
所述计算节点集群执行所述第i个子任务时产生的每个IO操作所传输的数据的数据量大小;
所述计算节点集群用于执行所述第i个子任务时产生的IO操作的进程的数量或者所述IO操作所涉及的文件的数量;
所述计算节点集群执行所述第i个子任务时产生的IO操作所写入的数据的位置;
所述计算节点集群执行所述第i个子任务时产生的涉及元数据的IO操作的数量;
所述计算节点集群执行所述第i个子任务时运行每个IO操作的时间。
16.如权利要求13-15任一项所述的设备,其特征在于,所述设备中包括IO操作的特性值与IO优化策略的对应关系;所述设备在根据所述第i个子任务对应的IO操作的特性值确定IO优化策略,具体用于:
根据所述第i个子任务的IO操作的特性值和所述对应关系确定IO优化策略。
17.如权利要求13-16任一项所述的设备,其特征在于,所述第i个子任务的输出为第i+1个子任务的输入。
18.一种计算装置,其特征在于,所述计算装置包括处理器和存储器;
所述存储器,用于存储计算机程序指令;
所述处理器执行调用所述存储器中的计算机程序指令执行如权利要求7至12中任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质被存储设备执行时,所述存储设备执行上述权利要求7至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210365491.4A CN116932156A (zh) | 2022-04-07 | 2022-04-07 | 一种任务处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210365491.4A CN116932156A (zh) | 2022-04-07 | 2022-04-07 | 一种任务处理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932156A true CN116932156A (zh) | 2023-10-24 |
Family
ID=88391396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210365491.4A Pending CN116932156A (zh) | 2022-04-07 | 2022-04-07 | 一种任务处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932156A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117453376A (zh) * | 2023-12-20 | 2024-01-26 | 宁德时代新能源科技股份有限公司 | 高通量计算的控制方法、装置、设备及存储介质 |
-
2022
- 2022-04-07 CN CN202210365491.4A patent/CN116932156A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117453376A (zh) * | 2023-12-20 | 2024-01-26 | 宁德时代新能源科技股份有限公司 | 高通量计算的控制方法、装置、设备及存储介质 |
CN117453376B (zh) * | 2023-12-20 | 2024-05-03 | 宁德时代新能源科技股份有限公司 | 高通量计算的控制方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096349B (zh) | 一种基于集群节点负载状态预测的作业调度方法 | |
Peng et al. | Optimus: an efficient dynamic resource scheduler for deep learning clusters | |
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
US10089140B2 (en) | Dynamically adaptive, resource aware system and method for scheduling | |
US9092266B2 (en) | Scalable scheduling for distributed data processing | |
US20190324819A1 (en) | Distributed-system task assignment method and apparatus | |
US9104498B2 (en) | Maximizing server utilization within a datacenter | |
US8892780B2 (en) | Management of shared storage I/O resources | |
US20170177221A1 (en) | Dynamic core allocation for consistent performance in a non-preemptive scheduling environment | |
CN102541460B (zh) | 一种多磁盘场景下的磁盘管理方法和设备 | |
US20170010919A1 (en) | Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy | |
CN103761146A (zh) | 一种MapReduce动态设定slots数量的方法 | |
Liu et al. | CORP: Cooperative opportunistic resource provisioning for short-lived jobs in cloud systems | |
CN116467082A (zh) | 一种基于大数据的资源分配方法及系统 | |
CN116932156A (zh) | 一种任务处理方法、装置及系统 | |
Sun et al. | Cloud platform scheduling strategy based on virtual machine resource behaviour analysis | |
JP5810918B2 (ja) | スケジューリング装置、スケジューリング方法及びプログラム | |
CN115344358A (zh) | 资源调度方法、装置和管理节点 | |
Anan et al. | SLA-based optimization of energy efficiency for green cloud computing | |
CN114911604A (zh) | 资源调度方法、装置和管理设备 | |
US11080092B1 (en) | Correlated volume placement in a distributed block storage service | |
CN109324886A (zh) | 集群资源调度方法和装置 | |
Zhou et al. | Stability property of clouds and cooperative scheduling policies on multiple types of resources in cloud computing | |
US11169720B1 (en) | System and method for creating on-demand virtual filesystem having virtual burst buffers created on the fly | |
CN116932196A (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 |