CN116401043A - 一种计算任务的执行方法和相关设备 - Google Patents
一种计算任务的执行方法和相关设备 Download PDFInfo
- Publication number
- CN116401043A CN116401043A CN202310217786.1A CN202310217786A CN116401043A CN 116401043 A CN116401043 A CN 116401043A CN 202310217786 A CN202310217786 A CN 202310217786A CN 116401043 A CN116401043 A CN 116401043A
- Authority
- CN
- China
- Prior art keywords
- computing
- computing device
- instance
- data
- preset condition
- 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 97
- 238000013507 mapping Methods 0.000 claims description 70
- 230000001934 delay Effects 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 14
- 230000008878 coupling Effects 0.000 claims description 8
- 238000010168 coupling process Methods 0.000 claims description 8
- 238000005859 coupling reaction Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 72
- 238000013468 resource allocation Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 208000036829 Device dislocation Diseases 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer 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/5061—Partitioning or combining of resources
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Abstract
本申请实施例提供了一种计算任务的执行方法和相关设备。该方法包括:第一计算设备确定第一数据存储在第一存储空间中,第一数据为第一计算实例执行第一计算任务所需的数据,第一计算实例当前运行在第一计算设备或第二非统一内存访问NUMA节点中,第一存储空间包括第一NUMA节点或第二计算设备的存储空间;第一计算设备将第一计算实例的寄存器信息传输至第一存储空间。该方法可以在第一计算实例执行第一计算任务时,将第一计算实例迁移至执行第一计算任务所需的数据所在的NUMA节点或计算设备中,从而节省第一计算实例远程迁移或读取数据的时间,提高第一计算实例或第一计算设备的计算性能,进而提高执行计算任务的效率。
Description
技术领域
本申请实施例涉及计算机领域,并且更具体地,涉及一种计算任务的执行方法、计算装置、计算设备、芯片系统和计算机可读介质。
背景技术
传统的数据中心架构一直以单片服务器作为部署和操作单元,即一个计算实例仅可以部署于一台物理计算设备上,从而导致数据中心中存在部分物理计算设备剩余有部分存储资源和/或计算资源,且该部分存储资源和/或计算资源无法被有效利用。计算实例可以包括虚拟机或容器等。目前的内存池化技术可以提供远程存储空间供物理计算设备访问,使得物理计算设备可以优先分配计算资源,并在物理计算设备的存储资源不足时利用该远程存储空间,以满足用户的存储需求。具体地,在物理计算设备上的计算实例执行计算任务时,物理计算设备可以根据计算任务的执行需求或通过预测的方式,将执行该计算任务所需的数据提前从远程存储空间迁移至物理计算设备中,从而可以节省由于远程迁移或读取数据所花费的时间,进而避免降低物理计算设备或计算实例的运行性能。但由于物理计算设备难以精确地预测当前计算实例所需的数据,并且同一物理计算设备上的多个计算实例在数据迁移时存在额外的资源竞争,因此在执行计算任务时,数据迁移的方式容易导致物理计算设备或计算实例的计算性能较低,从而导致执行计算任务所需的时间较长。
因此,如何提高物理计算设备或计算实例的计算性能,从而提高计算任务的执行效率成为亟待解决的问题。
发明内容
本申请实施例提供一种计算任务的执行方法、计算装置、计算设备、芯片系统和计算机可读介质,可以在执行计算任务时,将计算实例迁移至数据所在的非统一内存访问(non uniform memory access,NUMA)节点或计算设备,从而提高计算实例或计算设备的计算性能,进而提高计算任务的执行效率。
第一方面,提供了一种计算任务执行方法,该方法包括:第一计算设备确定第一数据存储在第一存储空间中;第一计算设备将第一计算实例的寄存器信息传输至第一存储空间。
其中,第一数据为第一计算实例执行第一计算任务所需的数据,该第一计算实例当前运行在第一计算设备中。第一存储空间包括第一NUMA节点或第二计算设备的存储空间。第一NUMA节点为第一计算设备中除第二NUMA节点外的NUMA节点,第二NUMA节点为第一计算实例当前所在的NUMA节点。第二计算设备与第一计算设备连接。第一计算实例的寄存器信息用于执行第一计算任务。
本申请实施例中,第一计算设备可以在第一计算实例执行第一计算任务时,将第一计算实例的寄存器信息传输给第一数据所在的NUMA节点或第二计算设备,从而使得第一计算实例可以运行于第一NUMA节点或第二计算设备中。也即,第一计算设备可以将第一计算实例迁移至执行第一计算任务所需的数据所在的NUMA节点或计算设备,从而节省第一计算实例远程读取数据的时间,提高第一计算实例或第一计算设备的计算性能,进而提高执行第一计算任务的效率。
结合第一方面,在第一方面的某些实现方式中,在第一存储空间为第一NUMA节点的存储空间时,第一计算实例确定第一数据未存储在第二NUMA节点中;第一计算设备或第一计算实例根据第一映射关系和第一数据的存储地址,确定第一NUMA节点,该第一映射关系用于指示数据的存储地址与NUMA节点的标识信息之间的对应关系。
本申请实施例中,第一计算设备或第一计算实例可以通过第一映射关系,确定第一数据当前所在的NUMA节点,从而便于将第一计算实例的寄存器信息迁移至对应的NUMA节点中。
结合第一方面,在第一方面的某些实现方式中,在第一存储空间为第一NUMA节点的存储空间时,第一计算设备将第一计算实例的寄存器信息存储至第一缓存中,该第一缓存为第二NUMA节点的缓存;第一计算设备将第一缓存中的数据同步至第二缓存中,第二缓存为第一NUMA节点的缓存。
本申请实施例中,第一计算设备可以通过同步不同NUMA节点中的缓存,将第一计算实例的寄存器信息存储至第一NUMA节点中,从而便于第一计算实例在第一NUMA节点中运行。
结合第一方面,在第一方面的某些实现方式中,在第一存储空间为第一NUMA节点的存储空间时,第一NUMA节点根据第一计算实例的寄存器信息和第一数据,执行第一计算任务。
本申请实施例中,第一NUMA节点可以根据第一计算实例的寄存器信息,运行第一计算实例。由于第一计算实例的寄存器信息的数据量小于第一数据的数据量,因此迁移第一计算实例的寄存器信息的时间小于迁移第一数据的时间。并且,由于第一数据存储在第一NUMA节点中,因此可以节省第一计算实例跨NUMA节点访问第一数据的时间,从而可以提高执行第一计算任务的效率。
结合第一方面,在第一方面的某些实现方式中,在第一存储空间为第二计算设备的存储空间时,第一计算实例确定第一数据未存储在第一计算设备中;第一计算设备或第一计算实例根据第二映射关系和第一数据的存储地址,确定第二计算设备,第二映射关系用于指示数据的存储地址与计算设备的标识信息之间的对应关系。
本申请实施例中,第一计算设备或第一计算实例可以通过第二映射关系,确定第一数据当前所在的计算设备,从而便于将第一计算实例的寄存器信息迁移至对应的计算设备中。
结合第一方面,在第一方面的某些实现方式中,在第一存储空间为第二计算设备的存储空间时,第一计算设备将第一计算实例的寄存器信息发送给第二计算设备;或者,第一计算设备向第二计算设备发送第一指示信息,第一指示信息用于指示第二计算设备获取第一计算实例的寄存器信息。
本申请实施例中,第一计算设备可以将第一计算实例的寄存器信息传输给第二计算设备,从而使得第二计算设备可以运行第一计算实例,并执行第一计算任务。由于第一计算实例的寄存器信息的数据量小于第一数据的数据量,因此迁移第一计算实例的寄存器信息的时间小于迁移第一数据的时间。并且,由于第一数据存储在第二计算设备中,因此可以节省第一计算实例跨计算设备访问第一数据的时间,从而可以提高执行第一计算任务的效率。
结合第一方面,在第一方面的某些实现方式中,在满足第一预设条件时,第一计算设备根据第一资源请求,为第一计算实例分配第一资源。该第一资源请求用于指示第一计算实例的预设资源总量。第一预设条件包括至少一个计算设备的可用资源之和大于或等于预设资源总量。第一资源包括至少一个计算设备中一个或多个计算设备的资源,该至少一个计算设备包括第一计算设备,或者该至少一个计算设备与第一计算设备连接。
本申请实施例中,第一计算设备可以根据第一资源请求,为第一计算实例分配至少一个NUMA节点或至少一个计算设备的资源,从而可以充分利用每个NUMA节点或每个计算设备中的可用资源,避免造成资源浪费。第一计算设备为第一计算实例分配第一资源后,第一计算实例可以运行在该至少一个NUMA节点或至少一个计算设备中,从而在执行第一计算任务时,可以切换至第一数据所在的NUMA节点或计算设备中运行,进而可以提高执行第一计算任务的效率。
结合第一方面,在第一方面的某些实现方式中,在满足第二预设条件和第一预设条件时,第一计算设备根据第一资源请求,为第一计算实例分配第一资源。该第二预设条件包括第一资源对应的计算设备中任意两个计算设备的时延中的最大值小于或等于预设阈值。
本申请实施例中,在为第一计算实例分配多个计算设备中的资源时,第一计算设备还需考虑该多个计算设备之间的时延。第一计算设备可以避免该多个计算设备中存在两个计算设备之间的时延较长,从而避免第一计算实例在该两个计算设备之间切换时花费较多时间。
结合第一方面,在第一方面的某些实现方式中,在满足第三预设条件时,第一计算设备向第四计算设备发送第一请求信息。或者,在满足第三预设条件时,第一计算设备向第四计算设备发送第一资源请求。
其中,第三预设条件包括第一集合的可用资源之和小于预设资源总量。第一请求信息用于请求第二集合中的可用资源。第一集合包括一个或多个计算设备,第一计算设备属于第一集合。第二集合包括一个或多个计算设备,第四计算设备属于第二集合。第一集合中的计算设备与第二集合中的计算设备连接于不同的交换设备。
本申请实施例中,在第一集合中的可用资源之和不能满足第一计算实例的资源需求时,第一计算设备可以请求第二集合中的资源,以满足第一计算实例的资源需求。或者,第一计算设备可以直接转发该第一资源请求,以便除第一计算设备外的计算设备可以为第一计算实例分配资源。
结合第一方面,在第一方面的某些实现方式中,在满足第四预设条件和第三预设条件时,第一计算设备向第四计算设备发送第一资源请求。该第四预设条件包括第三集合中任意两个计算设备的时延中的最大值大于预设阈值,第三集合包括第一集合中的可用资源对应的至少一个计算设备。
本申请实施例中,第一计算设备可以在请求第二集合的资源之前,确定第一集合中的可用资源对应的计算设备之间的时延,并在存在大于预设阈值的时延时,转发该第一资源请求,从而避免为第一计算实例分配时延较长的计算设备中的资源。
第二方面,提供了一种计算任务的执行方法。该方法包括:第二计算设备获得第一计算实例的寄存器信息;第二计算设备根据第一数据和第一计算实例的寄存器信息,执行第一计算任务。
其中,第一计算实例的寄存器信息用于执行第一计算任务。在第二计算设备获得第一计算实例的寄存器信息前,第一计算实例运行于第一计算设备中,第一计算设备与第二计算设备连接。第一数据为执行第一计算任务所需的数据,第一数据存储于第二计算设备中。
本申请实施例中,第二计算设备可以根据第一计算实例的寄存器信息,运行第一计算实例并执行第一任务。由于第一计算实例的寄存器信息的数据量小于第一数据的数据量,因此迁移第一计算实例的寄存器信息的时间小于迁移第一数据的时间。并且,由于第一数据存储在第二计算设备中,因此可以节省第一计算实例跨计算设备访问第一数据的时间,从而可以提高执行第一计算任务的效率。
结合第二方面,在第二方面的某些实现方式中,第二计算设备接收来自于第一计算设备的第一计算实例的寄存器信息;或者,第二计算设备接收来自于第一计算设备的第一指示信息,根据第一指示信息,从第一计算设备中获取第一计算实例的寄存器信息。
结合第二方面,在第二方面的某些实现方式中,在第二计算设备中包括多个NUMA节点时,第二计算设备确定第三NUMA节点,第三NUMA节点为该多个NUMA节点中的任一个NUMA节点,第一数据存储在第三NUMA节点中;第二计算设备将第一计算实例的寄存器信息存储至第三NUMA节点。
本申请实施例中,第二计算设备可以确定第一数据当前所在的NUMA节点,并将第一计算实例的寄存器信息存储至该NUMA节点中,从而避免第一计算实例跨NUMA节点访问第一数据,节省第一计算实例执行第一计算任务的时间。
结合第二方面,在第二方面的某些实现方式中,第二计算设备根据第三映射关系和第一数据的存储地址,确定第三NUMA节点。该第三映射关系用于指示数据的存储地址与NUMA节点的标识信息之间的对应关系。
本申请实施例中,第二计算设备可以通过第三映射关系,确定第一数据当前所在的NUMA节点,从而便于将第一计算实例的寄存器信息存储至对应的NUMA节点中。
结合第二方面,在第二方面的某些实现方式中,在满足第一预设条件时,第二计算设备根据第一资源请求,为第一计算实例分配第一资源。该第一资源请求用于指示第一计算实例的预设资源总量。第一预设条件包括至少一个计算设备的可用资源之和大于或等于预设资源总量。第一资源包括至少一个计算设备中一个或多个计算设备的资源,该至少一个计算设备包括第二计算设备,或者该至少一个计算设备与第二计算设备连接。
本申请实施例中,第二计算设备可以根据第一资源请求,为第一计算实例分配至少一个NUMA节点或至少一个计算设备的资源,从而可以充分利用每个NUMA节点或每个计算设备中的可用资源,避免造成资源浪费。第二计算设备为第一计算实例分配第一资源后,第一计算实例可以运行在该至少一个NUMA节点或至少一个计算设备中,从而在执行第一计算任务时,可以切换至第一数据所在的NUMA节点或计算设备中运行,进而可以提高执行第一计算任务的效率。
结合第二方面,在第二方面的某些实现方式中,在满足第二预设条件和第一预设条件时,第二计算设备根据第一资源请求,为第一计算实例分配第一资源。第二预设条件包括第一资源对应的计算设备中任意两个计算设备的时延中的最大值小于或等于预设阈值。
本申请实施例中,在为第一计算实例分配多个计算设备中的资源时,第二计算设备还需考虑该多个计算设备之间的时延。第二计算设备可以避免该多个计算设备中存在两个计算设备之间的时延较长,从而避免第一计算实例在该两个计算设备之间切换时花费较多时间。
结合第二方面,在第二方面的某些实现方式中,在满足第三预设条件时,第二计算设备向第四计算设备发送第一请求信息。或者,在满足第三预设条件时,第二计算设备向第四计算设备发送第一资源请求。
其中,第三预设条件包括第一集合的可用资源之和小于预设资源总量。第一请求信息用于请求第二集合中的可用资源。第一集合包括一个或多个计算设备,第二计算设备属于第一集合。第二集合包括一个或多个计算设备,第四计算设备属于第二集合。第一集合中的计算设备与第二集合中的计算设备连接于不同的交换设备。
本申请实施例中,在第一集合中的可用资源之和不能满足第一计算实例的资源需求时,第二计算设备可以请求第二集合中的资源,以满足第一计算实例的资源需求。或者,第二计算设备可以直接转发该第一资源请求,以便除第二计算设备外的计算设备可以为第一计算实例分配资源。
结合第二方面,在第二方面的某些实现方式中,在满足第四预设条件和第三预设条件时,第二计算设备向第四计算设备发送第一资源请求。该第四预设条件包括第三集合中任意两个计算设备的时延中的最大值大于预设阈值,第三集合包括第一集合中的可用资源对应的至少一个计算设备。
本申请实施例中,第二计算设备可以在请求第二集合的资源之前,确定第一集合中的可用资源对应的计算设备之间的时延,并在存在大于预设阈值的时延时,转发该第一资源请求,从而避免为第一计算实例分配时延较长的计算设备中的资源。
第三方面,提供了一种计算任务的执行方法。该方法包括:第三计算设备确定第一资源请求;在满足第一预设条件时,第三计算设备根据第一资源请求,为第一计算实例分配第一资源。
其中,第一资源请求用于指示第一计算实例的预设资源总量,第一计算实例用于执行第一计算任务。第一预设条件包括至少一个计算设备的可用资源之和大于或等于预设资源总量。第一资源包括至少一个计算设备中一个或多个计算设备的资源,该至少一个计算设备包括第三计算设备,或者该至少一个计算设备与第三计算设备连接。
本申请实施例中,第三计算设备可以根据第一资源请求,为第一计算实例分配至少一个NUMA节点或至少一个计算设备的资源,从而可以充分利用每个NUMA节点或每个计算设备中的可用资源,避免造成资源浪费。第三计算设备为第一计算实例分配第一资源后,第一计算实例可以运行在该至少一个NUMA节点或至少一个计算设备中,从而在执行第一计算任务时,可以切换至第一数据所在的NUMA节点或计算设备中运行,进而可以提高执行第一计算任务的效率。
结合第三方面,在第三方面的某些实现方式中,在满足第二预设条件和第一预设条件时,第三计算设备根据第一资源请求,为第一计算实例分配第一资源。该第二预设条件包括第一资源对应的计算设备中任意两个计算设备的时延中的最大值小于或等于预设阈值。
本申请实施例中,在为第一计算实例分配多个计算设备中的资源时,第三计算设备还需考虑该多个计算设备之间的时延。第三计算设备可以避免该多个计算设备中存在两个计算设备之间的时延较长,从而避免第一计算实例在该两个计算设备之间切换时花费较多时间。
结合第三方面,在第三方面的某些实现方式中,在满足第三预设条件时,第三计算设备向第四计算设备发送第一请求信息。或者,在满足第三预设条件时,第三计算设备向第四计算设备发送第一资源请求。
其中,第三预设条件包括第一集合的可用资源之和小于预设资源总量。第一请求信息用于请求第二集合中的可用资源。第一集合包括一个或多个计算设备,第三计算设备属于第一集合。第二集合包括一个或多个计算设备,第四计算设备属于第二集合。第一集合中的计算设备与第二集合中的计算设备连接于不同的交换设备。
本申请实施例中,在第一集合中的可用资源之和不能满足第一计算实例的资源需求时,第三计算设备可以请求第二集合中的资源,以满足第一计算实例的资源需求。或者,第三计算设备可以直接转发该第一资源请求,以便除第三计算设备外的计算设备可以为第一计算实例分配资源。
结合第三方面,在第三方面的某些实现方式中,在满足第四预设条件和第三预设条件时,第三计算设备向第四计算设备发送第一资源请求。第四预设条件包括第三集合中任意两个计算设备的时延中的最大值大于预设阈值,第三集合包括第一集合中的可用资源对应的至少一个计算设备。
本申请实施例中,第三计算设备可以在请求第二集合的资源之前,确定第一集合中的可用资源对应的计算设备之间的时延,并在存在大于预设阈值的时延时,转发该第一资源请求,从而避免为第一计算实例分配时延较长的计算设备中的资源。
第四方面,提供了一种计算装置。该计算装置包括:确定模块,用于确定第一数据存储在第一存储空间中;处理模块,用于将第一计算实例的寄存器信息传输至第一存储空间。
其中,第一数据为第一计算实例执行第一计算任务所需的数据,该第一计算实例当前运行在该计算装置中。第一存储空间包括第一NUMA节点或第二计算设备的存储空间。第一NUMA节点为该计算装置中除第二NUMA节点外的NUMA节点,第二NUMA节点为第一计算实例当前所在的NUMA节点。第二计算设备与该计算装置连接。第一计算实例的寄存器信息用于执行第一计算任务。
结合第四方面,在第四方面的某些实现方式中,在第一存储空间为第一NUMA节点的存储空间时,确定模块具体用于确定第一数据未存储在第二NUMA节点中;确定模块还用于根据第一映射关系和第一数据的存储地址,确定第一NUMA节点,该第一映射关系用于指示数据的存储地址与NUMA节点的标识信息之间的对应关系。
结合第四方面,在第四方面的某些实现方式中,在第一存储空间为第一NUMA节点的存储空间时,处理模块具体用于将第一计算实例的寄存器信息存储至第一缓存中,该第一缓存为第二NUMA节点的缓存;处理模块还用于将第一缓存中的数据同步至第二缓存中,第二缓存为第一NUMA节点的缓存。
结合第四方面,在第四方面的某些实现方式中,在第一存储空间为第一NUMA节点的存储空间时,处理模块还用于根据第一计算实例的寄存器信息和第一数据,执行第一计算任务。
结合第四方面,在第四方面的某些实现方式中,在第一存储空间为第二计算设备的存储空间时,确定模块具体用于确定第一数据未存储在该计算装置中;确定模块还用于根据第二映射关系和第一数据的存储地址,确定第二计算设备,第二映射关系用于指示数据的存储地址与计算设备的标识信息之间的对应关系。
结合第四方面,在第四方面的某些实现方式中,在第一存储空间为第二计算设备的存储空间时,处理模块具体用于将第一计算实例的寄存器信息发送给第二计算设备;或者,处理模块具体用于向第二计算设备发送第一指示信息,第一指示信息用于指示第二计算设备获取第一计算实例的寄存器信息。
结合第四方面,在第四方面的某些实现方式中,在满足第一预设条件时,处理模块还用于根据第一资源请求,为第一计算实例分配第一资源。该第一资源请求用于指示第一计算实例的预设资源总量。第一预设条件包括至少一个计算设备的可用资源之和大于或等于预设资源总量。第一资源包括至少一个计算设备中一个或多个计算设备的资源,该至少一个计算设备包括该计算装置,或者该至少一个计算设备与该计算装置连接。
结合第四方面,在第四方面的某些实现方式中,在满足第二预设条件和第一预设条件时,处理模块具体用于根据第一资源请求,为第一计算实例分配第一资源。该第二预设条件包括第一资源对应的计算设备中任意两个计算设备的时延中的最大值小于或等于预设阈值。
结合第四方面,在第四方面的某些实现方式中,在满足第三预设条件时,处理模块还用于向第四计算设备发送第一请求信息。或者,在满足第三预设条件时,处理模块还用于向第四计算设备发送第一资源请求。
其中,第三预设条件包括第一集合的可用资源之和小于预设资源总量。第一请求信息用于请求第二集合中的可用资源。第一集合包括一个或多个计算设备,该计算装置属于第一集合。第二集合包括一个或多个计算设备,第四计算设备属于第二集合。第一集合中的计算设备与第二集合中的计算设备连接于不同的交换设备。
结合第四方面,在第四方面的某些实现方式中,在满足第四预设条件和第三预设条件时,处理模块还用于向第四计算设备发送第一资源请求。该第四预设条件包括第三集合中任意两个计算设备的时延中的最大值大于预设阈值,第三集合包括第一集合中的可用资源对应的至少一个计算设备。
第五方面,提供了一种计算装置。该计算装置包括:确定模块,用于获得第一计算实例的寄存器信息;处理模块,用于根据第一数据和第一计算实例的寄存器信息,执行第一计算任务。
其中,第一计算实例的寄存器信息用于执行第一计算任务。在该计算装置获得第一计算实例的寄存器信息前,第一计算实例运行于第一计算设备中,第一计算设备与该计算装置连接。第一数据为执行第一计算任务所需的数据,第一数据存储于该计算装置中。
结合第五方面,在第五方面的某些实现方式中,确定模块具体用于接收来自于第一计算设备的第一计算实例的寄存器信息;或者,确定模块还用于接收来自于第一计算设备的第一指示信息,根据第一指示信息,从第一计算设备中获取第一计算实例的寄存器信息。
结合第五方面,在第五方面的某些实现方式中,在该计算装置中包括多个NUMA节点时,确定模块还用于确定第三NUMA节点,第三NUMA节点为该多个NUMA节点中的任一个NUMA节点,第一数据存储在第三NUMA节点中;处理模块还用于将第一计算实例的寄存器信息存储至第三NUMA节点。
结合第五方面,在第五方面的某些实现方式中,确定模块具体用于根据第三映射关系和第一数据的存储地址,确定第三NUMA节点。该第三映射关系用于指示数据的存储地址与NUMA节点的标识信息之间的对应关系。
结合第五方面,在第五方面的某些实现方式中,在满足第一预设条件时,处理模块还用于根据第一资源请求,为第一计算实例分配第一资源。该第一资源请求用于指示第一计算实例的预设资源总量。第一预设条件包括至少一个计算设备的可用资源之和大于或等于预设资源总量。第一资源包括至少一个计算设备中一个或多个计算设备的资源,该至少一个计算设备包括该计算装置,或者该至少一个计算设备与该计算装置连接。
结合第五方面,在第五方面的某些实现方式中,在满足第二预设条件和第一预设条件时,处理模块还用于根据第一资源请求,为第一计算实例分配第一资源。第二预设条件包括第一资源对应的计算设备中任意两个计算设备的时延中的最大值小于或等于预设阈值。
结合第五方面,在第五方面的某些实现方式中,在满足第三预设条件时,处理模块还用于向第四计算设备发送第一请求信息。或者,在满足第三预设条件时,处理模块还用于向第四计算设备发送第一资源请求。
其中,第三预设条件包括第一集合的可用资源之和小于预设资源总量。第一请求信息用于请求第二集合中的可用资源。第一集合包括一个或多个计算设备,该计算装置属于第一集合。第二集合包括一个或多个计算设备,第四计算设备属于第二集合。第一集合中的计算设备与第二集合中的计算设备连接于不同的交换设备。
结合第五方面,在第五方面的某些实现方式中,在满足第四预设条件和第三预设条件时,处理模块还用于向第四计算设备发送第一资源请求。该第四预设条件包括第三集合中任意两个计算设备的时延中的最大值大于预设阈值,第三集合包括第一集合中的可用资源对应的至少一个计算设备。
第六方面,提供了一种计算装置。该计算装置包括:确定模块,用于确定第一资源请求;处理模块,用于在满足第一预设条件时,根据第一资源请求,为第一计算实例分配第一资源。
其中,第一资源请求用于指示第一计算实例的预设资源总量,第一计算实例用于执行第一计算任务。第一预设条件包括至少一个计算设备的可用资源之和大于或等于预设资源总量。第一资源包括至少一个计算设备中一个或多个计算设备的资源,该至少一个计算设备包括该计算装置,或者该至少一个计算设备与该计算装置连接。
结合第六方面,在第六方面的某些实现方式中,在满足第二预设条件和第一预设条件时,处理模块具体用于根据第一资源请求,为第一计算实例分配第一资源。该第二预设条件包括第一资源对应的计算设备中任意两个计算设备的时延中的最大值小于或等于预设阈值。
结合第六方面,在第六方面的某些实现方式中,在满足第三预设条件时,处理模块还用于向第四计算设备发送第一请求信息。或者,在满足第三预设条件时,处理模块还用于向第四计算设备发送第一资源请求。
其中,第三预设条件包括第一集合的可用资源之和小于预设资源总量。第一请求信息用于请求第二集合中的可用资源。第一集合包括一个或多个计算设备,该计算装置属于第一集合。第二集合包括一个或多个计算设备,第四计算设备属于第二集合。第一集合中的计算设备与第二集合中的计算设备连接于不同的交换设备。
结合第六方面,在第六方面的某些实现方式中,在满足第四预设条件和第三预设条件时,处理模块还用于向第四计算设备发送第一资源请求。第四预设条件包括第三集合中任意两个计算设备的时延中的最大值大于预设阈值,第三集合包括第一集合中的可用资源对应的至少一个计算设备。
第七方面,提供了一种计算设备。该计算设备包括:处理器,该处理器用于与存储器耦合,读取并执行存储器中的指令和/或程序代码,以执行如第一方面、第二方面、第三方面、第一方面的任一种实现方式、第二方面的任一种实现方式或第三方面的任一种实现方式所述的方法。
第八方面,提供了一种计算任务执行系统。该系统包括:如第四方面或第四方面的任一种实现方式所述的计算装置和如第五方面或第五方面的任一种实现方式所述的计算装置。
第九方面,提供了一种芯片系统,该芯片系统包括逻辑电路,该逻辑电路用于与输入/输出接口耦合,通过该输入/输出接口传输数据,以执行如第一方面、第二方面、第三方面、第一方面的任一种实现方式、第二方面的任一种实现方式或第三方面的任一种实现方式所述的方法。
第十方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当该计算机存储介质在计算机上运行时,使得计算机执行如如第一方面、第二方面、第三方面、第一方面的任一种实现方式、第二方面的任一种实现方式或第三方面的任一种实现方式所述的方法。
第十一方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行如如第一方面、第二方面、第三方面、第一方面的任一种实现方式、第二方面的任一种实现方式或第三方面的任一种实现方式所述的方法。
附图说明
图1是根据本申请一个实施例的计算任务执行系统的示意性结构框图。
图2是根据本申请一个实施例的计算任务的执行方法的示意性流程图。
图3是根据本申请另一实施例的计算任务的执行方法的示意性流程图。
图4是根据本申请另一实施例的计算任务的执行方法的示意性流程图。
图5是根据本申请一个实施例的计算装置的示意性结构框图。
图6是根据本申请一个实施例的计算设备的示意性结构框图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
本申请实施例的技术方案可以应用于包括至少一个NUMA节点的计算设备中,还可以应用于计算设备集群中。本申请实施例中的计算设备可以是笔记本电脑、台式机、服务器等具有计算能力的设备。本申请实施例中的服务器可以是本地服务器或云端服务器等,本申请实施例对此并不限定。
为便于理解本申请实施例,首先对本申请中涉及的几个术语做简单说明。
1、物理计算设备
物理计算设备是指由实体的硬件设备构成、具有完整硬件系统功能的、可以对数据进行计算或运行程序的计算设备。
2、物理处理单元
物理处理单元是实体的硬件设备,例如可以是物理中央处理器(physicalcentral processing unit,pCPU)或物理图形处理器(physical graphics processingunit,pGPU)等硬件,负责在物理计算设备中处理数据或运行程序等。每个物理计算设备中可以包括一个或多个物理处理单元。
3、虚拟计算设备(虚拟机)
虚拟计算设备是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。物理计算设备可以实现的功能在虚拟计算设备中均可以实现。虚拟计算设备依托于物理计算设备,即虚拟计算设备运行在物理计算设备中。在物理计算设备中创建虚拟计算设备时,需要将物理计算设备中的部分存储空间划分给虚拟计算设备使用,即将物理计算设备中的部分存储设备的容量作为虚拟计算设备的存储容量。每个物理计算设备中可以创建一个或多个虚拟计算设备,每个虚拟计算设备均具有各自独立的虚拟处理单元、存储空间和操作系统。
4、虚拟处理单元
虚拟处理单元不是实体的硬件设备。虚拟处理单元负责虚拟计算设备中的数据计算和程序运行等功能。虚拟处理单元依托于物理处理单元,即虚拟处理单元运行在物理处理单元中。也就是说,在虚拟处理单元计算数据或运行程序时,实际是在运行该虚拟处理单元的物理处理单元中计算数据或运行程序。每个物理处理单元中可以包括一个或多个虚拟处理单元。每个虚拟计算设备中可以具有一个或多个虚拟处理单元。
图1是本申请实施例提供的计算任务执行系统的示意性流程框图。图1中的计算任务执行系统100包括第一计算设备110。
第一计算设备110中可以部署至少一个计算实例,或者说该至少一个计算实例运行于第一计算设备110中。第一计算实例为该至少一个计算实例中的任一个计算实例。第一计算实例可以包括虚拟机或容器等,本申请实施例对此并不限定。
可选地,第一计算设备110中可以包括至少两个NUMA节点。每个NUMA节点中包括处理单元、存储空间等,即每个NUMA节点具有计算和存储能力。每个NUMA节点中可以部署至少一个计算实例,或者说该至少一个计算实例可以运行于一个NUMA节点中。
在一些实施例中,第一计算实例可以使用第一计算设备110中的至少两个NUMA节点中的资源,该资源包括计算资源和/或存储资源等。换句话说,第一计算实例可以运行于该至少两个NUMA节点中。例如,第一计算实例可以使用第一计算设备110中的第一NUMA节点和第二NUMA节点中的资源,即第一计算实例可以运行于第一NUMA节点和第二NUMA节点中。具体地,在第一NUMA节点中的处理单元运行第一计算实例的线程或进程时,第一计算实例运行于第一NUMA节点中。在第二NUMA节点中的处理单元运行第一计算实例的线程或进程时,第一计算实例运行于第二NUMA节点中。也即,第一计算实例可以在第一NUMA节点和第二NUMA节点之间切换。
在一些实施例中,第一计算设备110或第一计算实例可以确定第一数据存储在第一存储空间中。其中,第一计算实例当前运行在第一计算设备110中,第一数据为执行第一计算任务所需的数据。第一存储空间包括第一NUMA节点的存储空间,第一NUMA节点为第一计算设备中除第二NUMA节点外的NUMA节点,第二NUMA节点为第一计算实例当前所在的NUMA节点。换句话说,第一计算设备110或第一计算实例可以在执行第一计算任务时,确定第一数据存储在第一NUMA节点中,且第一计算实例当前运行在第二NUMA节点中。第一计算设备110还可以将第一计算实例的寄存器信息传输至第一NUMA节点。第一NUMA节点中的处理单元可以根据第一计算实例的寄存器信息运行第一计算实例,并执行第一计算任务。由于第一数据存储在第一NUMA节点中,因此在第一NUMA节点中执行第一计算任务时,可以节省跨NUMA节点迁移或读取数据的时间,从而提高第一计算设备110或第一计算实例的计算性能,进而可以提高第一计算任务的执行效率。
可选地,计算任务执行系统100还可以包括第二计算设备120,该第二计算设备120与第一计算设备110连接。或者,计算任务执行系统100可以包括多个第二计算设备120,且该多个第二计算设备120与第一计算设备110连接。
在一些实施例中,第一计算实例可以使用至少两个计算设备中的资源,该资源包括计算资源和/或存储资源等。换句话说,第一计算实例可以运行于该至少两个计算设备中。例如,第一计算实例可以使用第一计算设备110和第二计算设备120中的资源,即第一计算实例可以运行于第一计算设备110和第二计算设备120中。具体地,在第一计算设备110运行第一计算实例的线程或进程时,第一计算实例运行于第一计算设备110中。在第二计算设备120运行第一计算实例的线程或进程时,第一计算实例运行于第二计算设备120中。也即,第一计算实例可以在第一计算设备110和第二计算设备120之间切换。
在一些实施例中,第三计算设备可以为第一计算实例分配一个计算设备中至少一个NUMA节点的资源,或者第三计算设备可以为第一计算实例分配至少一个计算设备的资源。该第三计算设备可以为该计算任务执行系统100中的任一计算设备,例如第一计算设备110或第二计算设备120。
在一些实施例中,第一计算设备110或第一计算实例可以确定第一数据存储在第一存储空间中。其中,第一计算实例当前运行在第一计算设备110中,第一存储空间包括第二计算设备120的存储空间。换句话说,第一计算设备110或第一计算实例可以在执行第一计算任务时,确定第一数据存储在第二计算设备120中,且第一计算实例当前运行在第一计算设备中。第一计算设备110还可以将第一计算实例的寄存器信息传输至第二计算设备120。第二计算设备120还可以根据第一计算实例的寄存器信息运行第一计算实例,并执行第一计算任务。由于第一数据存储在第二计算设备120中,因此在第二计算设备120执行第一计算任务时,可以节省跨计算设备迁移或读取数据的时间,从而避免由于缺页中断而导致计算设备或计算实例的计算性能下降,进而可以提高计算任务的执行效率。
在一些实施例中,第二计算设备120可以包括至少两个NUMA节点,每个NUMA节点中包括处理单元、存储空间等。第二计算设备120在获得第一计算实例的寄存器信息时,可以将第一计算实例的寄存器信息存储至第三NUMA节点中。该第三NUMA节点为第二计算设备中的任一个NUMA节点,且该第三NUMA节点中存储有第一数据。第三NUMA节点中的处理单元可以根据第一计算实例的寄存器信息运行第一计算实例,并执行第一计算任务,从而可以节省第一计算实例跨计算设备迁移或读取数据的时间,进而可以提高计算任务的执行效率。
计算任务执行系统100可以在第一计算实例执行第一计算任务时,将第一计算实例的寄存器信息传输给第一数据所在的NUMA节点或计算设备,从而使得第一计算实例可以运行于该NUMA节点或计算设备中。也即,计算任务执行系统100可以通过切换运行计算实例的NUMA节点或计算设备,从而节省跨NUMA节点或计算设备迁移或读取数据的时间,提高第一计算实例或计算设备的计算性能,进而提高执行第一计算任务的效率。
图2是本申请实施例提供的计算任务执行方法的示意性流程图。图2中包括如下步骤。
S210,第一计算设备确定第一数据存储在第一存储空间中。
该第一计算实例包括虚拟机或容器等,该第一计算实例当前运行在第一计算设备中。该第一数据为执行第一计算任务所需的数据。该第一存储空间包括第一NUMA节点或第二计算设备的存储空间。第一NUMA节点为第一计算设备中除第二NUMA节点外的NUMA节点,第二NUMA节点为第一计算实例当前所在的NUMA节点,第二计算设备与第一计算设备连接。第二NUMA节点为第一计算实例当前所在的NUMA节点表示:第一计算实例当前运行在第二NUMA节点中。
若第一存储空间包括第一NUMA节点的存储空间,则表示第一计算实例可以运行在第一NUMA节点和第二NUMA节点中。若第一存储空间包括第二计算设备的存储空间,则表示第一计算实例可以运行在第一计算设备和第二计算设备中。
可选地,在步骤S210前,第一计算实例可以接收用于执行第一计算任务的指示信息,并根据该指示信息,执行第一计算任务。或者,第一计算设备可以接收指示第一计算实例执行第一计算任务的指示信息,并根据该指示信息,通过第一计算实例执行第一计算任务。
在第一计算实例执行第一计算任务时,第一计算实例需要获得执行第一计算任务所需的数据,即第一数据。在第一计算实例确定第一数据未存储在第一计算设备或第二NUMA节点中时,第一计算实例可以自行确定第一数据当前所在的位置。或者,第一计算实例可以向第一计算设备发送指示信息,该指示信息用于指示第一数据未存储在第一计算设备或第二NUMA节点中,然后由第一计算设备确定第一数据当前所在的位置。或者,第一计算实例可以通过缺页中断机制,向第一计算设备传递第一数据未存储在第一计算设备中的信息,然后由第一计算设备确定第一数据当前所在的计算设备。第一计算实例当前运行在第一计算设备中,或者第一计算实例当前运行在第二NUMA节点中。该第二NUMA节点为第一计算设备中的NUMA节点。
在第一计算实例确定第一数据未存储在第二NUMA节点中时,第一计算设备或第一计算实例可以根据第一映射关系和第一数据的存储地址,确定第一数据当前所在的位置(例如第一NUMA节点)。该第一映射关系用于指示数据的存储地址与NUMA节点的标识信息之间的对应关系。该数据的存储地址包括存储地址范围或一个具体的地址(例如虚拟页的存储地址等),本申请实施例对此并不限定。该第一映射关系可以表现为表格、数组、矩阵、函数等形式,本申请实施例对此并不限定。
在一些实施例中,第一数据的存储地址可以为虚拟内存地址(virtual memoryaddress,VA)。
在一些实施例中,第一映射关系可以用于指示数据的存储地址与一个计算设备中的NUMA节点的标识信息之间的关系。
例如,假设第一映射关系如表1所示。在表1中的NUMA节点均为同一计算设备中的NUMA节点。
表1第一映射关系表
存储地址范围 | NUMA节点的标识信息 |
地址范围1 | 1 |
地址范围2 | 2 |
地址范围3 | 3 |
如表1所示,若第一数据的存储地址为地址1,且地址1属于地址范围1时,第一计算设备或第一计算实例根据表1可以确定,第一数据存储在标识信息为1的NUMA节点中。假设表1中的NUMA节点均为第一计算设备中的节点,则第一计算设备或第一计算实例还可以确定该标识信息为1的NUMA节点为第一计算设备中的节点。
在一些实施例中,第一映射关系可以用于指示数据的存储地址与多个计算设备中的NUMA节点的标识信息之间的关系。
例如,假设第一映射表如表2所示。在表2中,标识信息为11的NUMA节点为计算设备1中的NUMA节点,标识信息为21的NUMA节点为计算设备2中的NUMA节点,标识信息为31的NUMA节点为计算设备3中的NUMA节点。
表2第一映射关系表
存储地址 | NUMA节点的标识信息 |
地址4 | 11 |
地址5 | 21 |
地址6 | 31 |
如表2所示,若第一数据的存储地址为地址4时,第一计算设备或第一计算实例根据表2可以确定,第一数据存储在标识信息为11的NUMA节点中。第一计算设备或第一计算实例还可以确定第一数据存储在计算设备1中。
在一些实施例中,第一映射关系可以表现为表3的形式,本申请实施例对此并不限定。
表3第一映射关系表
存储地址 | NUMA节点的标识信息 | 计算设备的标识信息 |
地址4 | 1 | 1 |
地址5 | 1 | 2 |
地址6 | 1 | 3 |
如表3所示,若第一数据的存储地址为地址5时,第一计算设备或第一计算实例根据表3可以确定,第一数据存储在标识信息为2的计算设备中,且第一数据所在的NUMA节点的标识信息为1。
可选地,第一映射关系可以用于指示虚拟页的存储地址与第一计算设备中的NUMA节点的标识信息的对应关系。即,第一映射关系中的每个数据的存储地址为一个虚拟页的存储地址。若虚拟页的存储地址不变且至少一个虚拟页的存储地址与第一计算设备中的NUMA节点的对应关系发生变化,第一计算设备可以向其他设备发送该第一映射关系。或者,第一计算设备可以不向其他设备发送该第一映射关系。该其他设备包括与第一计算设备连接的设备。若至少一个虚拟页的存储容量发生变化,即至少一个虚拟页的存储地址发生变化,则第一计算设备可以向其他设备发送更新后的第一映射关系。
在第一计算实例确定第一数据未存储在第二NUMA节点中时,第一计算设备或第一计算实例可以根据第二映射关系和第一数据的存储地址,确定第一数据当前所在的位置(例如第二计算设备)。该第二映射关系用于指示数据的存储地址与计算设备的标识信息之间的关系。该数据的存储地址包括地址范围或具体地址(例如虚拟页的存储地址等),本申请实施例对此并不限定。该第二映射关系可以表现为表格、数组、矩阵、函数等形式,本申请实施例对此并不限定。
例如,假设第二映射关系如表4所示。
表4第二映射关系表
存储地址 | 计算设备的标识信息 |
地址4 | 1 |
地址5 | 2 |
地址6 | 3 |
如表4所示,若第一数据的存储地址为地址4时,第一计算设备或第一计算实例根据表4可以确定,第一数据存储在标识信息为1的计算设备中。
在第一计算实例确定第一数据未存储在第二NUMA节点中时,第一计算设备或第一计算实例可以根据第一映射关系、第二映射关系和第一数据的存储地址,确定第一数据当前所在的位置。
例如,第一计算设备或第一计算实例可以根据第二映射关系和第一数据的存储地址,确定第一数据当前所在的计算设备。第一计算设备或第一计算实例还可以根据第一映射关系和第一数据的存储地址,确定第一数据当前所在的NUMA节点。
在第一计算实例确定第一数据未存储在第一计算设备中时,第一计算设备或第一计算实例可以根据第二映射关系和第一数据的存储地址,确定第一数据当前所在的计算设备。或者,第一计算设备或第一计算实例可以根据第一映射关系和第一数据的存储地址,确定第一数据当前所在的NUMA节点。或者,第一计算设备或第一计算实例可以根据第一映射关系、第二映射关系和第一数据的存储地址,确定第一数据当前所在的位置。具体实现方式与第一数据未存储在第二NUMA节点中的方式类似,此处不再赘述。
可选地,在第二映射关系发生变化时,第二映射关系所涉及的计算设备均可以获得更新后的第二映射关系。该第二映射关系发生变化包括:数据的存储地址发生变化、数据的存储地址不变且数据的存储地址与计算设备的对应关系发生变化等。
可选地,第一计算设备或第一计算实例可以自行确定第一映射关系和/或第二映射关系,或者可以通过与第一计算设备连接的其他计算设备获得该第一映射关系和/或第二映射关系。或者,第一计算实例可以通过第一计算设备中的其他NUMA节点获得该第一映射关系和/或第二映射关系。
S220,第一计算设备将第一计算实例的寄存器信息传输至第一存储空间。
在确定第一数据当前所在的位置后,第一计算设备可以将第一计算实例的寄存器信息传输至第一存储空间中。该第一存储空间中存储有第一数据。该第一计算实例的寄存器信息用于执行第一计算任务。
在第一计算实例当前运行在第二NUMA节点中,并且第一存储空间包括第一NUMA节点的存储空间时,第一计算设备可以将第一计算实例的寄存器信息从第二NUMA节点中迁移至第一NUMA节点中。
在一些实施例中,第一计算设备可以将第一计算实例的寄存器信息存储至第一缓存中,该第一缓存为第二NUMA节点中的缓存。该第一缓存例如可以是末级缓存(last-levelcache,LLC)。第一计算设备还可以将第一缓存中的数据同步至第二缓存中,该第二缓存为第一NUMA节点中的缓存。该第二缓存例如可以是LLC。
在一些实施例中,第一NUMA节点可以根据第一计算实例的寄存器信息和第一数据,运行第一计算实例的进程或线程,并执行第一计算任务。例如,可以通过处理器间中断(inter-processor interrupt,IPI)使得第一NUMA节点的处理单元从第二缓存中获得第一计算实例的寄存器信息,从而完成第一计算实例的进程或线程的跨NUMA迁移。由于第一计算实例的寄存器信息的数据量小于第一数据的数据量,因此迁移第一计算实例的寄存器信息所需的时间小于迁移第一数据的时间,从而可以提高执行第一计算任务的效率。
在第一计算实例当前运行在第一计算设备中,且第一存储空间包括第二计算设备的存储空间时,第一计算设备可以将第一计算实例的寄存器信息从第一计算设备迁移至第二计算设备中。
在一些实施例中,第一计算设备可以直接向第二计算设备发送该第一计算实例的寄存器信息。或者,第一计算设备可以向第二计算设备发送第一指示信息,该第一指示信息用于指示第二计算设备获取第一计算实例的寄存器信息。第二计算设备在接收到该第一指示信息后,可以根据该第一指示信息,从第一计算设备中获得第一计算实例的寄存器信息。例如,第二计算设备可以通过远程直接数据读取(remote direct memory access,RDMA)、计算快速链接(compute express link,CXL)等技术,获得第一计算实例的寄存器信息。
在一些实施例中,第二计算设备可以根据第一计算实例的寄存器信息和第一数据,运行第一计算实例的进程或线程,并执行第一计算任务。即,第一计算实例可以从第一计算设备切换至第二计算设备中运行,从而完成第一计算实例的进程或线程的跨计算设备迁移。由于第一计算实例的寄存器信息的数据量小于第一数据的数据量,因此迁移第一计算实例的寄存器信息所需的时间小于迁移第一数据的时间,从而可以提高执行第一计算任务的效率。
在第一计算实例从第一计算设备切换至第二计算设备时,第一计算实例在第一计算设备和第二计算设备中的资源总和与第一计算实例的预设资源总量相同。例如,假设第一计算实例的预设资源总量为2个处理单元和4十亿字节(gigabyte,G)内存,则第一计算实例在第一计算设备和第二计算设备中分配的资源总和为2个处理单元和4G内存。并且,在第一计算实例从第一计算设备迁移至第二计算设备后,第一计算实例的活跃的虚拟处理单元的总数保持不变。
类似地,在第一计算实例从第二NUMA节点切换至第一NUMA节点时,第一计算实例在第一NUMA节点和第二NUMA节点中的资源总和与第一计算实例的预设资源总量相同。并且,在第一计算实例从第二NUMA节点切换至第一NUMA节点后,第一计算实例的活跃的虚拟处理单元的总数保持不变。
可选地,在步骤S210前,第一计算设备可以为第一计算实例分配一个计算设备中至少一个NUMA节点中的资源。或者,第一计算设备可以为第一计算实例分配至少一个计算设备中的资源。具体可以参见图4中的描述。
在满足第一预设条件时,第一计算设备可以根据第一资源请求,为第一计算实例分配第一资源。该第一资源请求用于指示第一计算实例的预设资源总量。第一预设条件包括至少一个计算设备的可用资源之和大于或等于预设资源总量。该第一资源包括该至少一个计算设备中一个或多个计算设备的资源。该至少一个计算设备包括第一计算设备,或者该至少一个计算设备与第一计算设备连接。
在一些实施例中,该至少一个计算设备还可以包括第二计算设备。
在满足第二预设条件和第一预设条件时,第一计算设备根据第一资源请求,为第一计算实例分配第一资源。该第二预设条件包括第一资源对应的计算设备中任意两个计算设备的时延中的最大值小于或等于预设阈值。
在满足第三预设条件时,第一计算设备向第四计算设备发送第一请求信息。该第三预设条件包括第一集合的可用资源之和小于该预设资源总量。第一请求信息用于请求第二集合中的可用资源。第一集合包括一个或多个计算设备,第一计算设备属于该第一集合。第二集合包括一个或多个计算设备,第四计算设备属于该第二集合。第一集合中的计算设备与第二集合中的计算设备连接于不同的交换设备。或者,在满足第三预设条件时,第一计算设备向第四计算设备发送第一资源请求或第二请求信息。该第二请求信息用于请求第四计算设备为第一计算实例分配资源。
在满足第四预设条件和第三预设条件时,第一计算设备向第四计算设备发送第一资源请求或第二请求信息。该第四预设条件包括第三集合中任意两个计算设备的时延中的最大值大于预设阈值。该第三集合包括第一集合中的可用资源对应的至少一个计算设备。
第一计算设备可以在第一计算实例执行第一计算任务时,将第一计算实例的寄存器信息传输给第一数据所在的NUMA节点或第二计算设备,从而使得第一计算实例可以运行于第一NUMA节点或第二计算设备中。也即,第一计算设备可以将第一计算实例迁移至执行第一计算任务所需的数据所在的NUMA节点或计算设备,从而节省第一计算实例远程读取数据的时间,提高第一计算实例或第一计算设备的计算性能,进而提高执行第一计算任务的效率。
图3是本申请实施例提供的计算任务执行方法的示意性流程图。图3中包括如下步骤。
S310,第二计算设备获得第一计算实例的寄存器信息。
第二计算设备可以获得来自于第一计算设备的第一计算实例的寄存器信息。该第一计算设备与第二计算设备连接。该第一计算实例的寄存器信息用于执行第一计算任务。在第二计算设备获得第一计算实例的寄存器信息前,第一计算实例运行于第一计算设备中。
可选地,第二计算设备可以直接接收来自于第一计算设备的第一计算实例的寄存器信息。或者,第二计算设备可以接收来自于第一计算设备的第一指示信息,该第一指示信息用于指示获取第一计算实例的寄存器信息。第二计算设备可以根据该第一指示信息,从第一计算设备中获取第一计算实例的寄存器信息。例如,第二计算设备可以通过RDMA、CXL等技术,获得第一计算实例的寄存器信息。
在第二计算设备中包括至少两个NUMA节点时,第二计算设备可以确定第三NUMA节点。该第三NUMA节点为第二计算设备中的任一NUMA节点,且该第三NUMA节点中存储有第一数据。该第一数据为执行第一计算任务所需的数据。第二计算设备还可以将第一计算实例的寄存器信息存储至第三NUMA节点中。
在一些实施例中,第二计算设备可以根据第三映射关系和第一数据的存储地址,确定第一数据当前所在的NUMA节点(例如第三NUMA节点)。该第三映射关系用于指示数据的存储地址与NUMA节点的标识信息之间的对应关系。该数据的存储地址包括地址范围或具体地址(例如虚拟页的存储地址),本申请实施例对此并不限定。该第三映射关系可以表现为表格、数组、矩阵、函数等形式,本申请实施例对此并不限定。根据第三映射关系确定第三NUMA节点的具体方式与根据第一映射关系确定第一NUMA节点的方式类似,此处不再赘述。
可选地,第三映射关系可以用于指示虚拟页的存储地址与第二计算设备中的NUMA节点的标识信息的对应关系。即,第三映射关系中的每个数据的存储地址为一个虚拟页的存储地址。若虚拟页的存储地址不变且至少一个虚拟页的存储地址与第二计算设备中的NUMA节点的对应关系发生变化,第二计算设备可以向其他设备发送该第三映射关系。或者,第二计算设备可以不向其他设备发送该第三映射关系。该其他设备包括与第二计算设备连接的设备。若至少一个虚拟页的存储容量发生变化,即至少一个虚拟页的存储地址发生变化,则第二计算设备可以向其他设备发送更新后的第三映射关系。
S320,第二计算设备根据第一数据和第一计算实例的寄存器信息,执行第一计算任务。
第二计算设备可以根据第一计算实例的寄存器信息和第一数据,运行第一计算实例的进程或线程,并执行第一计算任务。第一数据存储于第二计算设备中。即,第一计算实例可以从第一计算设备切换至第二计算设备中运行,从而完成第一计算实例的进程或线程的跨计算设备迁移。由于第一计算实例的寄存器信息的数据量小于第一数据的数据量,因此迁移第一计算实例的寄存器信息所需的时间小于迁移第一数据的时间,从而可以提高执行第一计算任务的效率。
在一些实施例中,第二计算设备中的第三NUMA节点可以根据第一计算实例的寄存器信息和第一数据,运行第一计算实例,并执行第一计算任务。该第三NUMA节点中存储有第一数据。
可选地,在步骤S310前,第二计算设备可以为第一计算实例分配一个计算设备中的至少一个NUMA节点中的资源。或者,第二计算设备可以为第一计算实例分配至少一个计算设备中的资源。具体可以参见图4中的描述。
在满足第一预设条件时,第二计算设备可以根据第一资源请求,为第一计算实例分配第一资源。该第一资源请求用于指示第一计算实例的预设资源总量。第一预设条件包括至少一个计算设备的可用资源之和大于或等于预设资源总量。该第一资源包括该至少一个计算设备中一个或多个计算设备的资源。该至少一个计算设备包括第二计算设备,或者该至少一个计算设备与第二计算设备连接。
在一些实施例中,该至少一个计算设备可以包括第一计算设备和第二计算设备。
在满足第二预设条件和第一预设条件时,第二计算设备根据第一资源请求,为第一计算实例分配第一资源。该第二预设条件包括第一资源对应的计算设备中任意两个计算设备的时延中的最大值小于或等于预设阈值。
在满足第三预设条件时,第二计算设备向第四计算设备发送第一请求信息。该第三预设条件包括第一集合的可用资源之和小于该预设资源总量。第一请求信息用于请求第二集合中的可用资源。第一集合包括一个或多个计算设备,第二计算设备属于该第一集合。第二集合包括一个或多个计算设备,第四计算设备属于该第二集合。第一集合中的计算设备与第二集合中的计算设备连接于不同的交换设备。或者,在满足第三预设条件时,第二计算设备向第四计算设备发送第一资源请求或第二请求信息。该第二请求信息用于请求第四计算设备为第一计算实例分配资源。
在一些实施例中,第一计算设备和第二计算设备均属于第一集合,即第一计算设备和第二计算设备连接于同一交换设备。或者,第一计算设备和第二计算设备属于不同的集合,即第一计算设备和第二计算设备连接于不同的交换设备,本申请实施例对此并不限定。
在满足第四预设条件和第三预设条件时,第二计算设备向第四计算设备发送第一资源请求或第二请求信息。该第四预设条件包括第三集合中任意两个计算设备的时延中的最大值小于或等于预设阈值。该第三集合包括第一集合中的可用资源对应的至少一个计算设备。
第二计算设备可以在第一计算实例执行第一计算任务时,获得第一计算实例的寄存器信息,从而使得第一计算实例可以运行于第二计算设备中。由于第一数据存储在第二计算设备中,因此将第一计算实例从第一计算设备迁移至第二计算设备中运行,可以节省第一计算实例跨计算设备迁移或读取数据的时间,提高第一计算实例或第一计算设备的计算性能,进而提高执行第一计算任务的效率。
图4是本申请实施例提供的计算任务执行方法的示意性流程图。图4中包括如下步骤。
S410,第三计算设备确定第一资源请求。
第三计算设备可以确定第一资源请求,该第一资源请求用于指示第一计算实例的预设资源总量。该第一计算实例用于执行第一计算任务。
可选地,该预设资源总量可以包括预设计算资源总量和/或预设存储资源总量。
可选地,该第三计算设备可以为第一集合中的任一个计算设备。该第一集合包括至少一个计算设备,且该第一集合中的计算设备连接于同一交换设备(例如交换机、路由器等)。或者说,该第一集合中的计算设备为同一机架(rack)中的计算设备,每个rack中的计算设备连接于同一交换设备。或者,该第三计算设备可以是不与其他计算设备连接的独立的计算设备。或者,该第三计算设备可以是计算集群中的任一个计算设备。或者,该第三计算设备可以是多个计算设备中的任一个计算设备,且该多个计算设备连接于不同的交换设备。
在一些实施例中,该第三计算设备可以根据一定的规则确定,本申请实施例对确定第三计算设备的具体规则并不限定。例如,该第三计算设备可以由多个计算设备通过选主方法确定,本申请实施例对具体的选主方法不做限定。或者,该第三计算设备可以是多个计算设备中计算资源和/或存储资源最多的计算设备。或者,该第三计算可以是多个计算设备中当前可用的计算资源和/或存储资源最多的计算设备等。
在一些实施例中,该第三计算设备可以是图2中的第一计算设备或图3中的第二计算设备。
S420,在满足第一预设条件时,第三计算设备根据第一资源请求,为第一计算实例分配第一资源。
第三计算设备在获得第一资源请求后,可以确定是否可以满足该第一资源请求。即,第三计算设备可以确定是否可以满足第一预设条件,第一预设条件包括至少一个计算设备的可用资源之和大于或等于该预设资源总量。该至少一个计算设备可以包括第三计算设备,或者该至少一个计算设备与第三计算设备连接。若满足第一预设条件,则说明该至少一个计算设备的可用资源之和可以满足第一计算实例的资源需求。若不满足第一预设条件,则说明该至少一个计算设备的可用资源之和无法满足第一计算实例的资源需求。
在不满足第一预设条件时,第三计算设备可以不为第一计算实例分配资源。第三计算设备还可以向用户或者发送第一资源请求的设备发送第一提示信息,该第一提示信息用于提示资源不足或者用于提示无法为第一计算实例分配资源。
在满足第一预设条件时,第三计算设备可以根据该第一资源请求,为第一计算实例分配第一资源。该第一资源的资源量与预设资源总量相同。
在一些实施例中,该第一资源可以包括至少一个计算设备中一个或多个计算设备的资源,该资源包括计算资源和/或存储资源。即,第一资源属于该一个或多个计算设备。该至少一个计算设备可以包括第三计算设备,或者该至少一个计算设备与第三计算设备连接。
在一些实施例中,该第一资源可以包括该一个或多个计算设备中每个计算设备中的至少一个NUMA节点的资源。
在第一资源包括至少两个计算设备的资源时,第三计算设备在确定满足第一预设条件后,还需确定该至少两个计算设备之间的时延是否小于或等于预设阈值。即,第三计算设备还需确定是否满足第二预设条件,该第二预设条件包括该第一资源对应的计算设备中任意两个计算设备的时延中的最大值小于或等于预设阈值。该第一资源对应的计算设备指的是第一资源所属的一个或多个计算设备。若满足第二预设条件,则说明该至少两个计算设备中的任意两个计算设备之间的时延较短,可以满足第一计算实例的性能需求。若不满足第二预设条件,则说明该至少两个计算设备中存在两个计算设备之间的时延较长,无法满足第一计算实例的性能需求。
在一些实施例中,第三计算设备可以自行确定该预设阈值。或者,第三计算设备可以接收来自于与该第三计算设备连接的其他设备的预设阈值。或者,第一资源请求还可以用于指示该预设阈值。
在满足第一预设条件和第二预设条件时,第三计算设备可以根据第一资源请求,为第一计算实例分配第一资源。
例如,在第一资源包括第一集合中的多个计算设备的资源时,第三计算设备可以确定第一时延集合,该第一时延集合中包括该多个计算设备中每两个计算设备的时延。该第一集合包括一个或多个计算设备,且第一集合中的计算设备连接于同一交换设备。第三计算设备还可以将第一时延集合中的最大值与预设阈值进行比较。若第一时延集合中的最大值小于或等于预设阈值,则第三计算设备可以确定满足第二预设条件。若第一时延集合中的最大值大于预设阈值,则第三计算设备可以确定不满足第二预设条件。
例如,在第一资源包括多个集合中每个集合的至少一个计算设备的资源时,第三计算设备可以确定第二时延集合,该第二时延集合中包括该多个集合中的多个计算设备中每两个计算设备的时延。该多个集合中不同集合中的计算设备连接于不同的交换设备,且每个集合中的计算设备连接于同一交换设备。第三计算设备还可以将第二时延集合中的最大值与预设阈值进行比较。若第二时延集合中的最大值小于或等于预设阈值,则第三计算设备可以确定满足第二预设条件。若第二时延集合中的最大值大于预设阈值,则第三计算设备可以确定不满足第二预设条件。
在不满足第二预设条件时,第三计算设备可以不为第一计算实例分配资源。第三计算设备还可以向用户或者发送第一资源请求的设备发送第二提示信息,该第二提示信息用于提示时延不满足需求或者用于提示无法为第一计算实例分配资源。
应理解,在第一资源仅包括一个计算设备的资源时,第三计算设备可以无需确定是否满足第二预设条件。
在第三计算设备属于第一集合时,第三计算设备可以确定第一集合中的可用资源之和是否小于预设资源总量。即,第三计算设备可以确定是否满足第三预设条件,该第三预设条件包括第一集合的可用资源之和小于预设资源总量。若满足第三预设条件,则表示第一集合中的可用资源不足,还需请求除第一集合外的计算设备的资源。若不满足第三预设条件,则说明第一集合中的可用资源充足,可以为第一计算实例分配第一资源,且该第一资源为第一集合中的资源。
在满足第三预设条件时,第三计算设备可以向第四计算设备发送第一请求信息,该第一请求信息用于请求第二集合中的可用资源。该第二集合包括一个或多个计算设备,且第四计算设备属于该第二集合。该第一集合中的计算设备与第二集合中的计算设备连接于不同的交换设备。或者,在满足第三预设条件时,第三计算设备可以向第四计算设备发送第一资源请求或第二请求信息,该第二请求信息用于请求第四计算设备为第一计算实例分配资源。换句话说,在第三计算设备确定第一集合中的可用资源不足时,第三计算设备可以请求除第一集合外的计算设备的资源,或者可以转发第一资源请求。
在满足第三预设条件时,第三计算设备可以确定第三集合中的计算设备之间的时延是否大于预设阈值。该第三集合包括第一集合中的可用资源对应的至少一个计算设备。即,第三计算设备可以确定是否满足第四预设条件,该第四预设条件包括第三集合中任意两个计算设备的时延中的最大值大于预设阈值。
在满足第三预设条件和第四预设条件时,第三计算设备可以向第四计算设备发送第一资源请求或第二请求信息。该第二请求信息用于请求第四计算设备为第一计算实例分配资源。换句话说,在第三计算设备确定第一集合中的可用资源不足时,若第三计算设备确定该可用资源对应的计算设备中存在两个计算设备之间的时延较长,则第三计算设备可以转发第一资源请求。
应理解,在第三集合中仅包括一个计算设备时,第三计算设备可以无需确定是否满足第四预设条件。
可选地,第三计算设备可以确定至少一种资源分配方案,该每种资源分配方案可以包括至少一个NUMA节点或至少一个计算设备中的可用资源,且该至少一个NUMA节点或至少一个计算设备中的可用资源之和大于或等于预设资源总量。不同的资源分配方案中包括的资源不完全相同。第三计算设备还可以根据每种资源分配方案的最大时延,确定第一资源分配方案,并为第一计算实例分配该第一资源分配方案中的资源。该每种资源分配方案的最大时延为每种资源分配方案包括的任意两个计算设备之间的时延中的最大值。该第一资源分配方案的最大时延小于或等于预设阈值。
在一些实施例中,若资源分配方案中仅包括一个计算设备的资源,则该资源分配方案的时延可以设置为0。
第三计算设备可以根据第一资源请求,为第一计算实例分配属于至少一个NUMA节点或至少一个计算设备的资源,从而使得第一计算实例可以运行于至少一个NUMA节点或至少一个计算设备中,进而可以充分利用每个NUMA节点或每个计算设备中的可用资源,避免造成资源浪费。在第一计算实例执行第一计算任务时,第一数据可以存储于其他NUMA节点或其他计算设备中,从而可以最大程度地利用每个计算设备中的资源。该其他NUMA节点包括除第一计算实例当前所在的NUMA节点外的NUMA节点,该其他计算设备包括除第一计算实例当前所在的计算设备外的计算设备。第一计算实例可以运行于该其他NUMA节点或其他计算设备中。同时,通过迁移第一计算实例的寄存器信息的方法,可以节省第一计算实例远程读取数据的时间,提高第一计算实例或第一计算设备的计算性能,进而提高执行第一计算任务的效率。
图5是本申请实施例提供的计算装置的示意性结构框图。图5中的计算装置500包括确定模块510和处理模块520。
在一些实施例中,该计算装置500可以是图2中的第一计算设备、图3中的第二计算设备或图4中的第三计算设备中的任一种设备。即,计算装置500可以执行图2、3、4中的方法。
在计算装置500执行图2中的方法时,确定模块510用于确定第一数据存储在第一存储空间中,即确定模块510可以执行图2中的步骤S210。处理模块520用于将第一计算实例的寄存器信息传输至第一存储空间,即处理模块520可以执行图2中的步骤S220。第一数据、第一计算实例、第一存储空间、第一计算实例的寄存器信息的具体描述可以参见图2中的描述。
在计算装置500执行图2中的方法时,在第一存储空间为第一NUMA节点的存储空间时,处理模块520还用于根据第一计算实例的寄存器信息和第一数据,执行第一计算任务。
在计算装置500执行图2中的方法时,在满足第一预设条件时,处理模块520还用于根据第一资源请求,为第一计算实例分配第一资源。或者,在满足第二预设条件和第一预设条件时,处理模块520还用于根据第一资源请求,为第一计算实例分配第一资源。或者,在满足第三预设条件时,处理模块520还用于向第四计算设备发送第一请求信息。或者,在满足第三预设条件时,处理模块520还用于向第四计算设备发送第一资源请求或第二请求信息。或者,在满足第四预设条件和第三预设条件时,处理模块520还用于向第四计算设备发送第一资源请求或第二请求信息。第一资源请求、第一资源、第一预设条件、第二预设条件、第三预设条件、第四预设条件、第一请求信息、第二请求信息的具体描述可以参见图2中的描述。
有关上述确定模块510和处理模块520更详细的描述可以参考图2所示的方法实施例中相关描述。
在计算装置500执行图3中的方法时,确定模块510用于获得第一计算实例的寄存器信息,即确定模块510可以执行图3中的步骤S310。处理模块520用于根据第一数据和第一计算实例的寄存器信息,执行第一计算任务,即处理模块520可以执行图3中的步骤S320。第一数据、第一计算实例、第一计算实例的寄存器信息的具体描述可以参见图3中的描述。
在计算装置500执行图3中的方法时,在该计算装置500中包括多个NUMA节点时,确定模块510还用于确定计算装置500中的第三NUMA节点,第一数据存储在第三NUMA节点中;处理模块520还用于将第一计算实例的寄存器信息存储至第三NUMA节点。
在计算装置500执行图3中的方法时,在满足第一预设条件时,处理模块520还用于根据第一资源请求,为第一计算实例分配第一资源。或者,在满足第二预设条件和第一预设条件时,处理模块520还用于根据第一资源请求,为第一计算实例分配第一资源。或者,在满足第三预设条件时,处理模块520还用于向第四计算设备发送第一请求信息。或者,在满足第三预设条件时,处理模块520还用于向第四计算设备发送第一资源请求或第二请求信息。或者,在满足第四预设条件和第三预设条件时,处理模块520还用于向第四计算设备发送第一资源请求或第二请求信息。第一资源请求、第一资源、第一预设条件、第二预设条件、第三预设条件、第四预设条件、第一请求信息、第二请求信息的具体描述可以参见图3中的描述。
有关上述确定模块510和处理模块520更详细的描述可以参考图3所示的方法实施例中相关描述。
在计算装置500执行图4中的方法时,确定模块510用于确定第一资源请求,即确定模块510可以执行图4中的步骤S410。处理模块520用于在满足第一预设条件时,根据第一资源请求,为第一计算实例分配第一资源,即处理模块520可以执行图4中的步骤S420。第一资源请求、第一预设条件、第一计算实例、第一资源的具体描述可以参见图4中的描述。
在计算装置500执行图4中的方法时,处理模块520还用于在满足第二预设条件和第一预设条件时,根据第一资源请求,为第一计算实例分配第一资源。或者,处理模块520还用于在满足第三预设条件时,向第四计算设备发送第一请求信息。或者,处理模块520还用于在满足第三预设条件时,向第四计算设备发送第一资源请求或第二请求信息。或者,处理模块520还用于在满足第四预设条件和第三预设条件时,向第四计算设备发送第一资源请求或第二请求信息。第二预设条件、第三预设条件、第四预设条件、第一请求信息、第二请求信息的具体描述可以参见图4中的描述。
有关上述确定模块510和处理模块520更详细的描述可以参考图4所示的方法实施例中相关描述。
图6是根据本申请实施例提供的计算设备的结构框图。图6所示的计算设备600包括:处理器601、存储器602和通信接口603,处理器601、存储器602和通信接口603通过总线604相通信。
在一些实施例中,计算设备600还可以包括接收器和/或发送器。接收器用于接收来自于其他设备的信息或数据,发送器用于将存储器602中存储的信息或数据发送至其他设备。该其他设备为与计算设备600连接的设备。
上述本发明实施例揭示的方法可以应用于处理器601中,或者由处理器601实现。处理器601可以是中央处理器(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。处理器601可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储器602中。处理器601读取存储器602中的指令,结合其硬件完成上述方法的步骤。
存储器602可以存储用于执行上述实施例中计算设备执行的方法的指令。存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchronous link DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambusDRAM,DRDRAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。处理器601可以执行存储器602中存储的指令,并结合其他硬件完成上述实施例中计算设备的步骤,具体工作过程和有益效果可以参考上述实施例中的描述。
总线604除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线604。
本申请实施例还提供了一种计算任务执行系统,该系统包括图2中的第一计算设备和图3中的第二计算设备。在一些实施例中,该系统还可以包括图4中的第三计算设备。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,所述程序执行时可包括如图2、图3或图4对应实施例中的方法的部分或全部步骤。
本申请实施例还提供了一种芯片系统,该芯片系统包括逻辑电路,该逻辑电路用于与输入/输出接口耦合,通过该输入/输出接口传输数据,以执行上述实施例中图2、图3或图4中包括的各个步骤。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行上述实施例中的各个步骤。
根据本申请实施例提供的方法,本申请还提供一种计算机可读介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行上述实施例中的各个步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (23)
1.一种计算任务执行方法,其特征在于,包括:
第一计算设备确定第一数据存储在第一存储空间中,所述第一数据为第一计算实例执行第一计算任务所需的数据,所述第一计算实例当前运行在所述第一计算设备中,所述第一存储空间包括第一非统一内存访问NUMA节点或第二计算设备的存储空间,所述第一NUMA节点为所述第一计算设备中除第二NUMA节点外的NUMA节点,所述第二NUMA节点为所述第一计算实例当前所在的NUMA节点,所述第二计算设备与所述第一计算设备连接;
所述第一计算设备将所述第一计算实例的寄存器信息传输至所述第一存储空间,所述第一计算实例的寄存器信息用于执行所述第一计算任务。
2.根据权利要求1所述的方法,其特征在于,在所述第一存储空间为所述第一NUMA节点的存储空间时,所述第一计算设备确定第一数据存储在第一存储空间中,包括:
所述第一计算实例确定所述第一数据未存储在所述第二NUMA节点中;
所述第一计算设备或所述第一计算实例根据第一映射关系和所述第一数据的存储地址,确定所述第一NUMA节点,所述第一映射关系用于指示数据的存储地址与NUMA节点的标识信息之间的对应关系。
3.根据权利要求1或2所述的方法,其特征在于,在所述第一存储空间为所述第一NUMA节点的存储空间时,所述第一计算设备将所述第一计算实例的寄存器信息传输至所述第一存储空间,包括:
所述第一计算设备将所述第一计算实例的寄存器信息存储至第一缓存中,所述第一缓存为所述第二NUMA节点的缓存;
所述第一计算设备将所述第一缓存中的数据同步至第二缓存中,所述第二缓存为所述第一NUMA节点的缓存。
4.根据权利要求1至3中任一项所述的方法,其特征在于,在所述第一存储空间为所述第一NUMA节点的存储空间时,所述方法还包括:
所述第一NUMA节点根据所述第一计算实例的寄存器信息和所述第一数据,执行所述第一计算任务。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在所述第一存储空间为所述第二计算设备的存储空间时,所述第一计算设备确定第一数据存储在第一存储空间中,包括:
所述第一计算实例确定所述第一数据未存储在所述第一计算设备中;
所述第一计算设备或所述第一计算实例根据第二映射关系和所述第一数据的存储地址,确定所述第二计算设备,所述第二映射关系用于指示数据的存储地址与计算设备的标识信息之间的对应关系。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在所述第一存储空间为所述第二计算设备的存储空间时,所述第一计算设备将所述第一计算实例的寄存器信息传输至所述第一存储空间,包括:
所述第一计算设备将所述第一计算实例的寄存器信息发送给所述第二计算设备;或者,
所述第一计算设备向所述第二计算设备发送第一指示信息,所述第一指示信息用于指示所述第二计算设备获取所述第一计算实例的寄存器信息。
7.一种计算任务执行方法,其特征在于,包括:
第二计算设备获得第一计算实例的寄存器信息,所述第一计算实例的寄存器信息用于执行第一计算任务,在所述第二计算设备获得所述第一计算实例的寄存器信息前,所述第一计算实例运行于第一计算设备中,所述第一计算设备与所述第二计算设备连接;
所述第二计算设备根据第一数据和所述第一计算实例的寄存器信息,执行第一计算任务,所述第一数据为执行第一计算任务所需的数据,所述第一数据存储于所述第二计算设备中。
8.根据权利要求7所述的方法,其特征在于,所述第二计算设备获得第一计算实例的寄存器信息,包括:
所述第二计算设备接收来自于所述第一计算设备的所述第一计算实例的寄存器信息;或者,
所述第二计算设备接收来自于所述第一计算设备的第一指示信息,根据所述第一指示信息,从所述第一计算设备中获取所述第一计算实例的寄存器信息。
9.根据权利要求7或8所述的方法,其特征在于,在所述第二计算设备中包括多个非统一内存访问NUMA节点时,所述方法还包括:
所述第二计算设备确定第三NUMA节点,所述第三NUMA节点为所述多个NUMA节点中的任一个NUMA节点,所述第一数据存储在所述第三NUMA节点中;
所述第二计算设备将所述第一计算实例的寄存器信息存储至所述第三NUMA节点。
10.根据权利要求9所述的方法,其特征在于,所述第二计算设备确定第三NUMA节点,包括:
所述第二计算设备根据第三映射关系和所述第一数据的存储地址,确定所述第三NUMA节点,所述第三映射关系用于指示数据的存储地址与NUMA节点的标识信息之间的对应关系。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述方法还包括:
在满足第一预设条件时,第三计算设备根据第一资源请求,为所述第一计算实例分配第一资源,所述第三计算设备包括第一计算设备或第二计算设备,所述第一资源请求用于指示第一计算实例的预设资源总量,所述第一预设条件包括至少一个计算设备的可用资源之和大于或等于所述预设资源总量,所述第一资源包括所述至少一个计算设备中一个或多个计算设备的资源,所述至少一个计算设备包括所述第三计算设备,或者所述至少一个计算设备与所述第三计算设备连接。
12.根据权利要求11所述的方法,其特征在于,所述在满足第一预设条件时,第三计算设备根据第一资源请求,为所述第一计算实例分配第一资源,包括:
在满足第二预设条件和所述第一预设条件时,所述第三计算设备根据所述第一资源请求,为所述第一计算实例分配所述第一资源,所述第二预设条件包括所述第一资源对应的计算设备中任意两个计算设备的时延中的最大值小于或等于预设阈值。
13.根据权利要求11或12所述的方法,其特征在于,所述方法还包括:
在满足第三预设条件时,所述第三计算设备向第四计算设备发送第一请求信息,所述第三预设条件包括第一集合的可用资源之和小于所述预设资源总量,所述第一请求信息用于请求第二集合中的可用资源,所述第一集合包括一个或多个计算设备,所述第三计算设备属于所述第一集合,所述第二集合包括一个或多个计算设备,所述第四计算设备属于所述第二集合,所述第一集合中的计算设备与所述第二集合中的计算设备连接于不同的交换设备;或者,
在满足所述第三预设条件时,所述第三计算设备向所述第四计算设备发送所述第一资源请求。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
在满足第四预设条件和所述第三预设条件时,所述第三计算设备向所述第四计算设备发送所述第一资源请求,所述第四预设条件包括第三集合中任意两个计算设备的时延中的最大值大于预设阈值,所述第三集合包括所述第一集合中的可用资源对应的至少一个计算设备。
15.一种计算任务执行方法,其特征在于,包括:
第三计算设备确定第一资源请求,所述第一资源请求用于指示第一计算实例的预设资源总量,所述第一计算实例用于执行第一计算任务;
在满足第一预设条件时,所述第三计算设备根据所述第一资源请求,为所述第一计算实例分配第一资源,所述第一预设条件包括至少一个计算设备的可用资源之和大于或等于所述预设资源总量,所述第一资源包括所述至少一个计算设备中一个或多个计算设备的资源,所述至少一个计算设备包括所述第三计算设备,或者所述至少一个计算设备与所述第三计算设备连接。
16.根据权利要求15所述的方法,其特征在于,所述在满足第一预设条件时,所述第三计算设备根据所述第一资源请求,为所述第一计算实例分配第一资源,包括:
在满足第二预设条件和所述第一预设条件时,所述第三计算设备根据所述第一资源请求,为所述第一计算实例分配所述第一资源,所述第二预设条件包括所述第一资源对应的计算设备中任意两个计算设备的时延中的最大值小于或等于预设阈值。
17.根据权利要求15或16所述的方法,其特征在于,所述方法还包括:
在满足第三预设条件时,所述第三计算设备向第四计算设备发送第一请求信息,所述第三预设条件包括第一集合的可用资源之和小于所述预设资源总量,所述第一请求信息用于请求第二集合中的可用资源,所述第一集合包括一个或多个计算设备,所述第三计算设备属于所述第一集合,所述第二集合包括一个或多个计算设备,所述第四计算设备属于所述第二集合,所述第一集合中的计算设备与所述第二集合中的计算设备连接于不同的交换设备;或者,
在满足所述第三预设条件时,所述第三计算设备向所述第四计算设备发送所述第一资源请求。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
在满足第四预设条件和所述第三预设条件时,所述第三计算设备向所述第四计算设备发送所述第一资源请求,所述第四预设条件包括第三集合中任意两个计算设备的时延中的最大值大于预设阈值,所述第三集合包括所述第一集合中的可用资源对应的至少一个计算设备。
19.一种计算装置,其特征在于,所述计算装置包括至少两个模块,所述至少两个模块用于执行如权利要求1-18中任一项所述的方法。
20.一种计算设备,其特征在于,包括:处理器,所述处理器用于与存储器耦合,读取并执行所述存储器中的指令和/或程序代码,以执行如权利要求1-18中任一项所述的方法。
21.一种计算任务执行系统,其特征在于,包括:如权利要求1-6中任一项或如权利要求11-14中任一项所述的第一计算设备、以及如权利要求7-14中任一项所述的第二计算设备。
22.一种芯片系统,其特征在于,包括:逻辑电路,所述逻辑电路用于与输入/输出接口耦合,通过所述输入/输出接口传输数据,以执行如权利要求1-18中任一项所述的方法。
23.一种计算机可读介质,其特征在于,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如权利要求1-18中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310217786.1A CN116401043A (zh) | 2023-02-28 | 2023-02-28 | 一种计算任务的执行方法和相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310217786.1A CN116401043A (zh) | 2023-02-28 | 2023-02-28 | 一种计算任务的执行方法和相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116401043A true CN116401043A (zh) | 2023-07-07 |
Family
ID=87013275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310217786.1A Pending CN116401043A (zh) | 2023-02-28 | 2023-02-28 | 一种计算任务的执行方法和相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116401043A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009264A (zh) * | 2023-09-13 | 2023-11-07 | 上海云豹创芯智能科技有限公司 | 在soc中实现高速内存扩展的方法、系统、芯片及存储介质 |
-
2023
- 2023-02-28 CN CN202310217786.1A patent/CN116401043A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009264A (zh) * | 2023-09-13 | 2023-11-07 | 上海云豹创芯智能科技有限公司 | 在soc中实现高速内存扩展的方法、系统、芯片及存储介质 |
CN117009264B (zh) * | 2023-09-13 | 2023-12-19 | 上海云豹创芯智能科技有限公司 | 在soc中实现高速内存扩展的方法、系统、芯片及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558563B2 (en) | Computing system and method for controlling storage device | |
US20220414002A1 (en) | Memory system and method for controlling nonvolatile memory | |
US8688915B2 (en) | Weighted history allocation predictor algorithm in a hybrid cache | |
JP5957647B2 (ja) | スケーラブルな記憶装置 | |
US8843707B2 (en) | Dynamic inclusive policy in a hybrid cache hierarchy using bandwidth | |
CN110427284B (zh) | 数据处理方法、分布式系统、计算机系统和介质 | |
US8312201B2 (en) | Managing memory allocations loans | |
US10795599B2 (en) | Data migration method, host and solid state disk | |
US11372564B2 (en) | Apparatus and method for dynamically allocating data paths in response to resource usage in data processing system | |
JP2019057151A (ja) | メモリシステムおよび制御方法 | |
US11861196B2 (en) | Resource allocation method, storage device, and storage system | |
US11243877B2 (en) | Method, apparatus for data management, and non-transitory computer-readable storage medium for storing program | |
KR20120012377A (ko) | 정보 처리 장치 및 정보 처리 방법 | |
WO2014206078A1 (zh) | 内存访问方法、装置及系统 | |
CN110753910A (zh) | 用于在数据中心中分配存储器的设备和方法 | |
CN116401043A (zh) | 一种计算任务的执行方法和相关设备 | |
US10754547B2 (en) | Apparatus for managing disaggregated memory and method thereof | |
JP2015088071A (ja) | 情報処理装置、記憶装置制御回路及び記憶装置の制御方法 | |
US10846094B2 (en) | Method and system for managing data access in storage system | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
US20170364283A1 (en) | Method and system for managing memories in storage system | |
CN117331858B (zh) | 存储装置及数据处理系统 | |
KR102565873B1 (ko) | Numa 시스템에서 메모리 버스에 연결하여 사용하는 저장장치의 할당 방법 | |
US11714753B2 (en) | Methods and nodes for handling memory | |
KR20200121533A (ko) | 이종 메모리의 특성에 기반한 메모리 관리 장치 및 그것의 동작 방법 |
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 |