CN115220902A - 计算资源的管理方法、系统以及装置 - Google Patents
计算资源的管理方法、系统以及装置 Download PDFInfo
- Publication number
- CN115220902A CN115220902A CN202110401864.4A CN202110401864A CN115220902A CN 115220902 A CN115220902 A CN 115220902A CN 202110401864 A CN202110401864 A CN 202110401864A CN 115220902 A CN115220902 A CN 115220902A
- Authority
- CN
- China
- Prior art keywords
- computing
- task
- management
- computing resource
- subtask
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004364 calculation method Methods 0.000 claims abstract description 48
- 230000006870 function Effects 0.000 claims abstract description 21
- 230000001133 acceleration Effects 0.000 claims description 39
- 230000015654 memory Effects 0.000 claims description 33
- 238000004891 communication Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000013528 artificial neural network Methods 0.000 claims description 4
- 239000007787 solid Substances 0.000 claims description 4
- 238000007726 management method Methods 0.000 abstract description 212
- 238000010586 diagram Methods 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 150000002632 lipids Chemical class 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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
-
- 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/44568—Immediately runnable code
-
- 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
-
- 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
提供一种计算资源的管理方法,该方法应用于计算资源的管理系统,包括一个管理设备和至少一个计算设备,其中,管理设备与计算设备相连接,管理系统还包括至少一个计算资源,计算资源是所述管理设备以及所述计算设备中具有计算功能的硬件。管理方法包括:管理设备获取待执行的计算任务以及计算任务的编译类型,计算任务包括多个子任务;然后根据计算资源的参数和计算任务的编译类型将每个子任务分配给一个计算资源,同时将执行指令和子任务的参数至被分配的计算资源所在的计算设备。最后,管理设备根据每个计算设备的执行结果得到计算任务的结果。所述管理方法可以综合考虑计算资源和计算任务的参数,充分发挥计算集群的能力。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种计算资源的管理方法、系统以及装置。
背景技术
随着数据规模的增长,对单核心或者单台设备的计算能力的提升已无法得到较高的性价比收益。为了满足日益增长的计算能力需求,使用多个计算资源协同作业完成计算任务的集群计算技术被提出并不断发展,以提高计算系统的整体计算能力。传统的集群计算技术采用基于开源消息传递接口(open message passing interface,OpenMPI)实现进程间以及节点间的并行计算。然而这种方法在使用不同计算资源进行计算时,需要用户显性的调用不同接口指定计算任务的分配,例如在openMPI中使用NVIDIA的GPU时,需要用户了解CUDA库的接口并手动调用,增加了用户的学习成本。不仅如此,当切换正在使用的计算资源时,需要对计算任务的源代码进行重新的移植和适配。因此,如何提供一种简单高效地管理计算资源,提高计算系统的整体计算能力的方法成为亟待解决的技术问题。
发明内容
本申请提供了一种计算资源的管理方法、装置和计算机设备,以此提供一种简单高效的管理计算资源的方法,提高计算集群的整体计算能力并降低用户的编程难度。
第一方面,提供一种计算资源的管理方法,该方法应用于计算资源的管理系统,包括一个管理设备和至少一个计算设备,其中,管理设备与计算设备相连接,管理系统包括至少一个计算资源,计算资源是所述管理设备以及所述计算设备中具有计算功能的硬件。管理方法包括:管理设备获取待执行的计算任务以及计算任务的编译类型,包括多个子任务;然后管理设备根据计算资源的参数和计算任务的编译类型将每个子任务分配给一个计算资源,并且发送指令和子任务的参数至被分配的计算资源的计算设备,其中,指令用于指示所述计算设备执行分配的子任务。计算设备执行分配的子任务,再由管理设备获取计算任务的执行结果。通过上述方法,管理设备可以根据计算资源的参数以及计算任务的编译类型,选择合适的计算资源协同计算任务,提高了管理系统的计算能力。
在一种可能的实现方式中,管理设备将每个子任务分配给一个计算资源,具体包括:管理设备根据计算任务的编译类型编译所述计算任务的源代码得到可执行二进制文件;然后,管理设备根据计算资源的参数和计算任务的编译类型将每个子任务与一个计算资源相匹配;最后,管理设备将可执行二进制文件发送至被匹配的计算资源所在的计算设备。通过上述方法,用户可以使用管理设备编译好所有的可执行二进制文件,分别发送给每一个执行子任务的计算资源所在的计算设备,而无需在不同的计算设备上单独编译,减少了使用管理系统的复杂程度。
在另一种可能的实现方法中,在管理设备获取待执行的计算任务以及计算任务的编译类型之前,可以获取所述管理系统中的所述计算资源的类型;那么,管理设备将每个子任务与一个计算资源相匹配,包括:管理设备将每个子任务与一个计算资源相匹配,所述计算资源的类型和所述计算任务的编译类型中任一种编译类型相同。通过上述方法,用户可以指定计算任务的编译类型,由管理设备根据编译类型选择不同的计算资源完成计算任务,并且管理设备可以集成多种类型的编译器和连接器,同时无需修改源代码便可以完成多种编译类型的编译,减少了用户的编程难度。
在另一种可能的实现方法中,在管理设备获取待执行的计算任务以及计算任务的编译类型之前,可以获取所述管理系统中的所述计算资源的类型;那么,管理设备将每个子任务与一个计算资源相匹配,包括:管理设备将每个子任务与一个计算资源相匹配,其中,计算资源的类型和计算任务的编译类型中任一种编译类型相同,并且计算资源的性能满足匹配的子任务的性能需求。通过上述方法,可以在满足用户指定的编译类型的需求上,由管理设备根据计算资源的性能优先选择满足要求的计算资源完成计算任务。
在另一种可能的实现方法中,计算资源的性能包括,计算资源的运行频率、计算资源的运行内存、和计算资源所在的计算设备与所述管理设备通信的时延的其中一个或多个。通过上述方法,管理设备可以综合考虑多种性能因素,提高计算任务的计算效率。
在另一种可能的实现方法中,计算设备包括处理器和至少一个加速硬件,则计算设备执行分配的子任务,具体包括:计算设备获取管理设备发送的指令和子任务的参数;当分配的计算资源为计算设备的处理器时,由处理器执行所述子任务并将子任务的计算结果发送给管理设备;当分配的计算资源为计算设备的加速硬件时,由处理器将所述子任务的参数发送至加速硬件,由加速硬件执行所述子任务,然后处理器将子任务的计算结果发送给管理设备。通过上述方法,计算设备可以单独完成被分配的计算任务,以免管理设备无法直接访问计算设备上的加速硬件。
在另一种可能的实现方法中,管理设备获取计算任务的执行结果,还包括:管理设备获取每个子任务分配的计算资源的执行状态;当所述计算资源执行失败时,对执行失败的计算资源进行标记,并且根据计算资源的参数和计算任务的编译类型重新将执行失败的子任务分配给另一个计算资源。通过上述方法,管理设备可以实行计算资源的智能调配,以免计算任务执行失败。
在另一种可能的实现方法中,计算资源包括:中央处理器、图形处理器、张量处理器、神经网络处理器、数据处理器、现场可编程门阵列、智能网卡和智能固态硬盘中的其中一个或多个。
第二方面,本申请提供一种计算资源的管理装置,管理装置可以与至少一个计算设备相连接,所述管理装置包括用于执行第一方面或第一方面任一种可能实现方式中的计算资源的管理装置方法的各个模块。
第三方面,本申请提供一种计算资源的管理系统,包括一个管理设备和至少一个计算设备,管理设备与计算设备相连接。其中,管理系统包括至少一个计算资源,计算资源是管理设备以及计算设备中具有计算功能的硬件:所述管理设备和所述计算设备,用于实现如上述第一方面及第一方面任意一种可能实现方式中相应主体所执行的方法的操作步骤。
第四方面,本申请提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中用于存储计算机执行指令,所述计算机设备运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述计算资源的管理设备中的硬件资源执行第一方面或第一方面任一种可能实现方式中所述方法的操作步骤。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可能实现方式中所述方法的操作步骤。
第六方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面或第一方面任一种可能实现方式中所述方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1是本申请实施例提供的一种计算资源的管理系统100的结构示意图;
图2是本申请提供的一种计算资源的管理方法的流程示意图;
图3是本申请实施例提供的一种添加了OpenMP导语的C程序的编译模块的示意图;
图4是本实施例提供的计算集群协同计算资源完成计算任务的方法的流程示意图;
图5是本申请提供的一种管理装置500的示意图。
具体实施方式
下面结合附图对本申请实施例中的技术方案进行描述。
图1为本申请实施例提供的一种计算资源的管理系统100的结构示意图,如图所示,系统100包括管理设备110以及至少一个计算设备,例如计算设备1至计算设备m,m为大于或等于2的整数。其中,管理设备110与所有的计算设备(1至m)之间,以及所有的计算设备(1至m)之间通过网络进行通信。网络包括有线或无线的传输方式,其中,有线的传输方式包括利用以太、光纤等形式进行数据传输,无线传输方式包括移动热点(Wi-Fi)、蓝牙、红外等传输方式。在实际应用中,管理设备和计算设备可以是具有计算功能的设备,例如服务器。为了便于描述,图1中的系统100也可以被称为计算集群。
管理设备110用于协同至少一个计算设备完成用户发布的待执行的计算任务。管理设备110包括内存111、处理器112和通信接口114,管理设备还可以包括一个或者多个加速硬件,例如加速硬件1131至加速113n。内存111、处理器112以及所有加速硬件通过总线连接,可以是数据总线,还可以是电源总线、控制总线和状态信号总线等,该总线也可以为其他类型实现设备内器件间连接的总线。
处理器112用于执行内存111存储的计算机执行指令以实现管理设备110的功能。示例性地,处理器112可以是CPU,还可以是其他通用处理器、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
内存111可以包括只读存储器和随机存取存储器,并向处理器112提供指令和数据。内存111还可以包括非易失性随机存取存储器。内存111也可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double datadate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
加速硬件为具有计算功能的硬件组件,例如图形处理器(graphics processingunit,GPU)、张量处理器(tensor processing unit,TPU)、神经网络处理器(neuralnetwork processing unit,NPU)、数据处理器(data processing unit,DPU)、现场可编程门阵列、智能网卡(network interface controller,NIC)和智能固态硬盘(solid-statedrive,SSD)。各个加速硬件的类型可以相同也可以不同。加速硬件用来执行管理设备分配的计算任务,并将计算结果反馈给处理器112。
与管理设备110的结构类似,计算设备也包括内存、处理器和通信接口,计算设备还可以包括一个或者多个加速硬件。例如,计算设备1包括内存121、处理器122和加速硬件1231至加速硬件123n。
不同类型的加速硬件需要使用不同的编译器和连接器,将源代码编译为可执行的二进制文件之后,才能在该加速硬件上运行。因此,在管理设备110中可以集成多种编译器和连接器,根据加速硬件的类型将计算任务的源代码编译为能在指定类型的加速硬件上执行的二进制文件。管理设备110还可以获取所有计算设备的加速硬件的参数,根据参数选择合适的计算设备,将编译好的计算任务的可执行二进制文件发送给相应计算设备,计算设备的处理器可以接收管理设备110分配的计算任务的可执行二进制文件,并将计算任务发送给加速硬件执行,例如处理器122接收到管理设备110分配的计算任务后,可以将计算任务发送给加速硬件1231至加速硬件123n中的任意一个或多个加速硬件执行。
可选地,处理器122还可以自己执行管理设备分配的计算任务。
可选地,管理设备110也可以将计算任务分配给自己执行,例如,管理设备110可以将计算任务分配给处理器112以及加速硬件1131至加速硬件113n中的任意一个或多个硬件执行。
需要说明的是,可以从计算设备1至计算设备m中选择任意一台计算设备作为新的管理设备,那么管理设备110将作为新的管理设备所连接的计算设备。
值得说明的是,图1所示的计算资源的管理系统架构仅仅是为了更好的说明本申请所提供的计算资源的管理方法所提供的系统架构的示例,并不构成对本申请实施例的限定。
本申请实施例提供一种计算资源的管理方法,可以使用管理设备统一管理多个计算设备上的计算资源,按照计算资源的类型和性能分配待计算的任务,无需用户根据每个计算设备上的加速硬件的类型不同,手动编译源代码,提高了计算集群的计算能力以及操作效率。
接下来,基于图1所示系统,进一步结合图2详细介绍本申请提供的计算资源的管理方法。图2为本申请提供的一种计算资源的管理方法的流程示意图,可由如图1所示的管理设备110执行,如图所示,具体方法包括:
S201、管理设备110获取连接的计算设备的计算资源的参数。
管理设备110可以通过通信接口114向连接的所有计算设备发送硬件信息管理命令,用于获取计算设备上的计算资源的类型,其中,计算资源包括计算设备的处理器以及位于计算设备上的加速硬件。对于处理器,可以按照芯片架构分为多种类型,例如进阶精简指令集机器(advanced RISC machine,ARM)架构、X86架构、Power架构以及无内部互锁流水级的微处理器(microprocessor without interlocked pipeline Stages,MIPS)架构;对于GPU,可以按照生产厂商分为英伟达(nvidia)和超微半导体(amd)两种类型;对于其他加速硬件,也可以按照生产厂商的不同的分为不同的类型。
根据管理设备110与计算设备之间的通信协议,管理设备110可以将硬件信息管理命令封装为相应的数据包发送给计算设备。
计算设备接收并解析管理设备110命令,识别出是硬件信息管理命令后,将计算资源的类型通过通信接口124返回给管理设备110,由管理设备110根据获取到的所有计算设备的计算资源的类型进行分类。需要说明的是,管理设备110上的处理器和加速硬件也可以看作是计算资源并参与分类。本实施例中的计算资源包括所有计算设备的计算资源,也包括管理设备的计算资源。具体的,计算设备的计算资源包括该计算设备的处理器以及该计算设备的加速硬件。同样的,管理设备的计算资源包括管理设备的处理器和管理设备的加速硬件。
示例性地,可以使用表格记录不同的计算设备上所有计算资源的类型,并将相同类型的计算资源归类,表1是本申请实施例提供的一种计算资源列表,表中记录了每一个计算资源的编号(也可以称作标识)、其所在的计算设备的编号以及类型。每一个计算设备的编号是唯一的,同一台计算设备上的计算资源的编号也是唯一的,而不同计算设备上的计算资源的编号可以相同。需要说明的是,可以使用编号0000单独代表管理设备。将同一种类型的计算资源的记录条目放在一起,以便后续管理设备进行计算任务的分配。例如,如表1所示,ARM类型的计算资源包括两个,分别为计算设备0001的处理器1和计算设备0003的处理器1;X86类型的计算资源包括计算设备0002的处理器1;nvidia类型的计算资源包括两个,分别为计算设备0001的GPU1以及计算设备0002的GPU1。
表1、计算资源列表1
计算设备编号 | 计算资源编号 | 计算资源类型 |
0001 | 处理器1 | ARM |
0003 | 处理器1 | ARM |
0002 | 处理器1 | X86 |
0001 | GPU1 | nvidia |
0002 | GPU1 | Nvidia |
示例性地,还可以使用标签来区分不同的计算设备上计算资源的类型,将相同类型的计算资源打上相同的标签。例如,标识0代表ARM类型的处理器,标识1代表x86类型的处理器,标识2代表nvidia类型的GPU。
可选地,硬件信息管理命令还可以用于获取计算设备上的计算资源的性能,计算设备接收硬件信息管理命令后,还可以将计算资源的性能通过通信接口124返回给管理设备110,由管理设备110先根据获取到的所有计算设备的计算资源的类型分类后,再根据性能参数进行排序。之后,在管理节点分配计算任务的阶段,可以根据排名顺序,优先为排名较高的计算资源分配计算任务。性能参数包括但不限于计算资源的运行频率、计算资源的运行内存、或者计算资源的与管理设备通信的时延。管理设备可以对计算资源按照运行频率进行排序,运行频率越高的计算资源排名越高;管理设备还可以按照运行内存进行排序,运行内存越大的计算资源排名越高;管理设备还可以按照计算资源与管理设备通信的时延进行排序,时延越小的计算资源排名越高;管理设备还可以按照至少两个参数进行排序,例如,管理设备可以分别对运行频率、运行内存以及时延进行打分,然后按照每个计算资源的平均分的高低进行排序。
示例性地,可以使用表格记录不同的计算设备上所有计算资源的类型和性能,表2是本申请实施例提供的另一种计算资源列表,表中记录了每一个计算资源的编号、类型、运行频率、运行频率分数、运行内存、运行内存分数、时延、时延分数、平均分、排列顺序以及其所在的计算设备的编号。如表2所示,计算资源列表2计算了运行频率分数、运行内存分数以及时延分数这三个评分的评分分数,并按照平均分分别对每一种类型下的计算资源进行排序,例如,对于ARM类型处理器,性能从高到低依次为:计算设备0002的处理器1、计算设备0001的处理器1和计算设备0003的处理器1;对于X86类型的处理器1,性能从高到低依次为:计算设备0004的处理器1和计算设备0005的处理器1。
表2、计算资源列表2
可选地,管理设备110还可以根据获取到的计算设备的计算资源的性能对计算资源进行排序。示例性地,表3是本申请实施例提供的另一种计算资源列表,表中记录了每一个计算资源的编号、运行频率、运行频率分数、运行内存、运行内存分数、时延、时延分数、平均分、排列顺序以及其所在的计算设备的编号。
表3、计算资源列表3
可选地,管理设备还可以使用等级对计算资源的性能进行划分。管理设备可以根据获取到的计算设备的计算资源的性能,将性能位于两个阈值区间内的计算资源标记为同一个等级。例如,对于计算资源列表3,可以将平均分位于90至100的计算资源标记为等级一,将平均分位于80至90的计算资源标记为等级二,将平均分位于70至80的计算资源标记为等级三,将平均分位于70分以下的计算资源标记为等级四。
可选地,计算设备接收硬件信息管理命令后,还可以将计算资源的类型和性能参数通过通信接口124返回给管理设备110,由管理设备110先根据获取到的所有计算设备的计算资源的类型分类后,再根据性能参数进行排序。可选地,管理设备还可以根据获取到的性能参数将运行频率低于阈值、运行内存低于阈值或者通信时延高于阈值的计算资源过滤,例如,可以将性能参数的分数低于阈值的计算资源从资源列表中移除。之后,在管理节点分配计算任务的阶段,不会将计算任务分配给被滤掉的计算资源。
可选地,管理设备还可以将获取到的计算资源的参数通过显示界面呈献给用户。
S202、管理设备110获取计算任务。
并行多线程程序设计方案(open multi-processing,OpenMP)是一种基于共享内存的编程模型,支持的编程语言包括C、C++和Fortran。用户可以在源代码中通过添加OpenMP导语,将计算任务分为多个子任务,每一个子任务可以使用一个计算资源执行。用户可以指定计算任务的编译类型以及执行每一个子任务的设备,并由管理设备将计算任务编译为可执行的二进制文件。
源代码中可以使用device语句指定不同的设备执行不同子任务,device括号中的数字表示设备的编号,例如:
#pragma omp target device(0);
子任务0;
#pragma omp target device(1);
子任务1;
设备0用于执行子任务0,设备1用于执行子任务1。其中,不同的子任务可以指定相同的设备执行,但是一个子任务只能由一个设备执行。之后在S203中管理节点分配计算任务的阶段,可以为将设备与计算资源进行匹配,不同编号的设备为不同的计算资源,即可以将不同的子任务分配给不同的计算资源。通过这种方法,在用户层面屏蔽了子任务分配的细节,用户只需要为不同的子任务分配不同的设备,无需了解真正执行子任务的计算资源,降低了使用不同计算资源的编程难度。
可选地,在device语句中,可以为需要更优性能的子任务指定较小的设备编号,例如,上述源代码中,可以表示执行子任务0的设备需要的性能比执行子任务1的设备需要的性能更优。当执行子任务1的设备需要的性能比执行子任务0的设备需要的性能更优时,可以将执行子任务1的设备编号设置为0,将执行子任务0的设备编号设置为1,源代码将变为:
#pragma omp target device(0);
子任务1;
#pragma omp target device(1);
子任务0;
可选地,用户可以不使用decice语句指定设备,由管理设备110为不同的子任务指定设备。管理设备具有设备动态适应功能,用于采取不同的方式为子任务指定设备。当用户启动设备动态适应功能时,管理设备根据计算集群的负载自动为不同的子任务指定设备;当用户关闭设备动态适应功能时,管理设备将全部子任务指定为设备0。
进一步的,用户可以通过编译语句指定计算任务的编译类型,按照指定的编译类型编译得到的二进制文件可以在该类型的计算资源上执行。例如:
clang-fopenmp-fopenmp-targets=x86_64<源代码1>;
其中,<>中间的代码表示源代码的文件名,x86_64表示编译类型为X86,则源代码1中的所有子任务都可以编译为在X86类型的处理器上执行的二进制文件。又例如:
clang-fopenmp-fopenmp-targets=aarch64<源代码2>;
表示编译类型为ARM,源代码2中的所有的子任务都可以编译为在ARM类型的处理器上执行的二进制文件。
可选地,用户还可以同时对一个源代码指定多种编译类型,以便获得可以在不同类型的计算资源上执行的子任务的二进制文件。例如:
clang-fopenmp-fopenmp-targets=x86_64,aarch64<源代码1>;
表示源代码1中每个子任务都被编译为可以在ARM类型以及可以在X86类型的处理器上执行的二进制文件。
可选地,用户也可以不指定编译类型,则表示计算任务中的每一个子任务都可以在任意的计算资源上执行,由管理设备110根据获取到的计算资源的类型参数,将编译类型指定为计算资源的所有类型。
S203、管理设备110分配计算任务。
管理设备获取到计算任务的编译类型之后,将每一个子任务分配给一个计算资源。由于不同的子任务可以由一个设备执行,则不同的子任务可以分配给同一个计算资源。
首先需要计算任务的源代码编译为可以在不同的计算资源上执行的二进制文件,可以使用支持OpenMP技术的编译器和连接器自动将计算任务并行化,以便将计算任务的源代码编译为能同时在指定类型的计算资源上执行的二进制文件。图3为本申请实施例提供的一种添加了OpenMP导语的C程序的编译模块的示意图,如图3所示,编译模块由管理设备110的处理器112执行,包括管理设备编译器310和计算资源编译器320。需要说明的是,图3中示例性地以一种编译类型为例介绍编译过程,在实际应用过程中,当计算任务中指定多个不同编译类型时,编译模块则包括多个计算资源编译器,每一种编译类型对应一个单独的计算资源编译器,例如编译类型为ARM的计算任务可以使用ARM编译器进行编译,得到可以在ARM类型的处理器上执行的二进制文件;编译类型为X86的计算任务可以使用X86编译器进行编译,得到可以在X86类型的处理器上执行的二进制文件;。
编译器可以分为编译器前端(例如编译器前端311和321)和编译器后端(例如编译器后端312和322)两部分。编译器前端可以将源代码编译为中间表示(IntermediaRepresentation,IR)代码,再由编译器后端继续编译为对象(object)文件。编译器生成的多个对象文件可以进一步由连接器连接得到可执行的二进制文件。
对于管理设备编译器310,通过编译器前端311对源代码的分析,可以将源代码分解为管理设备侧代码和计算资源侧代码。管理设备侧代码用于管理设备实现并行执行子任务的功能,继续由管理设备编译器310负责编译,生成一个对象文件manage.o;计算资源侧代码用于计算资源实现执行计算任务的子任务的功能,由编译器前端311根据编译类型发送给对应类型的计算资源编译器320进行编译,生成对象文件。其中,每一种编译类型可以生成一个对应的对象文件。例如,当用户指定ARM和X86两种编译类型时,编译器前端311将计算资源侧代码发送至ARM编译器和X86编译器,分别得到两个对象文件armdevice.o和x86device.o。
计算资源编译器320在生成对象文件后,由连接器340将对象文件与动态链接库350中的共享对象(share object)连接处理生成可执行的二进制文件deviceimage,也可以被称为镜像文件,每一个对象文件都可以得到一个可执行的二进制文件。动态链接库350中包括多个共享对象,用于与不同类型的编译器生成的对象文件连接,得到可以在对应类型的计算资源上执行的二进制文件。例如,当计算资源侧编译器320为ARM编译器时,连接器340可以将ARM编译器生成的对象文件armdevice.o与动态链接库350中的aarch64版本的libomp.so连接得到可以在ARM类型的处理器上执行的二进制文件deviceimage。
将连接器340生成的deviceimage与管理设备编译器的编译结果重新连接,得到最终的可执行文件集FatBinary,包括可执行的二进制文件host.bin以及device.bin,分别用于在管理设备上以及在计算资源上执行。其中,每一种编译类型的deviceimage生成一个可以在对应类型的计算资源上执行的二进制文件device.bin。具体地,连接器340可以将生成的二进制文件发送给管理设备编译器310中的适配器313,由适配器313将二进制文件与动态链接库360中的共享对象(例如,libopmtarget.rtl.haf.so)一起反编译生成IR代码,再由编译器后端312将IR代码编译为对象文件。每一个连接器340生成的二进制文件都可以得到一个对象文件match.o,最后由连接器330将所有的match.o与manage.o连接得到可执行文件集FatBinary。
可选地,管理设备还可以使用OpenACC技术将计算任务的源代码编译为可以在不同的计算资源上执行的二进制文件。与OpenMP类似,OpenACC也是一种基于制导符的编程标准。
之后,由管理设备110将计算资源与执行子任务需要的设备相匹配,匹配方式存在以下两种场景:
场景一:计算任务只存在一种编译类型。
管理设备可以根据计算资源的类型,将相同类型的计算资源与设备进行匹配。示例性地,当管理设备110获取到的计算资源的参数为计算资源列表1,并且编译类型为ARM时,设备0和设备1可以分别对应计算设备0001的处理器1和计算设备0003的处理器1中的任意一个处理器。
可选地,管理设备还可以根据计算资源的性能参数的排序结果,将同类型的性能较优的计算资源与设备编号较小的设备进行匹配。示例性地,当管理设备110获取到的计算资源的参数为计算资源列表2,并且编译类型为ARM时,设备0可以对应计算设备0002的处理器1,设备1对应计算设备0001的处理器1,设备2对应计算设备0003的处理器1。
场景二:计算任务存在多种编译类型。
管理设备可以根据编译语句中的编译类型的顺序,优先选择编译类型靠前的类型的计算资源匹配设备编号较小的设备。示例性地,当管理设备获取到的计算资源的参数为计算资源列表1,编译语句为clang-fopenmp-fopenmp-targets=x86_64,aarch64<源代码>时,使用编译类型为X86的计算资源匹配设备编号较小的设备,即设备0对应计算设备0002的处理器1,而设备1和设备2分别对应计算设备0001的处理器1和计算设备0003的处理器1中的任意一个处理器。示例性地,当管理设备获取到的计算资源的参数为计算资源列表1,编译语句为clang-fopenmp-fopenmp-targets=aarch64,x86_64<源代码>时,使用编译类型为ARM的计算资源匹配设备编号较小的设备,即设备0和设备1分别对应计算设备0001的处理器1和计算设备0003的处理器1中的任意一个处理器,设备2对应计算设备0002的处理器1。
可选地,类似场景一,在匹配同一种类型的计算资源时,管理设备还可以根据计算资源的性能参数的排序结果,将同类型的性能较优的计算资源与设备编号较小的设备进行匹配。示例性地,当管理设备获取到的计算资源的参数为计算资源列表2,编译语句为clang-fopenmp-fopenmp-targets=aarch64,x86_64<源代码>时,设备0对应计算设备0002的处理器1,设备1对应计算设备0001的处理器1,设备2对应计算设备0003的处理器1,设备3对应计算设备0004的处理器1,设备4对应计算设备0005的处理器1。
可选地,管理设备还可以根据计算资源的性能参数的排序结果,将编译语句中所有指定类型的性能较优的计算资源与设备编号较小的设备进行匹配。示例性地,当管理设备获取到的计算资源的参数为计算资源列表3,编译语句为clang-fopenmp-fopenmp-targets=aarch64,x86_64<源代码>时,设备0对应计算设备0002的处理器1,设备1对应计算设备0004的处理器1,设备2对应计算设备0003的处理器1,设备3对应计算设备0001的处理器1,设备4对应计算设备0005的处理器1。
管理设备110将计算资源与执行子任务的设备匹配之后,可以根据匹配结果和编译类型,将可执行二进制文件device.bin发送给匹配的计算资源所在的计算设备,完成计算任务中的子任务的分配。
具体地,当只存在一种编译类型时,根据步骤S202,编译模块生成一个可执行二进制文件device.bin,由管理设备将该二进制文件分别发送给匹配的计算资源所在的计算设备。当计算任务存在多种编译类型时,根据步骤S202,对于每一种编译类型,编译模块生成一个可执行二进制文件device.bin,则由管理设备将每一种编译类型对应的可执行二进制文件发送给该类型的匹配的计算资源所在的计算设备。例如对于计算资源列表2,当设备0对应计算设备0002的处理器1,设备1对应计算设备0001的处理器1,设备2对应计算设备0003的处理器1,设备3对应计算设备0004的处理器1,设备4对应计算设备0005的处理器1时。管理设备将ARM类型对应的可执行二进制文件发送给计算设备0002、0001和0003,将X86类型对应的可执行二进制文件发送给计算设备0004和0005。
可选地,管理设备110可以标识计算资源的可用状态,当管理设备110将可执行二进制文件发送给对应计算资源时,可以将这个计算资源的标记为已使用,则该计算资源不会再次于其他的子任务对应的设备相匹配。当该计算资源完成计算并将结果返回给管理设备之后,管理设备可以取消已使用的标记,释放该计算资源。
S204、管理设备110执行计算任务。
管理设备110可以通过执行二进制文件host.bin协同多个计算资源一起得到计算任务的计算结果,按照前文所述的匹配规则,计算任务中的子任务分别由执行设备匹配的计算资源完成。host.bin运行后,管理设备110通过通讯接口114向对应的计算资源所在的计算设备发送计算任务执行命令以及执行的计算模块的子任务所需的参数,该参数包括子任务的指针以及子任务需要的待计算数据。计算任务执行命令用于指示计算设备使用对应的计算资源执行S202步骤中获取到的二进制文件device.bin,以得到相应计算模块子任务的计算结果。
类似的,根据管理设备110与计算设备之间的通信协议,管理设备110可以将计算任务执行命令和计算模块子任务所需的参数封装为相应的数据包发送给计算设备。
S205、计算设备执行计算任务。
计算设备接收并解析管理设备110的命令,识别出是计算任务执行命令后,判断执行该子任务的计算资源是否为计算设备的处理器。如果是,则直接由计算设备的处理器执行子任务;如果不是,则说明该计算资源为计算设备的一个加速硬件,由计算设备的处理器将接收到的待计算数据发送至相应的加速硬件执行子任务。最后,计算设备通过通讯接口124将得到计算结果返回给管理设备110。
S206、管理设备110得到计算任务的计算结果。
管理设备根据获取到的子任务的计算结果得到最终计算任务的计算结果。
管理设备110还可以获取计算资源中子任务的执行状态,当子任务执行失败时,管理设备可以按照S203的匹配方法,重新为执行该子任务的设备匹配一个计算资源。当一个计算资源多次执行失败时,管理设备可以将该计算资源标识为不可用资源,并且停止将子任务匹配给该资源。可选地,管理设备还可以把多次执行失败的计算资源从计算资源可用列表中移除。
通过上述方法,本申请中的计算资源的管理方法可以使用管理设备110连接多个计算设备的多个计算资源,根据计算任务中的编译类型以及获取到计算资源的性能参数,为子任务匹配合适的计算资源,共同执行计算任务,提高了集群系统的计算效率和可用性。
上文中结合图2和图3,详细描述了本申请实施例所提供的计算资源的管理方法。下面将结合图4,以一个具体的示例阐述计算集群协同计算资源完成计算任务的方法。图4为本实施例提供的计算集群协同计算资源完成计算任务的方法的流程示意图,示例性地,计算任务的源代码为:
#pragma omp target device(0);
子任务0;
#pragma omp target device(1);
子任务1;
#pragma omp target device(2);
子任务2;
#pragma omp target device(3);
子任务3;
编译语句为:
clang-fopenmp-fopenmp-targets=x86_64,aarch64,nvptx64<源代码>;
计算集群包括管理设备110与计算设备0001和计算设备0002,其中,管理设备110包括ARM类型的处理器112,计算设备0001包括X86类型的处理器122和nvidia的GPU,计算设备0002包括ARM类型的处理器132,具体方法如下:
S4011、管理设备110向计算设备0001发送硬件信息管理命令。
S4012、管理设备110向计算设备0002发送硬件信息管理命令。
S402、计算设备0001将处理器122和GPU的类型和性能参数发送给管理设备110。
S403、计算设备0002将处理器132的类型和性能参数发送给管理设备110。
S404、管理设备110根据获取到的计算资源的参数生成计算资源列表4,管理设备110的设备编号为0000,计算资源列表4如下:
计算资源列表4
S405、管理设备110获取计算任务,从计算任务的源代码以及用户指定的编译类型可以得到,子任务0-3分别使用设备0-3执行,编译类型为X86、ARM以及nvidia。经过编译,管理设备110得到的可执行文件集FatBinary包括host.bin、X86类型的device.bin、ARM类型的device.bin以及nvidia类型的device.bin。
S406、管理设备110分配计算任务。
根据S203的匹配规则,设备0对应计算设备0001的处理器122,设备1对应自身的处理器112,设备2对应计算设备0002的处理器132,设备3对应计算设备0001的GPU。
S4071、管理设备110将X86类型的device.bin和nvidia类型的device.bin发送给计算设备0001。
S4072、管理设备110将ARM类型的device.bin发送给计算设备0002。
S408、执行管理设备的可执行二进制文件host.bin,启动计算任务的计算。
S491、管理设备110向计算设备0001发送计算任务执行命令、子任务0以及子任务3的参数。
S492、管理设备110向计算设备0002发送计算任务执行命令和子任务2的参数。
S410、管理设备110的处理器112得到子任务1的结果。
S411、计算设备0001判断执行子任务0和3的计算资源是否为处理器。
S4121、计算设备0001的处理器122执行子任务0。
S4122、计算设备0001的处理器122将子任务3的待计算数据发送给GPU。
S4123、计算设备0001的GPU执行子任务3。
S4124、计算设备0001的GPU将子任务3的结果发送给处理器122。
S413、计算设备0001将子任务0和3的计算结果发送给管理设备110。
S414、计算设备0002判断执行子任务2的计算资源是否为处理器。
S415、计算设备0002的处理器132执行子任务2。
S416、计算设备0002将子任务2的计算结果发送给管理设备110。
S417、管理设备110根据获取到的所有子任务的结果得到计算任务的结果。
值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制。
本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本申请的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。
上文中结合图1至图4,详细描述了本申请实施例所提供的一种计算资源的管理方法,下面将结合图5,进一步介绍本申请实施例所提供的一种计算资源的管理装置。
图5为本申请提供的一种管理装置500的示意图,用于实现图2所示的计算资源的管理方法,管理装置与至少一个计算设备相连接,包括获取单元501、分配单元502和发送单元503。
获取单元501,用于获取待执行的计算任务以及计算任务的编译类型,其中,计算任务包括多个子任务;还用于获取计算任务的执行结果。获取单元501的功能的具体实现可参考图2中S202和S206的步骤,这里不再赘述。
分配单元502,用于根据计算资源的参数和计算任务的编译类型将每个子任务分配给一个计算资源;其中,计算资源是所述管理装置以及计算设备中具有计算功能的硬件。分配单元502的功能的具体实现可参考图2中S203的步骤,这里不再赘述。
发送单元503,用于发送指令和子任务的参数至被分配的计算资源的计算设备,其中,指令用于指示计算设备执行分配的子任务。发送单元503的功能的具体实现可参考图2中S204的步骤,这里不再赘述。
应理解的是,本申请实施例的管理装置500所包含的各个模块可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),现场可编程门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。另外,上述模板也可以通过中央处理器调用存储器中的程序指令来实现。在实际产品中,管理装置500可以由图1所示的管理设备110执行,也可以由一台单独的设备执行。
可选地,分配单元502还用于根据计算任务的编译类型编译计算任务的源代码得到可执行二进制文件,并且根据所述计算资源的参数和计算任务的编译类型将每个子任务与一个计算资源相匹配。则发送单元503还用于将生成的可执行二进制文件发送至被匹配的计算资源所在的计算设备。
可选地,在管理设备获取待执行的计算任务以及计算任务的编译类型之前,获取单元501还用于获取计算资源的类型,具体地,获取单元501的功能的实现可参考图2中S201的步骤,这里不再赘述。则分配单元502,还用于将每个子任务与一个计算资源相匹配,其中计算资源的类型和计算任务的编译类型中任一种编译类型相同。
可选地,在管理设备获取待执行的计算任务以及计算任务的编译类型之前,获取单元501还用于获取计算资源的类型和性能。具体地,获取单元501的功能的实现可参考图2中S201的步骤,这里不再赘述。则分配单元502,还用于将每个子任务与一个计算资源相匹配,其中计算资源的类型和计算任务的编译类型中任一种编译类型相同,并且计算资源的性能满足匹配的子任务的性能需求。
可选地,获取单元501还用于获取每个子任务分配的计算资源的执行状态;则分配单元502,还用于当计算资源执行失败时,对执行失败的计算资源进行标记;并且根据计算资源的参数和计算任务的编译类型重新将执行失败的子任务分配给另一个计算资源。
可选地,管理装置还包括执行单元504,当被分配的计算资源属于管理装置时,执行单元504用于执行分配的子任务。
综上所述,本申请实施例提供的管理装置500可以综合考虑计算资源的参数和计算任务的参数,将计算任务的子任务分配给合适的计算资源,提高计算集群的整体计算效率。并且还可以根据编译类型在管理装置侧将计算任务编译为可执行的二进制文件,根据匹配结果发送至各个计算资源所在的计算设备,减少用户的使用难度。
本申请还提供一种计算资源的管理系统,包括一个管理设备和至少一个计算设备,管理设备与计算设备相连接。其中,管理系统包括至少一个计算资源,计算资源是管理设备以及计算设备中具有计算功能的硬件:所述管理设备和所述计算设备,用于实现如上述第一方面及第一方面任意一种可能实现方式中相应主体所执行的方法的操作步骤。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (19)
1.一种计算资源的管理方法,其特征在于,所述方法应用于计算资源的管理系统,所述管理系统包括一个管理设备和至少一个计算设备,所述管理设备与所述计算设备相连接,所述管理系统包括至少一个计算资源,所述计算资源是所述管理设备以及所述计算设备中具有计算功能的硬件,所述方法包括:
所述管理设备获取待执行的计算任务以及所述计算任务的编译类型,所述计算任务包括多个子任务;
所述管理设备根据所述计算资源的参数和所述计算任务的编译类型将每个子任务分配给一个计算资源;
所述管理设备发送指令和子任务的参数至被分配的计算资源所在的的计算设备,所述指令用于指示所述计算设备执行分配的子任务;
所述计算设备执行分配的子任务;
所述管理设备获取所述计算任务的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述管理设备将每个子任务分配给一个计算资源,所述方法具体包括:
所述管理设备根据所述计算任务的编译类型编译所述计算任务的源代码得到可执行二进制文件;
所述管理设备根据所述计算资源的参数和所述计算任务的编译类型将每个子任务与一个计算资源相匹配;
所述管理设备将所述可执行二进制文件发送至被匹配的计算资源所在的计算设备。
3.根据权利要求2所述的方法,其特征在于,在所述管理设备获取待执行的计算任务以及所述计算任务的编译类型之前,所述方法包括:
所述管理设备获取所述管理系统中的所述计算资源的类型;
则所述管理设备将每个子任务与一个计算资源相匹配,包括:
所述管理设备将每个子任务与一个计算资源相匹配,所述计算资源的类型和所述计算任务的编译类型中任一种编译类型相同。
4.根据权利要求2所述的方法,其特征在于,在所述管理设备获取待执行的计算任务以及所述计算任务的编译类型之前,所述方法包括:
所述管理设备获取所述管理系统中的所述计算资源的类型和性能;
则所述管理设备将需要的硬件的性能较高的子任务,包括:
所述管理设备将每个子任务与一个计算资源相匹配,所述计算资源的类型和所述计算任务的编译类型中任一种编译类型相同,并且所述计算资源的性能满足匹配的子任务的性能需求。
5.根据权利要求4所述的方法,其特征在于,所述计算资源的性能包括,计算资源的运行频率、计算资源的运行内存、和计算资源所在的计算设备与所述管理设备通信的时延的其中一个或多个。
6.根据权利要求1-5任一所述的方法,其特征在于,所述计算设备包括处理器和至少一个加速硬件,则所述计算设备执行分配的子任务,具体包括:
所述计算设备获取所述管理设备发送的指令和子任务的参数;
当分配的计算资源为所述计算设备的处理器时,所述处理器执行所述子任务;所述处理器将所述子任务的计算结果发送给所述管理设备;
当分配的计算资源为所述计算设备的加速硬件时,所述处理器将所述子任务的参数发送至所述加速硬件,由所述加速硬件执行所述子任务;所述处理器将所述子任务的计算结果发送给所述管理设备。
7.根据权利要求1-6任一所述的方法,其特征在于,所述管理设备获取所述计算任务的执行结果,还包括:
所述管理设备获取每个子任务分配的计算资源的执行状态;
当所述计算资源执行失败时,所述管理设备对执行失败的计算资源进行标记;
所述管理设备根据所述计算资源的参数和所述计算任务的编译类型重新将执行失败的子任务分配给另一个计算资源。
8.根据权利要求1-7所述的方法,其特征在于,所述计算资源包括:中央处理器、图形处理器、张量处理器、神经网络处理器、数据处理器、现场可编程门阵列、智能网卡和智能固态硬盘中的其中一个或多个。
9.一种计算资源的管理装置,其特征在于,所述管理装置与至少一个计算设备相连接,所述管理装置包括获取单元、分配单元和发送单元:
所述获取单元,用于获取待执行的计算任务以及所述计算任务的编译类型,所述计算任务包括多个子任务;还用于获取所述计算任务的执行结果;
所述分配单元,用于根据计算资源的参数和所述计算任务的编译类型将每个子任务分配给一个计算资源;所述计算资源是所述管理装置以及所述计算设备中具有计算功能的硬件;
所述发送单元,用于发送指令和子任务的参数至被分配的计算资源所在的计算设备,所述指令用于指示所述计算设备执行分配的子任务。
10.根据权利要求9所述的管理装置,其特征在于,所述分配单元还用于:
根据所述计算任务的编译类型编译所述计算任务的源代码得到可执行二进制文件;
根据所述计算资源的参数和所述计算任务的编译类型将每个子任务与一个计算资源相匹配;
则所述发送单元还用于将所述可执行二进制文件发送至被匹配的计算资源所在的计算设备。
11.根据权利要求10所述的管理装置,其特征在于,在所述管理设备获取待执行的计算任务以及所述计算任务的编译类型之前,所述获取单元还用于:
获取所述计算资源的类型;
则所述分配单元,还用于将每个子任务与一个计算资源相匹配,所述计算资源的类型和所述计算任务的编译类型中任一种编译类型相同。
12.根据权利要求10所述的管理装置,其特征在于,在所述管理设备获取待执行的计算任务以及所述计算任务的编译类型之前,所述获取单元还用于:
获取所述计算资源的类型和性能;
则所述分配单元,还用于将每个子任务与一个计算资源相匹配,所述计算资源的类型和所述计算任务的编译类型中任一种编译类型相同,并且所述计算资源的性能满足匹配的子任务的性能需求。
13.根据权利要求12所述的管理装置,其特征在于,所述计算资源的性能包括,计算资源的运行频率、计算资源的运行内存、和计算资源所在的计算设备与所述管理设备通信的时延的其中一个或多个。
14.根据权利要求9-13任一所述的管理装置,其特征在于,所述获取单元,还用于:
获取每个子任务分配的计算资源的执行状态;
则所述分配单元,还用于当所述计算资源执行失败时,对执行失败的计算资源进行标记;根据所述计算资源的参数和所述计算任务的编译类型重新将执行失败的子任务分配给另一个计算资源。
15.根据权利要求9-14任一所述的管理装置,其特征在于,所述管理装置还包括执行单元:
当所述被分配的计算资源属于所述管理装置时,所述执行单元用于执行分配的子任务。
16.根据权利要求9-15任一所述的管理装置,其特征在于,所述计算资源包括:中央处理器、图形处理器、张量处理器、神经网络处理器、数据处理器、现场可编程门阵列、智能网卡和智能固态硬盘中的其中一个或多个。
17.一种计算资源的管理系统,其特征在于,所述管理系统包括一个管理设备和至少一个计算设备,所述管理设备与所述计算设备相连接,所述管理系统包括至少一个计算资源,所述计算资源是所述管理设备以及所述计算设备中具有计算功能的硬件:
所述管理设备,用于获取待执行的计算任务以及所述计算任务的编译类型,所述计算任务包括多个子任务;还用于根据计算资源的参数和所述计算任务的编译类型将每个子任务分配给一个计算资源,所述计算资源是所述管理装置以及所述计算设备中具有计算功能的硬件;还用于发送指令和子任务的参数至被分配的计算资源所在的计算设备,所述指令用于指示所述计算设备执行分配的子任务;还用于获取所述计算任务的执行结果;
所述计算设备,用于执行所述管理设备分配的子任务。
18.根据权利要求17所述的系统,其特征在于,所述管理设备,还用于:
根据所述计算任务的编译类型编译所述计算任务的源代码得到可执行二进制文件;
根据所述计算资源的参数和所述计算任务的编译类型将每个子任务与一个计算资源相匹配;
将所述可执行二进制文件发送至被匹配的计算资源所在的计算设备。
19.根据权利要求17或18所述的方法,所述计算设备包括处理器和至少一个加速硬件,则所述计算设备执行分配的子任务,还用于:
获取所述管理设备发送的指令和子任务的参数;
当分配的计算资源为所述计算设备的处理器时,所述处理器执行所述子任务;所述处理器将所述子任务的计算结果发送给所述管理设备;
当分配的计算资源为所述计算设备的加速硬件时,所述处理器将所述子任务的参数发送至所述加速硬件,由所述加速硬件执行所述子任务;所述处理器将所述子任务的计算结果发送给所述管理设备。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110401864.4A CN115220902A (zh) | 2021-04-14 | 2021-04-14 | 计算资源的管理方法、系统以及装置 |
PCT/CN2022/086743 WO2022218366A1 (zh) | 2021-04-14 | 2022-04-14 | 计算资源的管理方法、系统以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110401864.4A CN115220902A (zh) | 2021-04-14 | 2021-04-14 | 计算资源的管理方法、系统以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115220902A true CN115220902A (zh) | 2022-10-21 |
Family
ID=83604415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110401864.4A Pending CN115220902A (zh) | 2021-04-14 | 2021-04-14 | 计算资源的管理方法、系统以及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115220902A (zh) |
WO (1) | WO2022218366A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444632B2 (en) * | 2003-09-25 | 2008-10-28 | International Business Machines Corporation | Balancing computational load across a plurality of processors |
CN110874212B (zh) * | 2015-06-30 | 2021-08-20 | 华为技术有限公司 | 一种硬件加速方法、编译器以及设备 |
CN111124656B (zh) * | 2018-10-31 | 2023-09-15 | 伊姆西Ip控股有限责任公司 | 用于向专用计算资源分配任务的方法、设备和计算机可读存储介质 |
CN112579286B (zh) * | 2020-12-16 | 2021-08-06 | 全芯智造技术有限公司 | 用于光源掩模优化的方法、设备和存储介质 |
CN112560392B (zh) * | 2020-12-16 | 2021-08-10 | 全芯智造技术有限公司 | 用于处理电路版图的方法、设备和存储介质 |
CN112559181B (zh) * | 2020-12-16 | 2024-05-03 | 全芯智造技术有限公司 | 用于电路版图的热点检测方法、设备和存储介质 |
-
2021
- 2021-04-14 CN CN202110401864.4A patent/CN115220902A/zh active Pending
-
2022
- 2022-04-14 WO PCT/CN2022/086743 patent/WO2022218366A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022218366A1 (zh) | 2022-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3285170B1 (en) | Application profiling job management system, program, and method | |
KR101630749B1 (ko) | 데이터센터 리소스 할당 | |
CN1186722C (zh) | 用于使用寄存器分配器建立调用约定序言和收尾程序代码的方法和装置 | |
CN111104120B (zh) | 神经网络编译方法、系统及相应异构计算平台 | |
US11704161B2 (en) | Method, device and computer program product for processing computing job | |
US11385931B2 (en) | Method, electronic device, and computer program product for processing computing job | |
JP2014525640A (ja) | 並列処理開発環境の拡張 | |
JP2004220583A (ja) | アセンブラにおいて大域的プロセッサ資源割当てを実行するための方法およびシステム | |
CN113515483A (zh) | 一种数据传输方法及装置 | |
CN109196476A (zh) | 共享垃圾收集器的不同类型图之间的无缝高性能互操作性 | |
US20230333913A1 (en) | Methods and apparatus to configure heterogenous components in an accelerator | |
US20160132272A1 (en) | Information processing apparatus, communication method and information processing system | |
US7983890B2 (en) | Method and apparatus performing automatic mapping for a multi-processor system | |
JPH07230429A (ja) | 分散処理制御方法及び分散処理システム | |
US9280493B2 (en) | Method and device for enumerating input/output devices | |
CN111026397B (zh) | 一种rpm包分布式编译方法及装置 | |
CN106844024B (zh) | 一种自学习运行时间预测模型的gpu/cpu调度方法及系统 | |
CN109542464A (zh) | IoT设备脚本程序的开发部署系统、方法及存储介质 | |
CN115220902A (zh) | 计算资源的管理方法、系统以及装置 | |
JP6953768B2 (ja) | 支援装置、プログラム | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
CN114911610A (zh) | 一种任务编译方法、装置和编译器 | |
CN113918290A (zh) | 一种api调用方法以及装置 | |
CN113568599B (zh) | 用于处理计算作业的方法、电子设备和计算机程序产品 | |
CN113791942B (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 |