CN117076140B - 一种分布式计算方法、装置、设备、系统及可读存储介质 - Google Patents

一种分布式计算方法、装置、设备、系统及可读存储介质 Download PDF

Info

Publication number
CN117076140B
CN117076140B CN202311338201.8A CN202311338201A CN117076140B CN 117076140 B CN117076140 B CN 117076140B CN 202311338201 A CN202311338201 A CN 202311338201A CN 117076140 B CN117076140 B CN 117076140B
Authority
CN
China
Prior art keywords
accelerator
target
computing
direct
accelerators
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.)
Active
Application number
CN202311338201.8A
Other languages
English (en)
Other versions
CN117076140A (zh
Inventor
宿栋栋
沈艳梅
刘伟
王彦伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN202311338201.8A priority Critical patent/CN117076140B/zh
Publication of CN117076140A publication Critical patent/CN117076140A/zh
Application granted granted Critical
Publication of CN117076140B publication Critical patent/CN117076140B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multi Processors (AREA)

Abstract

本发明涉及计算机技术领域,具体公开了一种分布式计算方法、装置、设备、系统及可读存储介质,通过根据分布式加速器集群中加速器的信息建立加速器直连对,使加速器直连对中至少存在一个支持计算机快速互联协议的第一加速器和/或加速器直连对中两个加速器具有相同的应用计算逻辑,在传统的路由子网之外实现了加速器间的直连,能够在利用多加速器执行并行的计算任务时使计算过载的目标加速器的计算任务可以通过直连关系分流到直连加速器或经过控制器将计算任务分流到非直连加速器,实现了集群中加速器对支持计算机快速互联协议的加速器的扩展内存的共享占用,从而实现了加速器集群的弹性内存和低时延的计算分流,提升加速器集群的并行计算性能。

Description

一种分布式计算方法、装置、设备、系统及可读存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种分布式计算方法、装置、设备、系统及可读存储介质。
背景技术
随着人工智能的发展,密集型计算场景不断增加,例如在进行视频剪辑、数据加解密等各种情况下,往往需要多个加速器协同工作。随着加速器虚拟化技术和加速器池化技术的出现,通过建立分布式加速器集群,将多个加速器的硬件进行虚拟化和池化,通过并行计算能够获得处理大规模计算任务的能力。但由于分布式加速器集群需要由控制端服务器进行计算任务分配调度、完成数据的输入输出交互以及进行上下文配置等,严重影响了分布式加速器集群的并行计算效率。
如何提高现有分布式加速器集群中加速器并行处理效率,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种分布式计算方法、装置、设备、系统及可读存储介质,用于提高现有分布式加速器集群中加速器并行处理效率。
为解决上述技术问题,本发明提供一种分布式计算方法,应用于分布式加速器集群的控制器,包括:
获取所述分布式加速器集群中加速器的信息;
根据所述加速器的信息,建立加速器直连对;
在接收到业务任务时,将所述业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,以使所述目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器;
其中,所述加速器直连对包括两个互为直连加速器的所述加速器,两个所述加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个所述加速器具有相同的应用计算逻辑。
在一些实施中,所述目标加速器在处于计算过载状态时将计算任务分流至直连加速器,包括:
所述目标加速器在处于计算过载状态时占用直连加速器的扩展内存和/或将计算任务分流至直连加速器执行;
所述目标加速器在处于计算过载状态时经由所述控制器将计算任务分流至非直连加速器,包括:
所述目标加速器在处于计算过载状态时经由所述控制器占用非直连加速器的扩展内存和/或将计算任务分流至非直连加速器执行。
在一些实施中,所述根据所述加速器的信息,建立加速器直连对,包括:
按照具备相同应用计算逻辑的两个所述第一加速器组建所述加速器直连对为第一优先级、具备相同应用计算逻辑的一个所述第一加速器和一个不支持计算机快速互联协议的第二加速器组建所述加速器直连对为第二优先级、具备相同应用计算逻辑的两个所述第二加速器组建所述加速器直连对为第三优先级、具备不同应用计算逻辑的两个所述第一加速器组建所述加速器直连对为第四优先级、具备不同应用计算逻辑的一个所述第一加速器和一个所述第二加速器组建所述加速器直连对为第五优先级,将所述分布式加速器集群中的所述加速器划分并创建为所述加速器直连对。
在一些实施中,所述将所述业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,包括:
根据直连关系和扩展内存占用情况中的至少一项选取所述目标加速器,将所述业务任务划分为计算任务分发至所述目标加速器。
在一些实施中,所述将所述业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,包括:
将所述业务任务划分为计算任务,并按如下计算任务分配优先级顺序将计算任务分配至所述目标加速器:
第一计算任务分配优先级为将计算任务分配至所述加速器直连对的两个所述加速器,所述加速器直连对包括两个空闲的所述第一加速器,两个所述第一加速器的应用计算逻辑均与计算任务的类型匹配且两个所述第一加速器的扩展内存均未被占用;
第二计算任务分配优先级为将计算任务分配至所述加速器直连对的两个所述加速器,所述加速器直连对包括两个空闲的所述第一加速器,两个所述第一加速器的应用计算逻辑均与计算任务的类型匹配且其中一个所述第一加速器的扩展内存被占用;
第三计算任务分配优先级为将计算任务分配至所述加速器直连对的两个所述加速器,所述加速器直连对包括一个空闲的所述第一加速器和一个空闲的不支持计算机快速互联协议的第二加速器,所述第一加速器的应用计算逻辑和所述第二加速器的应用计算逻辑均与计算任务的类型匹配,所述第一加速器的扩展内存未被占用;
第四计算任务分配优先级为将计算任务分配至所述加速器直连对的两个所述加速器,所述加速器直连对包括两个空闲的所述第一加速器,两个所述第一加速器的应用计算逻辑均与计算任务的类型匹配且两个所述第一加速器的扩展内存均被占用;
第五计算任务分配优先级为将计算任务分配至所述加速器直连对的两个所述加速器,所述加速器直连对包括两个空闲的所述第二加速器,两个所述第二加速器的应用计算逻辑均与计算任务的类型匹配;
第六计算任务分配优先级为将计算任务分配至所述加速器直连对中的所述目标加速器,所述加速器直连对的两个所述第一加速器中仅一个满足所述目标加速器的条件且扩展内存未被占用;
第七计算任务分配优先级为将计算任务分配至所述加速器直连对中的所述目标加速器,所述加速器直连对包括一个所述第一加速器和一个所述第二加速器,仅所述第一加速器满足所述目标加速器的条件且所述第一加速器的扩展内存未被占用;
第八计算任务分配优先级为将计算任务分配至一个单独的满足所述目标加速器的条件且扩展内存未被占用的所述第一加速器;
第九计算任务分配优先级为将计算任务分配至所述加速器直连对中的所述目标加速器,所述加速器直连对包括一个所述第一加速器和一个所述第二加速器,仅所述第二加速器满足所述目标加速器的条件且所述第一加速器的扩展内存未被占用;
第十计算任务分配优先级为将计算任务分配至一个单独的满足所述目标加速器的条件且扩展内存被占用的所述第一加速器;
第十一计算任务分配优先级为将计算任务分配至所述加速器直连对中的所述目标加速器,所述加速器直连对包括一个所述第一加速器和一个所述第二加速器,仅所述第二加速器满足所述目标加速器的条件且所述第一加速器的扩展内存被占用;
第十二计算任务分配优先级为将计算任务分配至一个单独的满足所述目标加速器的条件的所述第二加速器。
在一些实施中,所述目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器,包括:
若所述目标加速器处于计算过载状态时,所述目标加速器的直连加速器满足处于空闲状态、与所述目标加速器的应用计算逻辑相同的条件,则所述目标加速器将计算任务分流至所述目标加速器的直连加速器;
若所述目标加速器处于计算过载状态时,所述目标加速器不存在直连加速器或所述目标加速器的直连加速器非空闲状态或所述目标加速器的直连加速器的应用计算逻辑与所述目标加速器不同,则为所述目标加速器分配非直连加速器作为待分流加速器,以使所述目标加速器将计算任务分流至所述待分流加速器。
在一些实施中,所述若所述目标加速器处于计算过载状态时,所述目标加速器的直连加速器满足处于空闲状态、与所述目标加速器的应用计算逻辑相同的条件,则所述目标加速器将计算任务分流至所述目标加速器的直连加速器,包括:
当接收到所述目标加速器在处于计算过载状态时发送的分流请求,根据所述目标加速器的标识查询到与所述目标加速器对应的加速器状态信息表,在与所述目标加速器对应的加速器状态信息表查询到所述目标加速器的直连加速器的信息且根据所述目标加速器的直连加速器的标识查询到与所述目标加速器的直连加速器对应的加速器状态信息表以确定所述目标加速器的直连加速器满足处于空闲状态、与所述目标加速器的应用计算逻辑相同的条件时,将与所述目标加速器的直连加速器对应的加速器状态信息表中使用状态信息置为非空闲、开始使用时间置为当前时间戳的时间、结束使用时间置为0;
将所述目标加速器的直连加速器满足计算分流条件的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述目标加速器的直连加速器;
当接收到所述目标加速器发送的计算任务已完成的信息,根据所述目标加速器的标识查询到与所述目标加速器对应的加速器状态信息表,将与所述目标加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间;
当接收到所述目标加速器的直连加速器发送计算任务已完成的信息时,根据所述目标加速器的直连加速器的标识查询到与所述目标加速器的直连加速器对应的加速器状态信息表,将与所述目标加速器的直连加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间。
在一些实施中,所述将所述目标加速器的直连加速器满足计算分流条件的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述目标加速器的直连加速器,包括:
若根据与所述目标加速器的直连加速器对应的加速器状态信息表确定所述目标加速器的直连加速器为所述第一加速器且扩展内存未被占用,将所述目标加速器的直连加速器满足计算分流条件且扩展内存未被占用的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述目标加速器的直连加速器执行和/或共享所述目标加速器的直连加速器的扩展内存;
若根据与所述目标加速器的直连加速器对应的加速器状态信息表确定所述目标加速器的直连加速器为不支持计算机快速互联协议的第二加速器或所述目标加速器的直连加速器为所述第一加速器但扩展内存被占用,则将所述目标加速器的直连加速器满足计算分流条件的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述目标加速器的直连加速器执行。
在一些实施中,所述若所述目标加速器处于计算过载状态时,所述目标加速器不存在直连加速器或所述目标加速器的直连加速器非空闲状态或所述目标加速器的直连加速器的应用计算逻辑与所述目标加速器不同,则为所述目标加速器分配非直连加速器作为待分流加速器,以使所述目标加速器将计算任务分流至所述待分流加速器,包括:
当接收到所述目标加速器在处于计算过载状态时发送的分流请求,根据所述目标加速器的标识查询到与所述目标加速器对应的加速器状态信息表,若与所述目标加速器对应的加速器状态信息表不具有所述目标加速器的直连加速器的信息,或在与所述目标加速器对应的加速器状态信息表查询到所述目标加速器的直连加速器的信息且根据所述目标加速器的直连加速器的标识查询到与所述目标加速器的直连加速器对应的加速器状态信息表以确定所述目标加速器的直连加速器非空闲状态或所述目标加速器的直连加速器的应用计算逻辑与所述目标加速器不同时,获取所述分布式加速器集群的空闲加速器的信息,自所述空闲加速器中选择应用计算逻辑与计算任务的类型匹配的所述加速器作为所述待分流加速器,将与所述待分流加速器对应的加速器状态信息表中使用状态信息置为非空闲、开始使用时间置为当前时间戳的时间、结束使用时间置为0;
将所述待分流加速器满足计算分流条件的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述待分流加速器;
当接收到所述目标加速器发送的计算任务已完成的信息,根据所述目标加速器的标识查询到与所述目标加速器对应的加速器状态信息表,将与所述目标加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间;
当接收到所述待分流加速器发送的计算任务已完成的信息,根据所述待分流加速器的标识查询到与所述待分流加速器对应的加速器状态信息表,将与所述待分流加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间。
在一些实施中,所述将所述待分流加速器满足计算分流条件的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述待分流加速器,包括:
若根据与所述待分流加速器对应的加速器状态信息表确定所述待分流加速器为所述第一加速器且扩展内存未占用,将所述待分流加速器满足计算分流条件且扩展内存未被占用的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述待分流加速器执行和/或共享所述待分流加速器的扩展内存;
若根据与所述待分流加速器对应的加速器状态信息表确定所述待分流加速器为不支持计算机快速互联协议的第二加速器或所述待分流加速器为所述第一加速器但扩展内存被占用,则将所述待分流加速器满足计算分流条件的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述待分流加速器执行。
在一些实施中,所述加速器直连对中的两个所述加速器通过直连通道共享本地的应用计算逻辑类型、使用状态信息、支持计算机快速互联协议情况和扩展内存占用情况,并将直连加速器的信息记录到直连加速器状态信息表。
在一些实施中,所述目标加速器在经由所述控制器将计算任务分流至非直连加速器时,接收所述控制器发送的待分流加速器的信息并记录到待分流加速器状态信息表。
在一些实施中,所述建立加速器直连对,包括:
应用内核间通信协议建立所述加速器直连对;
所述目标加速器将计算任务分流至直连加速器,包括:
所述目标加速器基于内核间高速传输链路将计算任务分流至所述目标加速器的直连加速器。
在一些实施中,所述目标加速器经由所述控制器将计算任务分流至非直连加速器,包括:
接收所述目标加速器发送的分流请求;
根据所述分流请求确定待分流加速器;
将所述待分流加速器的信息发送至所述目标加速器,以使所述目标加速器经由路由子网将计算任务分流至所述待分流加速器。
在一些实施中,所述目标加速器经由路由子网将计算任务分流至所述待分流加速器,包括:
所述目标加速器基于远程直接数据存取协议经由路由子网将计算任务分流至所述待分流加速器。
在一些实施中,所述根据所述分流请求确定待分流加速器,包括:
获取所述分布式加速器集群的加速器列表;
在所述加速器列表中确定与所述目标加速器的应用计算逻辑相同且空闲的所述加速器为候选分流加速器的信息;
选择满足空闲时间最长和/或属于所述第一加速器的所述候选分流加速器为所述待分流加速器。
在一些实施中,所述目标加速器处于计算过载状态,包括:
所述目标加速器记录首次本地内存被完全占用时的完全占用时间戳,并每隔查询周期进行本地内存占用状态的查询;
若连续预设周期本地内存未解除完全占用状态,则确定本地处于计算过载状态。
为解决上述技术问题,本发明还提供一种分布式计算方法,应用于分布式加速器集群中的目标加速器,包括:
接收并执行所述分布式加速器集群的控制器根据业务任务划分并分配的计算任务;
在处于计算过载状态时,将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器;
其中,所述目标加速器为处于空闲状态且应用计算逻辑与计算任务的类型匹配的加速器;所述分布式加速器集群包括预先建立的加速器直连对,所述加速器直连对包括两个互为直连加速器的所述加速器,两个所述加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个所述加速器具有相同的应用计算逻辑。
为解决上述技术问题,本发明还提供一种分布式计算方法,包括:
分布式加速器集群的控制器获取所述分布式加速器集群中加速器的信息,并根据所述加速器的信息,建立加速器直连对;
所述控制器在接收到业务任务时,将所述业务任务划分为计算任务分发至目标加速器;
所述目标加速器执行计算任务并在处于过载状态时将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器;
其中,所述目标加速器为处于空闲状态且应用计算逻辑与计算任务的类型匹配的加速器;所述加速器直连对包括两个互为直连加速器的所述加速器,两个所述加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个所述加速器具有相同的应用计算逻辑。
为解决上述技术问题,本发明还提供一种分布式计算装置,应用于分布式加速器集群的控制器,包括:
获取单元,用于获取所述分布式加速器集群中加速器的信息;
创建单元,用于根据所述加速器的信息,建立加速器直连对;
分配单元,用于在接收到业务任务时,将所述业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,以使所述目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器;
其中,所述加速器直连对包括两个互为直连加速器的所述加速器,两个所述加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个所述加速器具有相同的应用计算逻辑。
为解决上述技术问题,本发明还提供一种分布式计算装置,应用于分布式加速器集群中的目标加速器,包括:
执行单元,用于接收并执行所述分布式加速器集群的控制器根据业务任务划分并分配的计算任务;
分流处理单元,用于在处于计算过载状态时,将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器;
其中,所述目标加速器为处于空闲状态且应用计算逻辑与计算任务的类型匹配的加速器;所述分布式加速器集群包括预先建立的加速器直连对,所述加速器直连对包括两个互为直连加速器的所述加速器,两个所述加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个所述加速器具有相同的应用计算逻辑。
为解决上述技术问题,本发明还提供一种分布式计算系统,包括:分布式加速器集群和控制器;
其中,所述控制器用于获取所述分布式加速器集群中加速器的信息,根据所述加速器的信息,建立加速器直连对,在接收到业务任务时,将所述业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,以使所述目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器;
其中,所述加速器直连对包括两个互为直连加速器的所述加速器,两个所述加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个所述加速器具有相同的应用计算逻辑。
为解决上述技术问题,本发明还提供一种分布式计算设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如上述任意一项所述分布式计算方法的步骤。
为解决上述技术问题,本发明还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述分布式计算方法的步骤。
本发明所提供的分布式计算方法,通过根据分布式加速器集群中加速器的信息建立加速器直连对,使加速器直连对中至少存在一个支持计算机快速互联协议的第一加速器和/或加速器直连对中两个加速器具有相同的应用计算逻辑,在传统的路由子网之外实现了加速器间的直连,能够在利用多加速器执行并行的计算任务时使计算过载的目标加速器的计算任务可以通过直连关系分流到直连加速器或经过控制器将计算任务分流到非直连加速器,且实现了集群中加速器对支持计算机快速互联协议的加速器的扩展内存的共享占用,充分发挥了支持计算机快速互联协议的加速器在分布式加速器集群中的性能,从而实现了加速器集群的弹性内存和低时延的计算分流,提升加速器集群的并行计算性能。
本发明还提供一种分布式计算装置、设备、系统及可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种支持计算机快速互联协议的加速器的虚拟化结构示意图;
图2为本发明实施例提供的一种不支持计算机快速互联协议的加速器的虚拟化结构示意图;
图3为本发明实施例提供的一种分布式计算方法的流程图;
图4为本发明实施例提供的一种分布式计算装置的结构示意图;
图5为本发明实施例提供的一种分布式计算设备的结构示意图。
具体实施方式
本发明的核心是提供一种分布式计算方法、装置、设备、系统及可读存储介质,用于提高现有分布式加速器集群中加速器并行处理效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明实施例一进行说明。
图1为本发明实施例提供的一种支持计算机快速互联协议的加速器的虚拟化结构示意图;图2为本发明实施例提供的一种不支持计算机快速互联协议的加速器的虚拟化结构示意图。
为便于理解,首先对本发明实施例提供的分布式计算系统进行说明。
针对人工智能领域等深度学习多层神经网络模型的问题,需要更多的计算资源来运行超大规模的神经网络模型,这些超大规模的神经网络往往需要多个异构加速器协同部署,而当面对海量待处理的计算数据时,需要使用两个甚至多个异构加速器协同计算。诸如此类的运算密集型场景还有很多,例如在进行视频剪辑、数据加解密等各种情况下,往往需要使用多个异构加速器协同工作。不可否认的是,随着芯片制程的提升,在处理相同数据量的计算任务时,单个异构加速器的计算时间逐渐缩短,而异构加速器中数据的存储和读写、多个异构加速器的数据通信等成为限制异构加速器通信效率的瓶颈。
为节省异构加速器协作处理计算任务的时间,一种传统的异构加速器协作方案是将异构加速器作为服务器中央处理器(Central Processing Unit,简称CPU)的协处理器,多将现场可编程逻辑门阵列设备(Field Programmable Gate Array,简称FPGA)、图形处理器(Graphics Processing Unit,简称GPU)等加速器安插在服务器的高速串行计算机扩展总线(peripheral component interconnect express,简称PCIe)接口上,采用主从控制模式,将CPU作为主控端,将加速器作为从属设备。在此过程中,需要CPU与异构加速器进行交互(如数据预处理、上下文交互和数据接收等),还需要经过PCIe通道将相应的数据传输给异构加速器。当多个异构加速器协作处理计算任务时,也需要CPU进行交互。因此,导致了额外的CPU交互时间和PCIe传输时间。
为解决该问题,相关技术领域提出在传统的FPGA加速器上集成智能网卡功能,通过“FPGA+ASIC”芯片组合的方式在实现传统异构计算功能的同时兼具通信功能。另外,也有技术推出适用于无ASIC等非FPGA芯片辅助的FPGA加速器的分布式FPGA加速器集群网络。通过在具备光通信能力的FPGA加速器上实现远程直接数据存取(Remote Direct MemoryAccess,简称RDMA)网络通信能力,可以在FPGA加速器与服务器端实现网络通信和应用计算。此外,借助于FPGA的内核间通信协议,FPGA加速器内核之间可以实现网络数据的高速互联。在实现网络通信功能的基础上,FPGA加速器可进一步扩展并行化计算优势。
然而,FPGA加速器仍存在诸多问题。一方面,虽然相较于GPU,FPGA加速器借助其可编程特性可实现不同平台的FPGA加速器之间的通信,但仍受限于其内置的内存存储器(如双倍速率同步动态随机存储器Double Data Rate SDRAM,DDR SDRAM)等数据存储器负载能力有限问题;另外一方面,每个FPGA加速器之间处理的计算任务的数据量的不同,仍会受限于CPU的调控。在处理海量计算任务时,FPGA加速器与CPU之间需要进行频繁的交互以便于CPU及时知道FPGA加速器的运行状态及任务分配。
为针对FPGA加速器性能进行优化,有结合计算机快速互联(Compute ExpressLink,简称CXL)技术实现的FPGA加速器,CXL技术是用于处理器、内存扩展和加速器的高速缓存一致性互连协议,通过在CPU内存空间和附加设备上的内存之间保持一致性,允许资源共享以获得更高的性能,减少软件堆栈的复杂性,并降低整体系统成本。这使用户能够简单地关注目标工作负载,而不是加速器中多余的内存管理硬件。在CXL规范中,定义了三种适用于CXL协议的设备:(1)想要在本地缓存CPU主存中的数据的设备,在这种情况下,设备仅需使用计算机快速互联输入输出(CXL.I/O)协议和计算机快速互联缓存(CXL.cache)协议;(2)加速器上有内存,并且希望CPU和加速器之间有相互作用的设备,因此使用计算机快速互联输入输出(CXL.I/O)协议允许CPU发现并配置设备,然后使用计算机快速互联缓存(CXL.cache)协议以允许设备访问CPU的内存和使用计算机快速互联内存协议(CXL.mem)以允许CPU访问设备的内存;(3)内存缓冲区,在这种情况下,需要计算机快速互联输入输出(CXL.I/O)协议来发现和配置设备,以及计算机快速互联内存(CXL.mem)协议以使CPU等处理器可以访问连接到内存缓冲区的内存。如(1)(3)记载的,基于计算机快速互联协议,一种新的FPGA加速器通过增加物理内存的方法,可以将待处理的设备存储在其中,以便FPGA加速器及时取用。
然而,虽然这种基于计算机快速互联协议的加速器虽然相较于普通的加速器,可以直接从自身增加的物理内存中读取数据,提升了CPU与加速器之间的数据平均访问效率,但如果将此种加速器仍采用传统的加速器连接方式,将加速器安插在服务器支持计算机快速互联协议的特定PCIe接口上,仍需要CPU完成计算任务分配调度及完成输入和输出等数据的交互及上下文配置等,使用效率仍然受限,这相较于采用普通加速器构成的分布式加速器集群并未显著提高并行计算能力,且还因为新的加速器需要支持特定的计算机快速互联协议以及额外的内存,相应地成本大幅提高,得不偿失,故目前还没有将基于计算机快速互联协议的加速器应用于分布式加速器集群的方案。
针对在计算过载情况下,分布式加速器集群受限于加速器内存空间太小进而需要与控制端服务器频繁交互,导致高时延和并行处理速率过慢,而计算机快速互联协议且具有扩展内存的加速器仍是作为传统服务器CPU的协处理器存在,仍需要与CPU进行频繁的数据交互,由此导致数据处理速率过慢、本身造价过高和暂无使用加速器虚拟化技术作为独立计算引擎引入加速器集群等诸多问题,本发明实施例提供一种分布式计算系统,包括:分布式加速器集群和控制器;
其中,控制器用于获取分布式加速器集群中加速器的信息,根据加速器的信息,建立加速器直连对,在接收到业务任务时,将业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,以使目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由控制器将计算任务分流至非直连加速器;
其中,加速器直连对包括两个互为直连加速器的加速器,两个加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个加速器具有相同的应用计算逻辑。
在本发明实施例提供的分布式计算系统中,分布式加速器集群由多个加速器组成,各加速器之间、加速器与控制器之间通过路由协议实现网络连接。分布式加速器集群中的各加速器可以为同一类型的计算设备,也可以为异构计算设备,可以包括但不限于图形处理器(Graphics Processing Unit,简称GPU)、现场可编程逻辑门阵列设备(FieldProgrammable Gate Array,简称FPGA)、专用集成电路设备(Application SpecificIntegrated Circuit,简称ASIC)和处理器分散处理单元设备(Data Processing Unit,简称DPU),为方便建立大规模集群,本发明实施例中的加速器可以采用FPGA,利用FPGA的可编程特性来实现不同平台的FPGA之间的通信,更易于集群扩展。本发明实施例提供的分布式加速器集群中包括至少一个支持计算机快速互联协议且具有扩展内存的加速器。本发明实施例中的控制器可以包括但不限于分布式加速器集群的控制端服务器或控制端服务器的CPU。
为便于描述,在本发明各实施例中,定义第一加速器为支持计算机快速互联协议且具有扩展内存的加速器,定义第二加速器为不支持计算机快速互联协议且不具有扩展内存的加速器,定义目标加速器为控制器在分配计算任务时选定的空闲且与具有与计算任务的类型匹配的应用计算逻辑的加速器,定义直连加速器为任意加速器直连对中其中一个加速器相较于另一个加速器而言的身份,定义非直连加速器为与当前加速器未建立直连关系、不属于同一加速器直连对的加速器,定义待分流加速器为目标加速器要将计算任务分流的目的加速器,可以为目标加速器的直连加速器或非直连加速器。
如图1和图2所示,结合内核虚拟化技术,对第一加速器和第二加速器分别按照待实现的逻辑功能进行子内核的划分。
如图1所示,第一加速器100的内存包括内存存储器(如双倍速率同步动态随机存储器Double Data Rate SDRAM,DDR SDRAM)、片上内存缓冲区及扩展内存所构成的内存缓冲区,片上内存缓冲区与内存存储器之间通过高速串行计算机扩展总线(PCIe)连接,扩展内存基于计算机快速互联协议管理。可以将第一加速器100的芯片处理器中的内核虚拟化分为五部分:应用计算子内核、远程通信子内核、内核间通信子内核、逻辑控制子内核以及计算机快速互联内存控制子内核。
其中,应用计算子内核用于执行控制器分配的计算任务,如深度神经网络计算等。应用计算子内核中为加速器所搭载的应用计算逻辑,应用计算逻辑是预先部署或烧写在加速器中,用于执行特定类型的计算任务,即控制器在分配计算任务时,需要将计算任务分配给具有匹配的应用计算逻辑的加速器。
远程通信子内核通过高速串行计算机扩展总线(PCIe)与第一加速器100的第一光口连接,用于基于路由协议实现与控制器或其他加速器的数据交互。为提高数据交互效率,通信子内核具体可以采用远程直接数据存取(Remote Direct Memory Access,RDMA)协议,要求第一加速器100、路由器和与第一加速器100交互的加速器均支持远程直接数据存取协议。如图1所示,若第一加速器100为FPGA,则通信子内核可以采用FPGA的第一光口完成基于远程直接数据存取协议的数据交互。
内核间通信子内核通过高速串行计算机扩展总线(PCIe)与第一加速器100的第二光口连接,用于实现直连加速器之间进行点对点的数据通信。如图1所示,若第一加速器100为FPGA,则内核间通信子内核采用FPGA的第二光口与直连加速器之间进行点的数据通信。
逻辑控制子内核用于实现第一加速器100的基本逻辑配置、任务分发管理、监控管理和内存管理等。其中,内存管理既包括对第一加速器100的片上内存缓冲区及内存存储器(如双倍速率同步动态随机存储器Double Data Rate SDRAM,DDR SDRAM)等第一加速器100本地的内存空间的管理分配,也包括是基于计算机快速互联协议的扩展内存的内存缓冲区的管理,如有其他加速器器申请使用该第一加速器100的扩展内存,则第一加速器100基于逻辑控制子内核用于实现对其他加速器申请扩展内存时的内存分配及管理。
计算机快速互联内存控制子内核与扩展内存的内存缓冲区之间通过计算机快速互联通道连接,用于基于计算机快速互联协议,具体包括计算机快速互联输入输出(CXL.I/O)协议、计算机快速互联内存协议(CXL.mem)等协议,实现第一加速器100对扩展内存的使用。
如图2所示,第二加速器200的内存包括:内存存储器(如双倍速率同步动态随机存储器Double Data Rate SDRAM,DDR SDRAM)、片上内存缓冲区两部分,片上内存缓冲区与内存存储器之间通过高速串行计算机扩展总线(PCIe)连接。与第一加速器100不同的是,第二加速器200不具有扩展内存。可以将第二加速器200的芯片处理器中的内核虚拟化分为四部分:应用计算子内核、远程通信子内核、内核间通信子内核、逻辑控制子内核。
其中,应用计算子内核用于执行控制器分配的计算任务,如深度神经网络计算等。应用计算子内核中为加速器所搭载的应用计算逻辑,应用计算逻辑是预先部署或烧写在加速器中,用于执行特定类型的计算任务,即控制器在分配计算任务时,需要将计算任务分配给具有匹配的应用计算逻辑的加速器。
远程通信子内核通过高速串行计算机扩展总线(PCIe)与第二加速器200的第三光口连接,用于基于路由协议实现与控制器或其他加速器的数据交互。为提高数据交互效率,通信子内核具体可以采用远程直接数据存取(Remote Direct Memory Access,RDMA)协议,要求第二加速器200、路由器和与第二加速器200交互的加速器均支持远程直接数据存取协议。如图2所示,若第二加速器200为FPGA,则通信子内核可以采用FPGA的第三光口完成基于远程直接数据存取协议的数据交互。
内核间通信子内核通过高速串行计算机扩展总线(PCIe)与第二加速器200的第四光口连接,用于实现直连加速器之间进行点对点的数据通信。如图2所示,若第二加速器200为FPGA,则内核间通信子内核采用FPGA的第四光口与直连加速器之间进行点的数据通信。
逻辑控制子内核用于实现第二加速器200的基本逻辑配置、任务分发管理、监控管理和内存管理等。其中,内存管理既包括对第二加速器200的片上内存缓冲区及内存存储器(如双倍速率同步动态随机存储器Double Data Rate SDRAM,DDR SDRAM)等第二加速器200本地的内存空间的管理分配,也包括在第二加速器200的内存空间不足的情况下,基于本发明实施例提供的计算分流方法,与分配的第一加速器进行计算任务分流。
基于路由协议(如远程直接数据存取协议)将第一加速器和第二加速器接入分布式加速器集群的路由子网中。基于内核间通信协议(如IKL协议等),在分布式加速器集群中建立加速器间的两两直连关系,进而在传统的路由链路之外,可以使用内核间高速传输链路实现直连加速器之间的快速分流,若直连加速器为第一加速器,还能够基于内核间高速传输链路实现扩展内存共享占用,而对于非直连加速器,也可以通过路由子网实现对空闲的第一加速器的扩展内存进行占用,相较于传统的通过划分存储池作为共享内存的方案,由于各加速器均位于同一路由子网中,即使是非直连加速器间占用扩展内存,也大幅提高了访问速率。由此,本发明实施例提供的分布式计算系统,使得分布式加速器集群中的各加速器之间除了传统的路由链路外,还能够通过内核间高速传输链路实现与直连加速器的点对点快速交互,且能够对集群中的第一加速器的扩展内存进行占用,使得支持计算机快速互联协议的第一加速器在分布式加速器集群中能够充分发挥性能优势,而对于整个分布式加速器集群来说,相当于每个加速器都具有了弹性内存,在内存不足时有机会申请到第一加速器的扩展内存提高自身的读写效率、减少与控制器的交互,从而提高了并行计算的效率。
为便于数据分配协作和统一管理,可以设置应用本发明实施例提供的分布式计算方案中的加速器的应用计算子内核中的应用计算逻辑尽量接近于一致。或者,为了面向多场景,在本发明实施例提供的分布式计算方案中,分布式加速器集群中可以包括具有几种不同的应用计算逻辑的加速器。充分利用第一加速器的扩展内存和直连加速器间的内核间高速传输链路,使得两种加速器之间可以实现计算任务数据卸载或者内存共享。
为降低不同路由子网计算任务数据分流的复杂性,适应时延敏感型计算,可以将分布式加速器集群中的所有加速器均接入同一路由子网中,避免跨网转发时由于网络拥塞带来的时延过长问题。而为了提高分布式加速器集群中直连部署的性能,可以优先采用两个第一加速器或者具有相同应用计算逻辑的两个加速器建立加速器直连对。由于两个不具有相同的应用计算逻辑的第二加速器之间的直连无法显著提高计算分流效率,故设置加速器直连对需至少满足两个加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和两个加速器具有相同的应用计算逻辑中的一个条件。
在上述架构的基础上,下面结合附图对本发明实施例提供的分布式计算方法进行说明。
下面对本发明实施例二进行说明。
图3为本发明实施例提供的一种分布式计算方法的流程图。
如图3所示,应用于分布式加速器集群的控制器,本发明实施例提供的分布式计算方法,包括:
S301:获取分布式加速器集群中加速器的信息。
S302:根据加速器的信息,建立加速器直连对。
S303:在接收到业务任务时,将业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,以使目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由控制器将计算任务分流至非直连加速器。
其中,加速器直连对包括两个互为直连加速器的加速器,两个加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个加速器具有相同的应用计算逻辑。
结合本发明实施例一提供的分布式计算系统,本发明实施例提供一种分布式计算方法。对于S301来说,控制器在进行计算任务的调度之前,与其管理的分布式加速器集群中相应的加速器建立状态管理机制。控制器通过获取分布式加速器集群中加速器的信息(如加速器的唯一标识、加速器的网络地址、加速器的类型、加速器的性能参数等),建立表格等形式的存储机制来管理各加速器的使用状态,可以记作加速器状态信息表。
该加速器状态信息表可以采用哈希表,其键为对应的加速器的网络地址,相应的值为加速器的状态信息。可以采用一个长为134bit的字段作为加速器状态信息表,具体字段及含义如表1所示。
表1 加速器状态信息表
如上述表1的说明,控制器在分布式加速器集群初始化后,即可通过收集各加速器的实时状态信息维护各加速器对应的加速器状态信息表,根据各加速器是否支持计算机快速互联协议、是否建立了直连加速器、直连加速器的网络地址以及路由子网编号等编辑加速器状态信息表中对应的值。
对于S302来说,控制器根据各加速器的类型,以两个加速器为一组建立加速器直连对,并保证加速器直连对满足两个加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和两个加速器具有相同的应用计算逻辑中至少一个条件。如本发明实施例一所介绍的,可以采用内核间通信协议(如IKL协议等)建立两个加速器间的直连关系,形成加速器直连对,则S302:根据加速器的信息,建立加速器直连对,可以包括:应用内核间通信协议建立加速器直连对。同时,S303中目标加速器将计算任务分流至直连加速器,可以包括:目标加速器基于内核间高速传输链路将计算任务分流至目标加速器的直连加速器。
在上述建立加速器直连对的基础上,可以进一步选择本发明实施例提供的五级优先直连方法来建立加速器直连对,即S302中根据加速器的信息,建立加速器直连对,可以包括:
按照具备相同应用计算逻辑的两个第一加速器组建加速器直连对为第一优先级、具备相同应用计算逻辑的一个第一加速器和一个不支持计算机快速互联协议的第二加速器组建加速器直连对为第二优先级、具备相同应用计算逻辑的两个第二加速器组建加速器直连对为第三优先级、具备不同应用计算逻辑的两个第一加速器组建加速器直连对为第四优先级、具备不同应用计算逻辑的一个第一加速器和一个第二加速器组建加速器直连对为第五优先级,将分布式加速器集群中的加速器划分并创建为加速器直连对。
其中,按照第一优先级、第二优先级、第三优先级、第四优先级、第五优先级的顺序,当分布式加速器集群中的两个加速器满足对应优先级条件时,其对应的优先级越靠前,被分配至同一加速器直连对的几率越高。即是说,在进行分组时,可以考虑创建更多的第一优先级的加速器直连对,而后是第二优先级,以此类推。
对于S303来说,控制器在接收到业务任务时,根据所管理的加速器的类型将业务任务拆分为计算任务,将计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器执行。除了计算任务的分发外,在分布式加速器集群中任意类型的加速器在开始执行计算任务、结束计算任务、扩展内存被占用和计算过程中需要计算分流等多种场景,控制器对各加速器的实时状态信息进行监控并对目标加速器的计算分流需求进行协助。
由于分布式加速器集群中存在至少一个加速器直连对,加速器直连对中的两个加速器可以基于内核通信协议进行点对点快速交互,故可以优先将计算任务分发至加速器直连对中的加速器。同时,若加速器为第一加速器但其扩展内存被占用,会导致读写性能下降,故可以优先将计算任务分发至扩展内存未被占用的第一加速器。则S303中将业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,可以包括:根据直连关系和扩展内存占用情况中的至少一项选取目标加速器,将业务任务划分为计算任务分发至目标加速器。
由于不同加速器因型号、生产工艺等区别,会导致并行计算的执行时间不同,控制器分配的计算任务可能会导致部分目标加速器处于计算过载状态导致迟迟无法完成计算任务。故需要在目标加速器处于计算过载状态时执行对目标加速器上计算任务的分流操作。
确定目标加速器处于计算过载状态的方式可以为目标加速器相较于其他执行同类型计算任务的加速器的执行时间过长,例如,同类型计算任务在单个加速器上的平均执行时间为第一时间,而目标加速器的执行时间已超出第一时间,则可以确定目标加速器处于计算过载状态。确定目标加速器处于计算过载状态的方式还可以为目标加速器的内存长时间处于完全占用状态,则S302中目标加速器处于计算过载状态,可以包括:目标加速器记录首次本地内存被完全占用时的完全占用时间戳(可以记作T fstocpy ),并每隔查询周期(如△t)进行本地内存占用状态的查询;若连续预设周期本地内存未解除完全占用状态,则确定本地处于计算过载状态。其中,本地内存可以指内存存储器(如双倍速率同步动态随机存储器Double Data Rate SDRAM,DDR SDRAM),也可以指包括内存存储器、片上内存缓冲区及扩展内存在内的所有本地内存。
则目标加速器在确定本地处于计算过载状态时,开始寻求其他加速器进行本地计算任务的分流。若目标加速器存在直连加速器,直连加速器的应用计算逻辑与目标加速器相同且直连加速器处于空闲状态,则目标加速器可以将计算任务通过内核间高速传输链路分流至直连加速器。若不满足该条件,则目标加速器需要选择非直连加速器来进行计算任务的分流。则S303中目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由控制器将计算任务分流至非直连加速器,可以包括:
若目标加速器处于计算过载状态时,目标加速器的直连加速器满足处于空闲状态、与目标加速器的应用计算逻辑相同的条件,则目标加速器将计算任务分流至目标加速器的直连加速器;
若目标加速器处于计算过载状态时,目标加速器不存在直连加速器或目标加速器的直连加速器非空闲状态或目标加速器的直连加速器的应用计算逻辑与目标加速器不同,则为目标加速器分配非直连加速器作为待分流加速器,以使目标加速器将计算任务分流至待分流加速器。
可以理解的是,由于目标加速器与直连加速器能够基于内核间高速传输链路进行通信,相较于非直连加速器,目标加速器优选将计算任务分流至直连加速器。为方便目标加速器快速获悉是否具有将计算任务分流至直连加速器的条件,可以在各加速器直连对的两个加速器均维护直连加速器状态信息,具体可以创建直连加速器信息表,用于记载直连加速器是否处于空闲状态、是否支持计算机快速互联协议、是否具有扩展内存、扩展内存是否被占用等信息。则在本发明实施例提供的分布式计算方法中,加速器直连对中的两个加速器可以通过直连通道共享本地的应用计算逻辑类型、使用状态信息、支持计算机快速互联协议情况和扩展内存占用情况,并将直连加速器的信息记录到直连加速器状态信息表。
而在需要将计算任务分流至非直连加速器时,为使目标加速器快速获悉可以从待分流加速器得到什么资源,也可以在各加速器维护待分流加速器状态信息,具体可以创建待分流加速器信息表,用于记载待分流加速器是否处于空闲状态、是否支持计算机快速互联协议、是否具有扩展内存、扩展内存是否被占用等信息。则在本发明实施例提供的分布式计算方法中,目标加速器在经由控制器将计算任务分流至非直连加速器时,可以接收控制器发送的待分流加速器的信息并记录到待分流加速器状态信息表。
则各加速器可以维护计算分流加速器状态信息表,计算分流加速器状态信息表中可以包括直连加速器状态信息表的信息以及待分流加速器状态信息表的信息。如表2,计算分流加速器状态信息表可以对应一个长为75bit的数字字段,字段含义如表2所示。
表2 计算分流加速器状态信息表
在上文提到,目标加速器基于内核间高速传输链路将计算任务分流至直连加速器。当不具有直连加速器或直连加速器不满足分流条件时,目标加速器需寻求非直连加速器来进行计算任务分流。为保证分流至非直连加速器的效率,由控制器选取目标加速器的非直连加速器作为目标加速器的待分流加速器。则S303中目标加速器经由控制器将计算任务分流至非直连加速器,可以包括:
接收目标加速器发送的分流请求;
根据分流请求确定待分流加速器;
将待分流加速器的信息发送至目标加速器,以使目标加速器经由路由子网将计算任务分流至待分流加速器。
具体地,目标加速器向控制器发送分流请求,由控制器查询分布式加速器集群中各加速器的加速器状态信息表,从中选定一个或多个待分流加速器,将待分流加速器的信息(标识或网络地址)反馈给目标加速器,使目标加速器与待分流加速器交互进行计算任务的分流。
为提高控制器到加速器之间、两个加速器之间的数据交互效率,可以采用远程直接数据存取协议替换传统的传输控制协议(TCP,Transmission Control Protocol)/用户数据报协议(User Datagram Protocol,UDP)。则目标加速器经由路由子网将计算任务分流至待分流加速器,可以包括:目标加速器基于远程直接数据存取协议经由路由子网将计算任务分流至待分流加速器。
为保证分配的待分流加速器可以快速完成目标加速器分流的计算任务,应当选择性能较优的待分流加速器。则根据分流请求确定待分流加速器,可以包括:获取分布式加速器集群的加速器列表;在加速器列表中确定与目标加速器的应用计算逻辑相同且空闲的加速器为候选分流加速器的信息;选择满足空闲时间最长和/或属于第一加速器的候选分流加速器为待分流加速器。控制器可以通过查询分布式加速器集群中各加速器的加速器状态信息表获悉与目标加速器的应用计算逻辑相同的空闲加速器中空闲时间最长的加速器,最好能选择读写性能更优的第一加速器作为待分流加速器。如加速器状态信息表(表1)所示,则控制器通过读取其第83-125位得到该空闲加速器上一次完成计算任务的结束使用时间,并从中找到结束使用时间最早的加速器/第一加速器作为待分流加速器。
在本发明各实施例中,加速器处于空闲状态,可以仅指加速器的应用计算子内核处于空闲状态,也可以指加速器的应用计算子内核和加速器的扩展内存均处于空闲状态或其中至少一个处于空闲状态。则任意目标加速器在进行计算任务的分流时,可以选择以其他加速器的扩展内存作为共享内存来提高本地的读写速率,也可以选择将计算任务发送至其他加速器执行来分担计算工作从而加快计算任务完成的速率。
则S303中目标加速器在处于计算过载状态时将计算任务分流至直连加速器,可以包括:目标加速器在处于计算过载状态时占用直连加速器的扩展内存和/或将计算任务分流至直连加速器执行。S303中目标加速器在处于计算过载状态时经由控制器将计算任务分流至非直连加速器,可以包括:目标加速器在处于计算过载状态时经由控制器占用非直连加速器的扩展内存和/或将计算任务分流至非直连加速器执行。即是说,第一加速器的扩展内存除了自己使用外,可以共享给直连加速器,也可以共享给其他加速器。在同时接收到多个加速器的共享请求时,可以按照本地使用、共享给直连加速器使用、共享给其他加速器使用的优先级进行扩展内存的共享。
本发明实施例提供的分布式计算方法,通过根据分布式加速器集群中加速器的信息建立加速器直连对,使加速器直连对中至少存在一个支持计算机快速互联协议的第一加速器和/或加速器直连对中两个加速器具有相同的应用计算逻辑,在传统的路由子网之外实现了加速器间的直连,能够在利用多加速器执行并行的计算任务时使计算过载的目标加速器的计算任务可以通过直连关系分流到直连加速器或经过控制器将计算任务分流到非直连加速器,且实现了集群中加速器对支持计算机快速互联协议的加速器的扩展内存的共享占用,充分发挥了支持计算机快速互联协议的加速器在分布式加速器集群中的性能,从而实现了加速器集群的弹性内存和低时延的计算分流,提升加速器集群的并行计算性能。
下面对本发明实施例三进行说明。
考虑到多场景的计算任务随机到来的控制器进行计算任务数据分发的场景,在上述实施例的基础上,本发明实施例提供一种基于优先级进行计算任务分发的方案,以便将计算任务分发给处于空闲状态且应用计算逻辑与计算任务的类型匹配的目标加速器。在本发明实施例提供的分布式计算方法中,S303中将业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,可以包括:
将业务任务划分为计算任务,并按如下计算任务分配优先级顺序将计算任务分配至目标加速器:
第一计算任务分配优先级为将计算任务分配至加速器直连对的两个加速器,加速器直连对包括两个空闲的第一加速器,两个第一加速器的应用计算逻辑均与计算任务的类型匹配且两个第一加速器的扩展内存均未被占用;
第二计算任务分配优先级为将计算任务分配至加速器直连对的两个加速器,加速器直连对包括两个空闲的第一加速器,两个第一加速器的应用计算逻辑均与计算任务的类型匹配且其中一个第一加速器的扩展内存被占用;
第三计算任务分配优先级为将计算任务分配至加速器直连对的两个加速器,加速器直连对包括一个空闲的第一加速器和一个空闲的不支持计算机快速互联协议的第二加速器,第一加速器的应用计算逻辑和第二加速器的应用计算逻辑均与计算任务的类型匹配,第一加速器的扩展内存未被占用;
第四计算任务分配优先级为将计算任务分配至加速器直连对的两个加速器,加速器直连对包括两个空闲的第一加速器,两个第一加速器的应用计算逻辑均与计算任务的类型匹配且两个第一加速器的扩展内存均被占用;
第五计算任务分配优先级为将计算任务分配至加速器直连对的两个加速器,加速器直连对包括两个空闲的第二加速器,两个第二加速器的应用计算逻辑均与计算任务的类型匹配;
第六计算任务分配优先级为将计算任务分配至加速器直连对中的目标加速器,加速器直连对的两个第一加速器中仅一个满足目标加速器的条件且扩展内存未被占用;
第七计算任务分配优先级为将计算任务分配至加速器直连对中的目标加速器,加速器直连对包括一个第一加速器和一个第二加速器,仅第一加速器满足目标加速器的条件且第一加速器的扩展内存未被占用;
第八计算任务分配优先级为将计算任务分配至一个单独的满足目标加速器的条件且扩展内存未被占用的第一加速器;
第九计算任务分配优先级为将计算任务分配至加速器直连对中的目标加速器,加速器直连对包括一个第一加速器和一个第二加速器,仅第二加速器满足目标加速器的条件且第一加速器的扩展内存未被占用;
第十计算任务分配优先级为将计算任务分配至一个单独的满足目标加速器的条件且扩展内存被占用的第一加速器;
第十一计算任务分配优先级为将计算任务分配至加速器直连对中的目标加速器,加速器直连对包括一个第一加速器和一个第二加速器,仅第二加速器满足目标加速器的条件且第一加速器的扩展内存被占用;
第十二计算任务分配优先级为将计算任务分配至一个单独的满足目标加速器的条件的第二加速器。
在上述十二个计算任务分配优先集中,第一计算任务分配优先级最高,优先级依次降低,第十二计算任务分配优先级最低。
需要说明的是,若控制器在初始分配计算任务时,将计算任务分配给了不支持计算机快速互联协议的目标加速器(第二加速器),无法使用扩展内存,如第十一计算任务分配优先级的情况和第十二计算任务分配优先级的情况,当目标加速器的直连加速器的扩展内存结束共享占用时,可以提供给目标加速器作为共享内存进行额外的数据存储和读取。因此,虽然此前目标加速器的直连加速器的扩展内存被占用,但当直连加速器的扩展内存被释放时,即可提供额外的存储空间,并利用内核间高速传输链路作为目标加速器的共享内存。
下面对本发明实施例四进行说明。
在上述实施例的基础上,本发明实施例进一步对控制器执行计算任务的分发、处理加速器开始执行计算任务、加速器结束执行计算任务、加速器的扩展内存的占用与释放、加速器需要计算分流的控制过程进行说明。
结合本发明实施例二介绍的控制器通过加速器状态信息表(表1)监控各加速器的实时状态信息,控制器将计算任务的数据分发至目标加速器时,根据目标加速器的网络地址查询与目标加速器对应的加速器状态信息表中相应的实时状态信息,将bit位顺序为0#的值改为1、4#-7#的值改为应用逻辑类型对应的值、40#-82#的值设置为控制器将计算任务分发到目标加速器的时间戳。在任意加速器执行完毕计算任务后,加速器将实时状态信息更新到控制器,控制器再根据加速器的网络地址查询加速器对应的加速器状态信息表,将bit位顺序为0#的值改为0、40#-82#的值置为0、83#-125#的值置为加速器完成计算任务的时间戳。
结合本发明实施例二介绍的加速器通过计算分流加速器状态信息表(表2)监控待分流加速器(可能为直连加速器也可能为非直连加速器)的实时状态信息的方案,在目标加速器开始执行计算任务时,若目标加速器存在直连加速器,则正在执行计算任务的目标加速器的逻辑控制子内核需要向直连加速器的逻辑控制子内核告知正在执行的应用计算逻辑类型、是否支持计算机快速互联协议、扩展内存是否处于共享占用状态等信息。直连加速器的逻辑控制子内核在接收到目标加速器相关信息后,修改其计算分流加速器状态信息表(记为第二计算分流加速器状态信息表)的数组字段中bit位编号为0#的值为1(即代表直连的目标加速器处于任务执行状态)。根据目标加速器是否支持计算机快速互联协议,将bit位编号为1#的值完成对应值设置,bit位编号为6#-9#对应的值设置为目标加速器的应用计算子内核逻辑类型对应的值。根据目标加速器的扩展内存是否被占用,将bit位编号为4#设置为对应的值。根据目标加速器是否存在直连加速器将bit位编号为74#设置对应的值。
目标加速器在完成计算任务时,若存在直连加速器,目标加速器的逻辑控制子内核需要向直连加速器告知目标加速器已完成计算、是否支持计算机快速互联协议、支持的应用计算逻辑类型、扩展内存是否处于在用状态等。直连加速器根据目标加速器通知的信息修改其本地的计算分流加速器状态信息表的数组字段中bit位编号为0#、1#、4#及6#-9#对应值的设置。
若任意第一加速器的扩展内存被非直连加速器共享占用,则该第一加速器的逻辑控制子内核通过内核间高速传输链路告知直连加速器和控制器。直连加速器会修改其本地的计算分流加速器状态信息表的数组字段中bit位编号为4#的对应值为1,而控制器会根据该第一加速器的网络地址查询到该第一加速器的加速器状态信息表,得到该第一加速器的状态实时信息后,修改bit位编号3#的值为1。
若任意第一加速器的扩展内存占用结束被释放后,该第一加速器的逻辑控制子内核会通过内核间高速传输链路告知直连加速器和控制器。直连加速器修改其本地的计算分流加速器状态信息表中的数组字段中bit位编号为4#的值为0,而控制器会根据该第一加速器的网络地址查询到该第一加速器的加速器状态信息表,得到该第一加速器的状态实时信息后,修改bit位编号3#的值为1。在此过程中,若该第一加速器仍处于在用状态,则该第一加速器可以直接调用扩展内存进行数据存储和交互。
结合本发明实施例二介绍的目标加速器判断本地处于计算过载状态的方法,目标加速器记录首次本地内存被完全占用时的完全占用时间戳(可以记作T fstocpy ),并每隔查询周期(如△t)进行本地内存占用状态的查询;若连续预设周期(如3个周期)本地内存未解除完全占用状态,则确定本地处于计算过载状态。
在本发明实施例二介绍了,当目标加速器处于计算过载状态时,如果有条件将计算任务分流至目标加速器的直连加速器,则优先分流至直连加速器,若没有条件将计算任务分流至直连加速器,则目标加速器需将分流请求发送至控制器,由控制器选定一个非直连加速器作为目标加速器的待分流加速器,使目标加速器将计算任务分流至非直连加速器。
在实际应用中,目标加速器的逻辑控制子内核通过查询本地的计算分流加速器状态信息表来获取待分流加速器的实时状态信息,目标加速器在控制器发送分流请求后,控制器查询加速器的加速器状态信息表等方式来实现目标加速器的计算分流。则在本发明实施例提供的分布式计算方法中,若目标加速器处于计算过载状态时,目标加速器的直连加速器满足处于空闲状态、与目标加速器的应用计算逻辑相同的条件,则目标加速器将计算任务分流至目标加速器的直连加速器,可以包括:
当接收到目标加速器在处于计算过载状态时发送的分流请求,根据目标加速器的标识查询到与目标加速器对应的加速器状态信息表,在与目标加速器对应的加速器状态信息表查询到目标加速器的直连加速器的信息且根据目标加速器的直连加速器的标识查询到与目标加速器的直连加速器对应的加速器状态信息表以确定目标加速器的直连加速器满足处于空闲状态、与目标加速器的应用计算逻辑相同的条件时,将与目标加速器的直连加速器对应的加速器状态信息表中使用状态信息置为非空闲、开始使用时间置为当前时间戳的时间、结束使用时间置为0;
将目标加速器的直连加速器满足计算分流条件的信息反馈至目标加速器,以使目标加速器将计算任务分流至目标加速器的直连加速器;
当接收到目标加速器发送的计算任务已完成的信息,根据目标加速器的标识查询到与目标加速器对应的加速器状态信息表,将与目标加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间;
当接收到目标加速器的直连加速器发送计算任务已完成的信息时,根据目标加速器的直连加速器的标识查询到与目标加速器的直连加速器对应的加速器状态信息表,将与目标加速器的直连加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间。
在上述步骤中,加速器处于空闲状态,可以仅指加速器的应用计算子内核处于空闲状态,也可以指加速器的应用计算子内核和加速器的扩展内存均处于空闲状态或其中至少一个处于空闲状态。则将目标加速器的直连加速器满足计算分流条件的信息反馈至目标加速器,以使目标加速器将计算任务分流至目标加速器的直连加速器,可以包括:
若根据与目标加速器的直连加速器对应的加速器状态信息表确定目标加速器的直连加速器为第一加速器且扩展内存未被占用,将目标加速器的直连加速器满足计算分流条件且扩展内存未被占用的信息反馈至目标加速器,以使目标加速器将计算任务分流至目标加速器的直连加速器执行和/或共享目标加速器的直连加速器的扩展内存;
若根据与目标加速器的直连加速器对应的加速器状态信息表确定目标加速器的直连加速器为不支持计算机快速互联协议的第二加速器或目标加速器的直连加速器为第一加速器但扩展内存被占用,则将目标加速器的直连加速器满足计算分流条件的信息反馈至目标加速器,以使目标加速器将计算任务分流至目标加速器的直连加速器执行。
而在目标加速器没有条件将计算任务分流至直连加速器,则目标加速器需将分流请求发送至控制器,由控制器选定一个非直连加速器作为目标加速器的待分流加速器,使目标加速器将计算任务分流至非直连加速器。则若目标加速器处于计算过载状态时,目标加速器不存在直连加速器或目标加速器的直连加速器非空闲状态或目标加速器的直连加速器的应用计算逻辑与目标加速器不同,则为目标加速器分配非直连加速器作为待分流加速器,以使目标加速器将计算任务分流至待分流加速器,包括:
当接收到目标加速器在处于计算过载状态时发送的分流请求,根据目标加速器的标识查询到与目标加速器对应的加速器状态信息表,若与目标加速器对应的加速器状态信息表不具有目标加速器的直连加速器的信息,或在与目标加速器对应的加速器状态信息表查询到目标加速器的直连加速器的信息且根据目标加速器的直连加速器的标识查询到与目标加速器的直连加速器对应的加速器状态信息表以确定目标加速器的直连加速器非空闲状态或目标加速器的直连加速器的应用计算逻辑与目标加速器不同时,获取分布式加速器集群的空闲加速器的信息,自空闲加速器中选择应用计算逻辑与计算任务的类型匹配的加速器作为待分流加速器,将与待分流加速器对应的加速器状态信息表中使用状态信息置为非空闲、开始使用时间置为当前时间戳的时间、结束使用时间置为0;
将待分流加速器满足计算分流条件的信息反馈至目标加速器,以使目标加速器将计算任务分流至待分流加速器;
当接收到目标加速器发送的计算任务已完成的信息,根据目标加速器的标识查询到与目标加速器对应的加速器状态信息表,将与目标加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间;
当接收到待分流加速器发送的计算任务已完成的信息,根据待分流加速器的标识查询到与待分流加速器对应的加速器状态信息表,将与待分流加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间。
在上述步骤中,加速器处于空闲状态,可以仅指加速器的应用计算子内核处于空闲状态,也可以指加速器的应用计算子内核和加速器的扩展内存均处于空闲状态或其中至少一个处于空闲状态。则将待分流加速器满足计算分流条件的信息反馈至目标加速器,以使目标加速器将计算任务分流至待分流加速器,可以包括:
若根据与待分流加速器对应的加速器状态信息表确定待分流加速器为第一加速器且扩展内存未占用,将待分流加速器满足计算分流条件且扩展内存未被占用的信息反馈至目标加速器,以使目标加速器将计算任务分流至待分流加速器执行和/或共享待分流加速器的扩展内存;
若根据与待分流加速器对应的加速器状态信息表确定待分流加速器为不支持计算机快速互联协议的第二加速器或待分流加速器为第一加速器但扩展内存被占用,则将待分流加速器满足计算分流条件的信息反馈至目标加速器,以使目标加速器将计算任务分流至待分流加速器执行。
下面对本发明实施例五进行说明。
结合本发明上述实施例,在目标加速器需要进行计算任务分流时,可以选择占用另一加速器的扩展内存来增加自身的读写性能,也可以将计算任务分流至另一空闲且应用计算逻辑与目标加速器相同的待分流加速器执行。而结合加速器的使用状态信息、加速器是否支持计算机快速互联协议、加速器的扩展内存占用情况等条件,可以更好地为目标加速器分配计算分流策略,以提升执行计算任务的整体效率。
则在上述实施例的基础上,本发明实施例进一步对目标加速器的计算分流的实际情形进行说明。
情形一:若目标加速器存在直连加速器,直连加速器的应用计算逻辑与目标加速器相同,直连加速器处于空闲状态,直连加速器支持计算机快速互联协议且直连加速器的扩展内存未被占用,则处于计算过载状态的目标加速器向控制器申请将部分计算任务由内核间高速传输链路分流给直连加速器及其扩展内存。
控制器接收到相关分流信息后,首先会在根据直连加速器的网络地址在与目标加速器的直连加速器对应的加速器状态信息表中查询直连加速器的实时状态信息,并修改与目标加速器的直连加速器对应的加速器状态信息表中加速器的使用状态信息(即bit位0#的值改为1)、开始使用时间(即bit位40#-82#的值设置为当前时间戳的时间)及将结束使用时间(即bit位83#-125#的值设置为0)。然后,控制端服务器通过网络通知目标加速器及直连加速器可进行计算任务分流并可使用直连加速器的扩展内存。与此同时,为提升扩展内存使用效率,避免目标加速器与直连加速器之间的频繁网络数据I/O,直连加速器的扩展内存仅供目标加速器使用。
目标加速器和直连加速器在完成计算任务后各自将计算结果通过网络传输给相应的接收端。最后,在目标加速器和直连加速器通过协助完成计算任务后,一方面需要相互交互本地的实时状态信息,并根据直连加速器的实时状态信息更新本地的计算分流加速器状态信息表(具体可以参考本发明实施例四的记载),另一方面需要将完成计算任务的信息通过网络端口告知控制器。控制器根据当前目标加速器的实时状态信息及其直连加速器的实时状态信息,查询并修改对应的加速器状态信息表中使用状态信息为空闲状态、开始使用时间置为0、结束使用时间置为加速器完成计算任务的时间戳(具体可以参考本发明实施例四的记载),以及将扩展内存占用信息进行相应修改。
情形二:若目标加速器存在直连加速器,直连加速器的应用计算逻辑与目标加速器相同,直连加速器处于空闲状态,直连加速器支持计算机快速互联协议且直连加速器的扩展内存被占用,则处于计算过载状态的目标加速器向控制器申请将部分计算任务由内核间高速传输链路分流给直连加速器,但无法使用直连加速器正在被共享占用的扩展内存。
控制器接收到相关分流信息后,首先会在根据直连加速器的网络地址在与目标加速器的直连加速器对应的加速器状态信息表中查询直连加速器的实时状态信息,并修改与目标加速器的直连加速器对应的加速器状态信息表中加速器的使用状态信息(即bit位0#的值改为1)、开始使用时间(即bit位40#-82#的值设置为当前时间戳的时间)及将结束使用时间(即bit位83#-125#的值设置为0)。然后控制端服务器通过网络通知目标加速器及直连加速器可进行计算任务分流但不可使用直连加速器的扩展内存。在目标加速器和直连加速器处理计算任务的过程中,若直连加速器的扩展内存被释放,为提升扩展内存使用效率,避免目标加速器和直连加速器之间的频繁网络数据I/O,则直连加速器释放的扩展内存优先供本地执行计算任务时使用,或也可以同时供目标加速器使用。
目标加速器和直连加速器在完成计算任务后各自将计算结果通过网络传输给相应的接收端。最后,在目标加速器和直连加速器通过协助完成计算任务后,一方面需要相互交互本地的实时状态信息,并根据直连加速器的实时状态信息更新本地的计算分流加速器状态信息表(具体可以参考本发明实施例四的记载),另一方面需要将完成计算任务的信息通过网络端口告知控制器。控制器根据当前目标加速器的实时状态信息及其直连加速器的实时状态信息,查询并修改对应的加速器状态信息表中使用状态信息为空闲状态、开始使用时间置为0、结束使用时间置为加速器完成计算任务的时间戳(具体可以参考本发明实施例四的记载),以及将扩展内存占用信息进行相应修改。
情形三:若目标加速器存在直连加速器,直连加速器的应用计算逻辑与目标加速器相同,直连加速器处于非空闲状态,直连加速器支持计算机快速互联协议且直连加速器的扩展内存未被占用,此时处于计算过载状态的目标加速器可以选择两种计算任务分流方法,一种方法是为避免目标加速器和直连加速器共同使用直连加速器的扩展内存带来的I/O时间,目标加速器不占用直连加速器的扩展内存,即直连加速器的扩展内存预留本地使用,目标加速器向控制器申请将计算任务分流至非直连加速器;另一种方法是在直连加速器未处于计算过载状态时,目标加速器可以申请占用直连加速器的扩展内存以提高本地的读写性能。
若采用第一种方法,目标加速器向控制器发送分流请求;控制器接收到分流请求后,查询分布式加速器集群的加速器列表,得到与目标加速器应用计算逻辑相同的且处于空闲状态的加速器作为候选分流加速器,再从候选分流加速器中选择待分流加速器。选择待分流加速器时,优选支持计算机快速互联协议、扩展内存未被占用的候选分流加速器。若候选分流加速器处于空闲状态但扩展内存被占用,则可以将计算任务分流至候选分流加速器但不占用候选分流加速器的扩展内存。若候选分流加速器处于非空闲状态但扩展内存未被占用,则可以申请占用候选分流加速器的扩展内存或使候选分流加速器的扩展内存优先供本地使用。为进一步提高负载均衡效果,控制器在支持计算机快速互联协议、扩展内存未被占用的候选分流加速器的候选分流加速器中选择结束使用时间最早(即空闲时间最长)的作为待分流加速器。
在选定待分流加速器后,控制器会根据待分流加速器的网络地址查询对应的加速器状态信息表,修改其中的使用状态信息(即bit位0#的值改为1)、开始使用时间(即bit位40#-82#的值设置为当前时间戳的时间)及将结束使用时间(即bit位83#-125#的值设置为0)。然后控制器通过网络通知目标加速器及待分流加速器可进行计算任务分流并可使用直连加速器的扩展内存。或者,由于待分流加速器为非直连加速器,控制器通过网络通知目标加速器及待分流加速器可进行计算任务分流并不可使用待分流加速器的扩展内存,使待分流加速器的扩展内存仅供自己使用。
在进行计算任务分流的同时,目标加速器需要修改自身的计算分流加速器状态信息表,修改bit位编号为2#的值为1,3#值为0,5#值为0,10#-41#的值为对应待分流加速器的网络地址。
目标加速器和待分流加速器在完成计算任务后各自将计算结果通过网络传输给相应的接收端。最后,两个加速器通过计算分流完成计算任务后,均需要将相关信息通过网络端口告知控制器。控制器根据两个加速器的IP地址,查询并修改对应的加速器状态信息表中使用状态信息为空闲状态、开始使用时间置为0、结束使用时间置为加速器完成计算任务的时间戳(具体可以参考本发明实施例四的记载),以及将扩展内存占用信息进行相应修改。
此外,若待分流加速器也存在直连加速器,则待分流加速器与其直连加速器进行状态交互以及维护更新计算分流加速器状态信息表可以参考本发明实施例四的记载。
情形四:若目标加速器存在直连加速器,直连加速器的应用计算逻辑与目标加速器相同,直连加速器处于非空闲状态,直连加速器支持计算机快速互联协议且直连加速器的扩展内存被占用。则处于计算过载状态的目标加速器需要将计算任务分流至非直连加速器,具体可以参考情形三中以非直连加速器作为待分流加速器时的分流方案以及计算分流加速器状态信息表的维护方案。
情形五:若目标加速器存在直连加速器,直连加速器的应用计算逻辑与目标加速器不同,直连加速器处于空闲状态,直连加速器支持计算机快速互联协议且直连加速器的扩展内存未被占用,则处于计算过载状态的目标加速器可以申请使用直连加速器的扩展内存或向控制器申请非直连加速器进行计算任务分流。
若目标加速器可以申请使用直连加速器的扩展内存,则具体步骤如下:
目标加速器向控制器发送使用直连加速器的扩展内存的请求。控制器在接收到请求后,根据与目标加速器的直连加速器对应的加速器状态信息表中查询直连加速器的实时状态信息,并修改与目标加速器的直连加速器对应的加速器状态信息表中扩展内存占用情况(即bit位3#的值改为1),即直连加速器的扩展内存被目标加速器占用。然后,控制器通过网络通知目标加速器可使用直连加速器的扩展内存。目标加速器首先修改自身的计算分流加速器状态信息表的数组字段,bit位顺序为2#的值修改为1,3#的值为1,10#-41#的值修改为直连加速器的网络地址。完成以上操作后,目标加速器可使用直连加速器的扩展内存进行计算任务数据的写入和读取。具体的写入路径为:目标加速器的片上内存缓冲区→目标加速器的内核间通信子内核→目标加速器与直连加速器之间的内核间高速传输链路→直连加速器的内核间通信子内核→直连加速器的计算机快速互联内存控制子内核→直连加速器的内存缓冲区。具体的读取路径与之相反。
目标加速器和直连加速器会将相应的计算结果各自通过网络传输给相应的接收端。最后,在目标加速器和直连加速器通过协助完成计算任务后,一方面需要相互交互本地的实时状态信息,并根据直连加速器的实时状态信息更新本地的计算分流加速器状态信息表(具体可以参考本发明实施例四的记载),另一方面需要将完成计算任务的信息通过网络端口告知控制器。控制器根据当前目标加速器的实时状态信息及其直连加速器的实时状态信息,查询并修改对应的加速器状态信息表中使用状态信息为空闲状态、开始使用时间置为0、结束使用时间置为加速器完成计算任务的时间戳(具体可以参考本发明实施例四的记载),以及将扩展内存占用信息进行相应修改。
若向控制器申请非直连加速器进行计算任务分流,则可以参考情形三中以非直连加速器作为待分流加速器时的分流方案以及计算分流加速器状态信息表的维护方案。
情形六:若目标加速器存在直连加速器,直连加速器的应用计算逻辑与目标加速器不同,直连加速器处于非空闲状态,直连加速器支持计算机快速互联协议且直连加速器的扩展内存未被占用,则如情形三,处于计算过载状态的目标加速器可以选择两种计算任务分流方法,一种方法是为避免目标加速器和直连加速器共同使用直连加速器的扩展内存带来的I/O时间,目标加速器不占用直连加速器的扩展内存,即直连加速器的扩展内存预留本地使用,目标加速器向控制器申请将计算任务分流至非直连加速器;另一种方法是在直连加速器未处于计算过载状态时,目标加速器可以申请占用直连加速器的扩展内存以提高本地的读写性能。若采用第一种方法,则可以参考情形三中以非直连加速器作为待分流加速器时的分流方案以及计算分流加速器状态信息表的维护方案。若采用第二种方法,则可以参考情形五中目标加速器申请占用直连加速器的扩展内存的方案以及计算分流加速器状态信息表的维护方案。
情形七:若目标加速器存在直连加速器,直连加速器的应用计算逻辑与目标加速器不同,直连加速器处于空闲状态,直连加速器支持计算机快速互联协议但直连加速器的扩展内存被占用,由于直连加速器的应用计算逻辑与目标加速器不同,处于计算过载状态的目标加速器只能将计算任务分流至非直连加速器。此时可以参考情形三中以非直连加速器作为待分流加速器时的分流方案以及计算分流加速器状态信息表的维护方案。
情形八:若目标加速器存在直连加速器,直连加速器的应用计算逻辑与目标加速器不同,直连加速器处于非空闲状态,直连加速器支持计算机快速互联协议但直连加速器的扩展内存被占用,由于直连加速器的应用计算逻辑与目标加速器不同,处于计算过载状态的目标加速器只能将计算任务分流至非直连加速器。此时可以参考情形三中以非直连加速器作为待分流加速器时的分流方案以及计算分流加速器状态信息表的维护方案。
情形九:若目标加速器存在直连加速器,直连加速器的应用计算逻辑与目标加速器相同,直连加速器处于空闲状态,但直连加速器不支持计算机快速互联协议,则处于计算过载状态的目标加速器申请将部分计算任务由内核间高速传输链路分流给直连加速器。
控制器接收到相关分流信息后,首先会在根据直连加速器的网络地址在与目标加速器的直连加速器对应的加速器状态信息表中查询直连加速器的实时状态信息,并修改与目标加速器的直连加速器对应的加速器状态信息表中加速器的使用状态信息(即bit位0#的值改为1)、开始使用时间(即bit位40#-82#的值设置为当前时间戳的时间)及将结束使用时间(即bit位83#-125#的值设置为0)。然后,控制端服务器通过网络通知目标加速器及直连加速器可进行计算任务分流。
目标加速器和直连加速器在完成计算任务后各自将计算结果通过网络传输给相应的接收端。最后,在目标加速器和直连加速器通过协助完成计算任务后,一方面需要相互交互本地的实时状态信息,并根据直连加速器的实时状态信息更新本地的计算分流加速器状态信息表(具体可以参考本发明实施例四的记载),另一方面需要将完成计算任务的信息通过网络端口告知控制器。控制器根据当前目标加速器的实时状态信息及其直连加速器的实时状态信息,查询并修改对应的加速器状态信息表中使用状态信息为空闲状态、开始使用时间置为0、结束使用时间置为加速器完成计算任务的时间戳(具体可以参考本发明实施例四的记载)。
情形十:若目标加速器存在直连加速器,直连加速器的应用计算逻辑与目标加速器相同,直连加速器处于非空闲状态,直连加速器不支持计算机快速互联协议,则处于计算过载状态的目标加速器只能将计算任务分流至非直连加速器。此时可以参考情形三中以非直连加速器作为待分流加速器时的分流方案以及计算分流加速器状态信息表的维护方案。
情形十一:若目标加速器存在直连加速器,直连加速器的应用计算逻辑与目标加速器不相同,直连加速器不支持计算机快速互联协议,不论直连加速器是否处于空闲状态,则处于计算过载状态的目标加速器均需要将计算任务分流至非直连加速器,此时可以参考情形三中以非直连加速器作为待分流加速器时的分流方案以及计算分流加速器状态信息表的维护方案。
情形十二:若目标加速器不存在直连加速器,则处于计算过载状态的目标加速器需要将计算任务分流至非直连加速器,此时可以参考情形三中以非直连加速器作为待分流加速器时的分流方案以及计算分流加速器状态信息表的维护方案。
下面对本发明实施例六进行说明。
本发明上述实施例二至实施例五基于分布式加速器集群的控制器角度说明了分布式计算方法的具体步骤,为便于进一步理解,本发明实施例从分布式加速器集群中的目标加速器角度说明分布式计算方法。
应用于分布式加速器集群中的目标加速器,本发明实施例提供的分布式计算方法包括:
接收并执行分布式加速器集群的控制器根据业务任务划分并分配的计算任务;
在处于计算过载状态时,将计算任务分流至直连加速器或经由控制器将计算任务分流至非直连加速器;
其中,目标加速器为处于空闲状态且应用计算逻辑与计算任务的类型匹配的加速器;分布式加速器集群包括预先建立的加速器直连对,加速器直连对包括两个互为直连加速器的加速器,两个加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个加速器具有相同的应用计算逻辑。
需要说明的是,本发明实施例中的目标加速器与本发明实施例一中介绍的相同,即指控制器分配计算任务的加速器,则目标加速器可以为分布式加速器集群中任意处于空闲状态且应用计算逻辑与计算任务的类型匹配的加速器。目标加速器可以为支持计算机快速互联协议且具有扩展内存的第一加速器,也可以为不支持计算机快速互联协议的第二加速器。
参考本发明实施例二介绍的表1,目标加速器与控制器交互本地的实时状态信息,以供控制器进行管理。参考本发明实施例二介绍的表2,若目标加速器需要进行计算任务分流,则若目标加速器存在直连加速器,则目标加速器与直连加速器互通本地的实时状态信息,或目标加速器通过控制器被分配非直连加速器作为待分流加速器,目标加速器通过控制器获知待分流加速器的实时状态信息并记入本地的计算分流加速器状态信息表中。
此外,目标加速器实现虚拟化与池化的具体方案请参考本发明实施例一,目标加速器执行计算任务以及实现计算任务分流的具体步骤请参考本发明实施例二至实施例五,在此不再赘述。
下面对本发明实施例七进行说明。
为便于进一步理解,本发明实施例从包括分布式加速器集群和控制器的分布式计算集群角度说明分布式计算方法。本发明实施例提供的分布式计算方法包括:
分布式加速器集群的控制器获取分布式加速器集群中加速器的信息,并根据加速器的信息,建立加速器直连对;
控制器在接收到业务任务时,将业务任务划分为计算任务分发至目标加速器;
目标加速器执行计算任务并在处于过载状态时将计算任务分流至直连加速器或经由控制器将计算任务分流至非直连加速器;
其中,目标加速器为处于空闲状态且应用计算逻辑与计算任务的类型匹配的加速器;加速器直连对包括两个互为直连加速器的加速器,两个加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个加速器具有相同的应用计算逻辑。
需要说明的是,本发明实施例中控制器分配计算任务、为目标加速器分配待分流加速器以及管理各加速器的状态信息的步骤,可以参考本发明至实施例五。本发明实施例中目标加速器可以为分布式加速器集群中任意在控制器分配计算任务时因应用计算逻辑与计算任务的类型匹配且处于空闲状态而被分配计算任务的加速器。目标加速器实现虚拟化与池化的具体方案请参考本发明实施例一,目标加速器执行计算任务以及实现计算任务分流的具体步骤请参考本发明实施例二至实施例六,在此不再赘述。
下面对本发明实施例八进行说明。
在上述实施例的基础上,本发明实施例提供一种分布式计算方法的实际应用场景。本发明实施例所描述的分布式计算场景仅为本发明实施例所能提供的其中一个应用场景,并不代表本发明所有实施例都是这样执行的,也不代表仅有此一种应用场景。
以一个控制器所管理的一个路由子网(编号为0#)为例。假设该路由子网下的分布式加速器集群中存在六个加速器。需要说明的是,若加速器采用FPGA,目前不支持计算机快速互联协议的FPGA有F10A、PAC等系列的FPGA加速器产品,而支持计算机快速互联协议的FPGA有F26A系列、Agilex 7等FPGA芯片的其他FPGA加速器系列产品。当然,在实际应用中,本发明实施例中的加速器不一定为FPGA,也不一定为上述列举的产品类型。
支持计算机快速互联协议且具有扩展内存的第一加速器和不支持计算机快速互联协议的第二加速器,分别结合内核虚拟化技术进行待实现的逻辑功能子内核的划分(具体参考本发明实施例一的说明)。此外,假设0#路由子网中的六个加速器,相应的加速器编号分别记作0#、1#、2#、3#、4#、5#。六个加速器的应用计算子内核中共支持SqueezeNet和ResNet 50两种应用计算逻辑类型,依次分别记作0#和1#。详细信息如表3所示。
表3 同一路由子网下六个加速器的详细信息表
基于本发明实施例提供的五级优先直连方法,相应的直连信息如表4所示。0#与1#加速器均为应用计算逻辑类型相同的第一加速器,相较于第二加速器,控制器在进行任务分配时,由于两个加速器均有扩展内存的协助,因此在加速器存储及并处理的计算任务数据更多。并且,当直连的两个加速器中任意一个加速器需要计算分流时,另外一个第一加速器及扩展内存均可用于承担更多计算任务的分流;
相比之下,2#和3#加速器的应用计算逻辑类型虽然相同,但只有2#为第一加速器,因此无论是计算任务分配阶段可处理的计算任务数据,还是直连的两个加速器在进行计算分流时承担的计算任务数据,相较于优先级为第一级的0#和1#均少;相较之下,虽然其中4#加速器第一加速器,但4#和5#加速器的应用计算逻辑类型不同。相较于直连的2#和3#加速器,当4#加速器处于空闲状态且扩展内存未被共享占用时,5#加速器在寻求直连的4#加速器进行计算分流时,由于应用计算逻辑类型不同,仅能使用其扩展内存进行数据存储和读取。
表4 同一路由子网下六个加速器的直连信息表
建立完上述三个加速器直连对后,针对该路由子网下的六个空闲的加速器,在进行计算任务数据的分配时,可以参考本发明实施例三提供的十二级计算任务分配优先级来完成对分布式加速器集群中相应计算任务的分发。
表5 两种类型待分配计算任务的详细信息
假设计算任务的数据量、计算任务类型等内容如表5所示。并且,此处单个计算任务的数据量大小均为整数MB级别,因此在进行计算任务拆分时的最小单位应大于MB。而第一加速器和第二加速器对计算数据的平均处理速率及内存存储器(如双倍速率同步动态随机存储器Double Data Rate SDRAM,DDR SDRAM)、扩展内存大小如表6所示。
表6 六个加速器DDR存储空间、扩展内存空间容量和总内存空间容量
结合图4所示六个加速器的直连情况,按照本发明实施例三提供的十二级计算任务分配优先级方法,得到如表7所示的完成计算任务分发后六个加速器分配的计算任务数据量大小、未执行计算分流情况下的处理完成时长及符合的优先级。需要说明的是,以上六个加速器在开始执行计算任务时和结束执行计算任务后,均需按照本发明实施例四提供的控制器在分配完计算任务后对加速器状态信息表进行修改以及加速器完成相应的计算分流加速器状态信息表的修改。
表7 完成计算任务分发后六个加速器分配的计算任务数据量大小及未执行计算分流情况下的处理完成时长
如表7所示,六个加速器在未执行计算分流的情况下处理以上计算任务时的时长不同,这就导致部分加速器会出现空置的情况。对此,参考本发明实施例四、五介绍的不同场景下的计算任务分流方式完成相关的计算任务分流。
首先,由于控制器可采用虚拟化主机、多高速网卡并行同时传输等方法实现计算任务数据的并行高速传输,以0#、1#和2#加速器是所需要传输的最大长为96GB的计算任务数据为例,当数据中心采用传输带宽为800Gbps的控制器执行时,所需传输时长为:96*8/800=0.96s。4#加速器传输所需要传输的最短长为8GB的计算任务数据为例,当数据中心采用传输带宽为800Gbps的控制器执行时,所需传输时长为:8*8/800=0.08s。
需要说明的是,通过控制器在进行并行发送时,可实现通过将向4#加速器发送的计算任务数据延迟0.96-0.08=0.88s发送,可实现0#、1#、2#及4#加速器不同计算任务的近似同时到达。需要说明的是,控制器在执行计算任务分发的同时,会根据各加速器的网络地址查询到相应加速器的实时状态信息,按照本发明实施例四、五提供的不同场景下的计算任务分流方法,修改加速器状态信息表如表8所示。
表8 开始执行计算任务时六个加速器的状态实时信息表
假设,0#、1#、2#等最早发送数据报文的加速器的时间戳为0ms时,即0000000000000000000000000000000000000000000,则3#及5#加速器的发送时间为:0.96-32*8/800=0.64s,即40#-82#值为0000000000000000000000000000000001010000000时发送。4#加速器的对应时间戳为0000000000000000000000000000000001101110000,即在0.88s(880ms)时发送。进一步的,按照本发明实施例四、五中的操作,各直连加速器在开始执行计算任务时,相应的计算分流加速器状态信息表如表9所示。
表9 六个待分流加速器状态信息表
如表7所示,在控制器完成计算任务分发后,六个加速器在接收到计算任务数据时均处于内存存储器DDR被占用状态。结合本发明实施例四、五提供的不同场景下的计算任务分流方法中的操作完成相关的计算分流。结合之前六个加速器的发送时间可知,计算任务数据完全达到内存存储器DDR的时间戳为0.96s时。即完全占用时间戳T fstocpy 的值为0.96。假设查询周期∆t的值为9,结合表7可知,在9*3=27s后,0#、1#、2#、4#加速器均处于计算完成装填,而3#及5#加速器中计算数据剩余32-27*1.0=5.0GB。对比表6中数据可知,并未处于计算过载状态。
为详细描述具体的计算分流过程,假设3#加速器在27s+0.96s=27.96s之前,均处于控制器分发任务,即内存存储器DDR满载状态。而在时间戳为27.96s时,不再有计算任务数据到达。则以3#加速器的计算分流情况为例,由于3#加速器与2#加速器直连、且应用逻辑类型相同,且2#加速器处于空闲状态、支持计算机快速互联协议且扩展内存未被占用,可以按照本发明实施例五介绍的情形一中的步骤完成相应操作。
具体的,首先3#加速器可通过计算分流加速器状态信息表查询到直连加速器的网络地址,然后向控制器请求使用2#加速器及其扩展内存的请求。接收到请求后,控制器会修改表中2#加速器状态实时信息(即bit位0#的值改为1)、开始使用时间(即bit位40#-82#的值设置为当前时间戳的时间)及将相应的结束适用时间(即bit位83#-125#的值设置为0);然后控制器通过网络通知3#加速器及2#加速器可进行计算任务分流并可使用扩展内存。与此同时,为提升扩展内存使用效率,避免3#加速器与2#加速器之间的频繁网络数据I/O,扩展内存仅供其所在的2#加速器使用。两个直连的加速器会将相应的计算结果各自通过网络传输给相应的接收端;最后,在两个加速器通过协助完成计算任务后,一方面需要完成本发明实施例四说明的加速器根据待分流加速器的实时状态信息更新计算分流加速器状态信息表,另一方面需要将相关信息通过网络端口告知控制器。控制器根据3#加速器的网络地址及2#加速器的网络地址,查询并修改两个加速器的加速器状态信息表中的使用状态信息、扩展内存共享信息、开始使用时间修改为0、并写入相应的结束使用时间。
需要说明的是,由于计算分流方法需要根据实际业务开展设计,本发明实施例采用传统的二分法。即在第27s时,3#加速器的剩余计算任务数据量为32GB。采用32GB/2=16GB。将16GB的计算任务数据传输给2#加速器。以FPGA加速器光口支持800Gbps的内核间高速传输链路的传输速率为例,到达时间约为16*8/800=0.16s,即160ms。需要说明的是,此处忽略了两个直连的加速器与控制器之间的交互时间。这是因为二者交互的数据量(仅为两个加速器的网络地址及修改指令)及哈希表处理时间均很快,因此忽略。而2#加速器处理时间为16/4.0=4s。因此,计算任务完成时间戳为27s+0.16s+4s+0.96s=32.12s。而3#加速器处理时间为16/1.0=16s。计算任务完成时间戳为27s+16s+0.96s=43.96s。此外,0#、1#加速器的计算任务完成时间戳为:24s+0.96s=24.96s。相同的,4#的计算任务完成时间戳为:8s+0.96s=8.96s。5#的计算任务完成时间戳为:32s+0.96s=32.96s。
因此,在时间戳为43.96s完成所有计算任务后,控制器的六个加速器的加速器状态信息表如表10所示。
表10 完成所有计算任务时六个加速器状态实时信息表
则3#加速器在分流前需要在时间戳为27s+32/1.0+0.96=59.96s完成计算任务,分流后,节省的计算时间为59.96–43.96=16s。节省的时间效率为:16/59.96=26.68%。可以看到,本发明实施例提供的分布式计算方法在实际应用场景中能够充分提升计算效率。
上文详述了分布式计算系统、分布式计算方法对应的各个实施例,在此基础上,本发明还公开了与上述系统、方法对应的分布式计算装置、设备及可读存储介质。
下面对本发明实施例九进行说明。
图4为本发明实施例提供的一种分布式计算装置的结构示意图。
如图4所示,应用于分布式加速器集群的控制器,本发明实施例提供的分布式计算装置包括:
获取单元401,用于获取分布式加速器集群中加速器的信息;
创建单元402,用于根据加速器的信息,建立加速器直连对;
分配单元403,用于在接收到业务任务时,将业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,以使目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由控制器将计算任务分流至非直连加速器;
其中,加速器直连对包括两个互为直连加速器的加速器,两个加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个加速器具有相同的应用计算逻辑。
在一些实施中,目标加速器在处于计算过载状态时将计算任务分流至直连加速器,包括:
目标加速器在处于计算过载状态时占用直连加速器的扩展内存和/或将计算任务分流至直连加速器执行;
目标加速器在处于计算过载状态时经由控制器将计算任务分流至非直连加速器,包括:
目标加速器在处于计算过载状态时经由控制器占用非直连加速器的扩展内存和/或将计算任务分流至非直连加速器执行。
在一些实施中,创建单元402根据加速器的信息,建立加速器直连对,包括:
按照具备相同应用计算逻辑的两个第一加速器组建加速器直连对为第一优先级、具备相同应用计算逻辑的一个第一加速器和一个不支持计算机快速互联协议的第二加速器组建加速器直连对为第二优先级、具备相同应用计算逻辑的两个第二加速器组建加速器直连对为第三优先级、具备不同应用计算逻辑的两个第一加速器组建加速器直连对为第四优先级、具备不同应用计算逻辑的一个第一加速器和一个第二加速器组建加速器直连对为第五优先级,将分布式加速器集群中的加速器划分并创建为加速器直连对。
在一些实施中,分配单元403将业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,包括:
根据直连关系和扩展内存占用情况中的至少一项选取目标加速器,将业务任务划分为计算任务分发至目标加速器。
在一些实施中,分配单元403将业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,包括:
将业务任务划分为计算任务,并按如下计算任务分配优先级顺序将计算任务分配至目标加速器:
第一计算任务分配优先级为将计算任务分配至加速器直连对的两个加速器,加速器直连对包括两个空闲的第一加速器,两个第一加速器的应用计算逻辑均与计算任务的类型匹配且两个第一加速器的扩展内存均未被占用;
第二计算任务分配优先级为将计算任务分配至加速器直连对的两个加速器,加速器直连对包括两个空闲的第一加速器,两个第一加速器的应用计算逻辑均与计算任务的类型匹配且其中一个第一加速器的扩展内存被占用;
第三计算任务分配优先级为将计算任务分配至加速器直连对的两个加速器,加速器直连对包括一个空闲的第一加速器和一个空闲的不支持计算机快速互联协议的第二加速器,第一加速器的应用计算逻辑和第二加速器的应用计算逻辑均与计算任务的类型匹配,第一加速器的扩展内存未被占用;
第四计算任务分配优先级为将计算任务分配至加速器直连对的两个加速器,加速器直连对包括两个空闲的第一加速器,两个第一加速器的应用计算逻辑均与计算任务的类型匹配且两个第一加速器的扩展内存均被占用;
第五计算任务分配优先级为将计算任务分配至加速器直连对的两个加速器,加速器直连对包括两个空闲的第二加速器,两个第二加速器的应用计算逻辑均与计算任务的类型匹配;
第六计算任务分配优先级为将计算任务分配至加速器直连对中的目标加速器,加速器直连对的两个第一加速器中仅一个满足目标加速器的条件且扩展内存未被占用;
第七计算任务分配优先级为将计算任务分配至加速器直连对中的目标加速器,加速器直连对包括一个第一加速器和一个第二加速器,仅第一加速器满足目标加速器的条件且第一加速器的扩展内存未被占用;
第八计算任务分配优先级为将计算任务分配至一个单独的满足目标加速器的条件且扩展内存未被占用的第一加速器;
第九计算任务分配优先级为将计算任务分配至加速器直连对中的目标加速器,加速器直连对包括一个第一加速器和一个第二加速器,仅第二加速器满足目标加速器的条件且第一加速器的扩展内存未被占用;
第十计算任务分配优先级为将计算任务分配至一个单独的满足目标加速器的条件且扩展内存被占用的第一加速器;
第十一计算任务分配优先级为将计算任务分配至加速器直连对中的目标加速器,加速器直连对包括一个第一加速器和一个第二加速器,仅第二加速器满足目标加速器的条件且第一加速器的扩展内存被占用;
第十二计算任务分配优先级为将计算任务分配至一个单独的满足目标加速器的条件的第二加速器。
在一些实施中,目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由控制器将计算任务分流至非直连加速器,包括:
若目标加速器处于计算过载状态时,目标加速器的直连加速器满足处于空闲状态、与目标加速器的应用计算逻辑相同的条件,则目标加速器将计算任务分流至目标加速器的直连加速器;
若目标加速器处于计算过载状态时,目标加速器不存在直连加速器或目标加速器的直连加速器非空闲状态或目标加速器的直连加速器的应用计算逻辑与目标加速器不同,则为目标加速器分配非直连加速器作为待分流加速器,以使目标加速器将计算任务分流至待分流加速器。
在一些实施中,若目标加速器处于计算过载状态时,目标加速器的直连加速器满足处于空闲状态、与目标加速器的应用计算逻辑相同的条件,则目标加速器将计算任务分流至目标加速器的直连加速器,包括:
当接收到目标加速器在处于计算过载状态时发送的分流请求,根据目标加速器的标识查询到与目标加速器对应的加速器状态信息表,在与目标加速器对应的加速器状态信息表查询到目标加速器的直连加速器的信息且根据目标加速器的直连加速器的标识查询到与目标加速器的直连加速器对应的加速器状态信息表以确定目标加速器的直连加速器满足处于空闲状态、与目标加速器的应用计算逻辑相同的条件时,将与目标加速器的直连加速器对应的加速器状态信息表中使用状态信息置为非空闲、开始使用时间置为当前时间戳的时间、结束使用时间置为0;
将目标加速器的直连加速器满足计算分流条件的信息反馈至目标加速器,以使目标加速器将计算任务分流至目标加速器的直连加速器;
当接收到目标加速器发送的计算任务已完成的信息,根据目标加速器的标识查询到与目标加速器对应的加速器状态信息表,将与目标加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间;
当接收到目标加速器的直连加速器发送计算任务已完成的信息时,根据目标加速器的直连加速器的标识查询到与目标加速器的直连加速器对应的加速器状态信息表,将与目标加速器的直连加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间。
在一些实施中,将目标加速器的直连加速器满足计算分流条件的信息反馈至目标加速器,以使目标加速器将计算任务分流至目标加速器的直连加速器,包括:
若根据与目标加速器的直连加速器对应的加速器状态信息表确定目标加速器的直连加速器为第一加速器且扩展内存未被占用,将目标加速器的直连加速器满足计算分流条件且扩展内存未被占用的信息反馈至目标加速器,以使目标加速器将计算任务分流至目标加速器的直连加速器执行和/或共享目标加速器的直连加速器的扩展内存;
若根据与目标加速器的直连加速器对应的加速器状态信息表确定目标加速器的直连加速器为不支持计算机快速互联协议的第二加速器或目标加速器的直连加速器为第一加速器但扩展内存被占用,则将目标加速器的直连加速器满足计算分流条件的信息反馈至目标加速器,以使目标加速器将计算任务分流至目标加速器的直连加速器执行。
在一些实施中,若目标加速器处于计算过载状态时,目标加速器不存在直连加速器或目标加速器的直连加速器非空闲状态或目标加速器的直连加速器的应用计算逻辑与目标加速器不同,则为目标加速器分配非直连加速器作为待分流加速器,以使目标加速器将计算任务分流至待分流加速器,包括:
当接收到目标加速器在处于计算过载状态时发送的分流请求,根据目标加速器的标识查询到与目标加速器对应的加速器状态信息表,若与目标加速器对应的加速器状态信息表不具有目标加速器的直连加速器的信息,或在与目标加速器对应的加速器状态信息表查询到目标加速器的直连加速器的信息且根据目标加速器的直连加速器的标识查询到与目标加速器的直连加速器对应的加速器状态信息表以确定目标加速器的直连加速器非空闲状态或目标加速器的直连加速器的应用计算逻辑与目标加速器不同时,获取分布式加速器集群的空闲加速器的信息,自空闲加速器中选择应用计算逻辑与计算任务的类型匹配的加速器作为待分流加速器,将与待分流加速器对应的加速器状态信息表中使用状态信息置为非空闲、开始使用时间置为当前时间戳的时间、结束使用时间置为0;
将待分流加速器满足计算分流条件的信息反馈至目标加速器,以使目标加速器将计算任务分流至待分流加速器;
当接收到目标加速器发送的计算任务已完成的信息,根据目标加速器的标识查询到与目标加速器对应的加速器状态信息表,将与目标加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间;
当接收到待分流加速器发送的计算任务已完成的信息,根据待分流加速器的标识查询到与待分流加速器对应的加速器状态信息表,将与待分流加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间。
在一些实施中,将待分流加速器满足计算分流条件的信息反馈至目标加速器,以使目标加速器将计算任务分流至待分流加速器,包括:
若根据与待分流加速器对应的加速器状态信息表确定待分流加速器为第一加速器且扩展内存未占用,将待分流加速器满足计算分流条件且扩展内存未被占用的信息反馈至目标加速器,以使目标加速器将计算任务分流至待分流加速器执行和/或共享待分流加速器的扩展内存;
若根据与待分流加速器对应的加速器状态信息表确定待分流加速器为不支持计算机快速互联协议的第二加速器或待分流加速器为第一加速器但扩展内存被占用,则将待分流加速器满足计算分流条件的信息反馈至目标加速器,以使目标加速器将计算任务分流至待分流加速器执行。
在一些实施中,加速器直连对中的两个加速器通过直连通道共享本地的应用计算逻辑类型、使用状态信息、支持计算机快速互联协议情况和扩展内存占用情况,并将直连加速器的信息记录到直连加速器状态信息表。
在一些实施中,目标加速器在经由控制器将计算任务分流至非直连加速器时,接收控制器发送的待分流加速器的信息并记录到待分流加速器状态信息表。
在一些实施中,创建单元402建立加速器直连对,包括:
应用内核间通信协议建立加速器直连对;
目标加速器将计算任务分流至直连加速器,包括:
目标加速器基于内核间高速传输链路将计算任务分流至目标加速器的直连加速器。
在一些实施中,目标加速器经由控制器将计算任务分流至非直连加速器,包括:
接收目标加速器发送的分流请求;
根据分流请求确定待分流加速器;
将待分流加速器的信息发送至目标加速器,以使目标加速器经由路由子网将计算任务分流至待分流加速器。
在一些实施中,目标加速器经由路由子网将计算任务分流至待分流加速器,包括:
目标加速器基于远程直接数据存取协议经由路由子网将计算任务分流至待分流加速器。
在一些实施中,根据分流请求确定待分流加速器,包括:
获取分布式加速器集群的加速器列表;
在加速器列表中确定与目标加速器的应用计算逻辑相同且空闲的加速器为候选分流加速器的信息;
选择满足空闲时间最长和/或属于第一加速器的候选分流加速器为待分流加速器。
在一些实施中,目标加速器处于计算过载状态,包括:
目标加速器记录首次本地内存被完全占用时的完全占用时间戳,并每隔查询周期进行本地内存占用状态的查询;
若连续预设周期本地内存未解除完全占用状态,则确定本地处于计算过载状态。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本发明实施例十进行说明。
本发明还提供一种分布式计算装置,应用于分布式加速器集群中的目标加速器,包括:
执行单元,用于接收并执行分布式加速器集群的控制器根据业务任务划分并分配的计算任务;
分流处理单元,用于在处于计算过载状态时,将计算任务分流至直连加速器或经由控制器将计算任务分流至非直连加速器;
其中,目标加速器为处于空闲状态且应用计算逻辑与计算任务的类型匹配的加速器;分布式加速器集群包括预先建立的加速器直连对,加速器直连对包括两个互为直连加速器的加速器,两个加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个加速器具有相同的应用计算逻辑。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本发明实施例十一进行说明。
图5为本发明实施例提供的一种分布式计算设备的结构示意图。
如图5所示,本发明实施例提供的分布式计算设备包括:
存储器510,用于存储计算机程序511;
处理器520,用于执行计算机程序511,该计算机程序511被处理器520执行时实现如上述任意一项实施例所述分布式计算方法的步骤。
其中,处理器520可以包括一个或多个处理核心,比如3核心处理器、8核心处理器等。处理器520可以采用数字信号处理DSP(Digital Signal Processing)、现场可编程门阵列FPGA(Field-Programmable Gate Array)、可编程逻辑阵列PLA(Programmable LogicArray)中的至少一种硬件形式来实现。处理器520也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器CPU(CentralProcessing Unit);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器520可以集成有图像处理器GPU(Graphics Processing Unit),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器520还可以包括人工智能AI(Artificial Intelligence)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器510可以包括一个或多个可读存储介质,该可读存储介质可以是非暂态的。存储器510还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器510至少用于存储以下计算机程序511,其中,该计算机程序511被处理器520加载并执行之后,能够实现前述任一实施例公开的分布式计算方法中的相关步骤。另外,存储器510所存储的资源还可以包括操作系统512和数据513等,存储方式可以是短暂存储或者永久存储。其中,操作系统512可以为Windows。数据513可以包括但不限于上述方法所涉及到的数据。
在一些实施例中,分布式计算设备还可包括有显示屏530、电源540、通信接口550、输入输出接口560、传感器570以及通信总线580。
本领域技术人员可以理解,图5中示出的结构并不构成对分布式计算设备的限定,可以包括比图示更多或更少的组件。
本发明实施例提供的分布式计算设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的分布式计算方法,效果同上。
下面对本发明实施例十二进行说明。
需要说明的是,以上所描述的装置、设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。
为此,本发明实施例还提供一种可读存储介质,该可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如分布式计算方法的步骤。
该可读存储介质可以包括:U盘、移动硬盘、只读存储器ROM(Read-Only Memory)、随机存取存储器RAM(Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例中提供的可读存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的分布式计算方法的步骤,效果同上。
以上对本发明所提供的一种分布式计算方法、装置、设备、系统及可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及可读存储介质而言,由于其与实施例公开的方法、系统相对应,所以描述的比较简单,相关之处参见方法、系统部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (24)

1.一种分布式计算方法,其特征在于,应用于分布式加速器集群的控制器,包括:
获取所述分布式加速器集群中加速器的信息;
根据所述加速器的信息,建立加速器直连对;
在接收到业务任务时,将所述业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,以使所述目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器;
其中,所述加速器直连对包括两个互为直连加速器的所述加速器,两个所述加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个所述加速器具有相同的应用计算逻辑。
2.根据权利要求1所述的分布式计算方法,其特征在于,所述目标加速器在处于计算过载状态时将计算任务分流至直连加速器,包括:
所述目标加速器在处于计算过载状态时占用直连加速器的扩展内存和/或将计算任务分流至直连加速器执行;
所述目标加速器在处于计算过载状态时经由所述控制器将计算任务分流至非直连加速器,包括:
所述目标加速器在处于计算过载状态时经由所述控制器占用非直连加速器的扩展内存和/或将计算任务分流至非直连加速器执行。
3.根据权利要求1所述的分布式计算方法,其特征在于,所述根据所述加速器的信息,建立加速器直连对,包括:
按照具备相同应用计算逻辑的两个所述第一加速器组建所述加速器直连对为第一优先级、具备相同应用计算逻辑的一个所述第一加速器和一个不支持计算机快速互联协议的第二加速器组建所述加速器直连对为第二优先级、具备相同应用计算逻辑的两个所述第二加速器组建所述加速器直连对为第三优先级、具备不同应用计算逻辑的两个所述第一加速器组建所述加速器直连对为第四优先级、具备不同应用计算逻辑的一个所述第一加速器和一个所述第二加速器组建所述加速器直连对为第五优先级,将所述分布式加速器集群中的所述加速器划分并创建为所述加速器直连对。
4.根据权利要求1所述的分布式计算方法,其特征在于,所述将所述业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,包括:
根据直连关系和扩展内存占用情况中的至少一项选取所述目标加速器,将所述业务任务划分为计算任务分发至所述目标加速器。
5.根据权利要求1所述的分布式计算方法,其特征在于,所述将所述业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,包括:
将所述业务任务划分为计算任务,并按如下计算任务分配优先级顺序将计算任务分配至所述目标加速器:
第一计算任务分配优先级为将计算任务分配至所述加速器直连对的两个所述加速器,所述加速器直连对包括两个空闲的所述第一加速器,两个所述第一加速器的应用计算逻辑均与计算任务的类型匹配且两个所述第一加速器的扩展内存均未被占用;
第二计算任务分配优先级为将计算任务分配至所述加速器直连对的两个所述加速器,所述加速器直连对包括两个空闲的所述第一加速器,两个所述第一加速器的应用计算逻辑均与计算任务的类型匹配且其中一个所述第一加速器的扩展内存被占用;
第三计算任务分配优先级为将计算任务分配至所述加速器直连对的两个所述加速器,所述加速器直连对包括一个空闲的所述第一加速器和一个空闲的不支持计算机快速互联协议的第二加速器,所述第一加速器的应用计算逻辑和所述第二加速器的应用计算逻辑均与计算任务的类型匹配,所述第一加速器的扩展内存未被占用;
第四计算任务分配优先级为将计算任务分配至所述加速器直连对的两个所述加速器,所述加速器直连对包括两个空闲的所述第一加速器,两个所述第一加速器的应用计算逻辑均与计算任务的类型匹配且两个所述第一加速器的扩展内存均被占用;
第五计算任务分配优先级为将计算任务分配至所述加速器直连对的两个所述加速器,所述加速器直连对包括两个空闲的所述第二加速器,两个所述第二加速器的应用计算逻辑均与计算任务的类型匹配;
第六计算任务分配优先级为将计算任务分配至所述加速器直连对中的所述目标加速器,所述加速器直连对的两个所述第一加速器中仅一个满足所述目标加速器的条件且扩展内存未被占用;
第七计算任务分配优先级为将计算任务分配至所述加速器直连对中的所述目标加速器,所述加速器直连对包括一个所述第一加速器和一个所述第二加速器,仅所述第一加速器满足所述目标加速器的条件且所述第一加速器的扩展内存未被占用;
第八计算任务分配优先级为将计算任务分配至一个单独的满足所述目标加速器的条件且扩展内存未被占用的所述第一加速器;
第九计算任务分配优先级为将计算任务分配至所述加速器直连对中的所述目标加速器,所述加速器直连对包括一个所述第一加速器和一个所述第二加速器,仅所述第二加速器满足所述目标加速器的条件且所述第一加速器的扩展内存未被占用;
第十计算任务分配优先级为将计算任务分配至一个单独的满足所述目标加速器的条件且扩展内存被占用的所述第一加速器;
第十一计算任务分配优先级为将计算任务分配至所述加速器直连对中的所述目标加速器,所述加速器直连对包括一个所述第一加速器和一个所述第二加速器,仅所述第二加速器满足所述目标加速器的条件且所述第一加速器的扩展内存被占用;
第十二计算任务分配优先级为将计算任务分配至一个单独的满足所述目标加速器的条件的所述第二加速器。
6.根据权利要求1所述的分布式计算方法,其特征在于,所述目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器,包括:
若所述目标加速器处于计算过载状态时,所述目标加速器的直连加速器满足处于空闲状态、与所述目标加速器的应用计算逻辑相同的条件,则所述目标加速器将计算任务分流至所述目标加速器的直连加速器;
若所述目标加速器处于计算过载状态时,所述目标加速器不存在直连加速器或所述目标加速器的直连加速器非空闲状态或所述目标加速器的直连加速器的应用计算逻辑与所述目标加速器不同,则为所述目标加速器分配非直连加速器作为待分流加速器,以使所述目标加速器将计算任务分流至所述待分流加速器。
7.根据权利要求6所述的分布式计算方法,其特征在于,所述若所述目标加速器处于计算过载状态时,所述目标加速器的直连加速器满足处于空闲状态、与所述目标加速器的应用计算逻辑相同的条件,则所述目标加速器将计算任务分流至所述目标加速器的直连加速器,包括:
当接收到所述目标加速器在处于计算过载状态时发送的分流请求,根据所述目标加速器的标识查询到与所述目标加速器对应的加速器状态信息表,在与所述目标加速器对应的加速器状态信息表查询到所述目标加速器的直连加速器的信息且根据所述目标加速器的直连加速器的标识查询到与所述目标加速器的直连加速器对应的加速器状态信息表以确定所述目标加速器的直连加速器满足处于空闲状态、与所述目标加速器的应用计算逻辑相同的条件时,将与所述目标加速器的直连加速器对应的加速器状态信息表中使用状态信息置为非空闲、开始使用时间置为当前时间戳的时间、结束使用时间置为0;
将所述目标加速器的直连加速器满足计算分流条件的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述目标加速器的直连加速器;
当接收到所述目标加速器发送的计算任务已完成的信息,根据所述目标加速器的标识查询到与所述目标加速器对应的加速器状态信息表,将与所述目标加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间;
当接收到所述目标加速器的直连加速器发送计算任务已完成的信息时,根据所述目标加速器的直连加速器的标识查询到与所述目标加速器的直连加速器对应的加速器状态信息表,将与所述目标加速器的直连加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间。
8.根据权利要求7所述的分布式计算方法,其特征在于,所述将所述目标加速器的直连加速器满足计算分流条件的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述目标加速器的直连加速器,包括:
若根据与所述目标加速器的直连加速器对应的加速器状态信息表确定所述目标加速器的直连加速器为所述第一加速器且扩展内存未被占用,将所述目标加速器的直连加速器满足计算分流条件且扩展内存未被占用的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述目标加速器的直连加速器执行和/或共享所述目标加速器的直连加速器的扩展内存;
若根据与所述目标加速器的直连加速器对应的加速器状态信息表确定所述目标加速器的直连加速器为不支持计算机快速互联协议的第二加速器或所述目标加速器的直连加速器为所述第一加速器但扩展内存被占用,则将所述目标加速器的直连加速器满足计算分流条件的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述目标加速器的直连加速器执行。
9.根据权利要求6所述的分布式计算方法,其特征在于,所述若所述目标加速器处于计算过载状态时,所述目标加速器不存在直连加速器或所述目标加速器的直连加速器非空闲状态或所述目标加速器的直连加速器的应用计算逻辑与所述目标加速器不同,则为所述目标加速器分配非直连加速器作为待分流加速器,以使所述目标加速器将计算任务分流至所述待分流加速器,包括:
当接收到所述目标加速器在处于计算过载状态时发送的分流请求,根据所述目标加速器的标识查询到与所述目标加速器对应的加速器状态信息表,若与所述目标加速器对应的加速器状态信息表不具有所述目标加速器的直连加速器的信息,或在与所述目标加速器对应的加速器状态信息表查询到所述目标加速器的直连加速器的信息且根据所述目标加速器的直连加速器的标识查询到与所述目标加速器的直连加速器对应的加速器状态信息表以确定所述目标加速器的直连加速器非空闲状态或所述目标加速器的直连加速器的应用计算逻辑与所述目标加速器不同时,获取所述分布式加速器集群的空闲加速器的信息,自所述空闲加速器中选择应用计算逻辑与计算任务的类型匹配的所述加速器作为所述待分流加速器,将与所述待分流加速器对应的加速器状态信息表中使用状态信息置为非空闲、开始使用时间置为当前时间戳的时间、结束使用时间置为0;
将所述待分流加速器满足计算分流条件的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述待分流加速器;
当接收到所述目标加速器发送的计算任务已完成的信息,根据所述目标加速器的标识查询到与所述目标加速器对应的加速器状态信息表,将与所述目标加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间;
当接收到所述待分流加速器发送的计算任务已完成的信息,根据所述待分流加速器的标识查询到与所述待分流加速器对应的加速器状态信息表,将与所述待分流加速器对应的加速器状态信息表中使用状态信息置为空闲、开始使用时间置为0、结束使用时间置为当前时间戳的时间。
10.根据权利要求9所述的分布式计算方法,其特征在于,所述将所述待分流加速器满足计算分流条件的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述待分流加速器,包括:
若根据与所述待分流加速器对应的加速器状态信息表确定所述待分流加速器为所述第一加速器且扩展内存未占用,将所述待分流加速器满足计算分流条件且扩展内存未被占用的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述待分流加速器执行和/或共享所述待分流加速器的扩展内存;
若根据与所述待分流加速器对应的加速器状态信息表确定所述待分流加速器为不支持计算机快速互联协议的第二加速器或所述待分流加速器为所述第一加速器但扩展内存被占用,则将所述待分流加速器满足计算分流条件的信息反馈至所述目标加速器,以使所述目标加速器将计算任务分流至所述待分流加速器执行。
11.根据权利要求1所述的分布式计算方法,其特征在于,所述加速器直连对中的两个所述加速器通过直连通道共享本地的应用计算逻辑类型、使用状态信息、支持计算机快速互联协议情况和扩展内存占用情况,并将直连加速器的信息记录到直连加速器状态信息表。
12.根据权利要求1所述的分布式计算方法,其特征在于,所述目标加速器在经由所述控制器将计算任务分流至非直连加速器时,接收所述控制器发送的待分流加速器的信息并记录到待分流加速器状态信息表。
13.根据权利要求1所述的分布式计算方法,其特征在于,所述建立加速器直连对,包括:
应用内核间通信协议建立所述加速器直连对;
所述目标加速器将计算任务分流至直连加速器,包括:
所述目标加速器基于内核间高速传输链路将计算任务分流至所述目标加速器的直连加速器。
14.根据权利要求1所述的分布式计算方法,其特征在于,所述目标加速器经由所述控制器将计算任务分流至非直连加速器,包括:
接收所述目标加速器发送的分流请求;
根据所述分流请求确定待分流加速器;
将所述待分流加速器的信息发送至所述目标加速器,以使所述目标加速器经由路由子网将计算任务分流至所述待分流加速器。
15.根据权利要求14所述的分布式计算方法,其特征在于,所述目标加速器经由路由子网将计算任务分流至所述待分流加速器,包括:
所述目标加速器基于远程直接数据存取协议经由路由子网将计算任务分流至所述待分流加速器。
16.根据权利要求14所述的分布式计算方法,其特征在于,所述根据所述分流请求确定待分流加速器,包括:
获取所述分布式加速器集群的加速器列表;
在所述加速器列表中确定与所述目标加速器的应用计算逻辑相同且空闲的所述加速器为候选分流加速器的信息;
选择满足空闲时间最长和/或属于所述第一加速器的所述候选分流加速器为所述待分流加速器。
17.根据权利要求1所述的分布式计算方法,其特征在于,所述目标加速器处于计算过载状态,包括:
所述目标加速器记录首次本地内存被完全占用时的完全占用时间戳,并每隔查询周期进行本地内存占用状态的查询;
若连续预设周期本地内存未解除完全占用状态,则确定本地处于计算过载状态。
18.一种分布式计算方法,其特征在于,应用于分布式加速器集群中的目标加速器,包括:
接收并执行所述分布式加速器集群的控制器根据业务任务划分并分配的计算任务;
在处于计算过载状态时,将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器;
其中,所述目标加速器为处于空闲状态且应用计算逻辑与计算任务的类型匹配的加速器;所述分布式加速器集群包括预先建立的加速器直连对,所述加速器直连对包括两个互为直连加速器的所述加速器,两个所述加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个所述加速器具有相同的应用计算逻辑。
19.一种分布式计算方法,其特征在于,包括:
分布式加速器集群的控制器获取所述分布式加速器集群中加速器的信息,并根据所述加速器的信息,建立加速器直连对;
所述控制器在接收到业务任务时,将所述业务任务划分为计算任务分发至目标加速器;
所述目标加速器执行计算任务并在处于过载状态时将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器;
其中,所述目标加速器为处于空闲状态且应用计算逻辑与计算任务的类型匹配的加速器;所述加速器直连对包括两个互为直连加速器的所述加速器,两个所述加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个所述加速器具有相同的应用计算逻辑。
20.一种分布式计算装置,其特征在于,应用于分布式加速器集群的控制器,包括:
获取单元,用于获取所述分布式加速器集群中加速器的信息;
创建单元,用于根据所述加速器的信息,建立加速器直连对;
分配单元,用于在接收到业务任务时,将所述业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,以使所述目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器;
其中,所述加速器直连对包括两个互为直连加速器的所述加速器,两个所述加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个所述加速器具有相同的应用计算逻辑。
21.一种分布式计算装置,其特征在于,应用于分布式加速器集群中的目标加速器,包括:
执行单元,用于接收并执行所述分布式加速器集群的控制器根据业务任务划分并分配的计算任务;
分流处理单元,用于在处于计算过载状态时,将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器;
其中,所述目标加速器为处于空闲状态且应用计算逻辑与计算任务的类型匹配的加速器;所述分布式加速器集群包括预先建立的加速器直连对,所述加速器直连对包括两个互为直连加速器的所述加速器,两个所述加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个所述加速器具有相同的应用计算逻辑。
22.一种分布式计算系统,其特征在于,包括:分布式加速器集群和控制器;
其中,所述控制器用于获取所述分布式加速器集群中加速器的信息,根据所述加速器的信息,建立加速器直连对,在接收到业务任务时,将所述业务任务划分为计算任务分发至应用计算逻辑与计算任务的类型匹配且空闲的目标加速器,以使所述目标加速器执行计算任务并在处于计算过载状态时将计算任务分流至直连加速器或经由所述控制器将计算任务分流至非直连加速器;
其中,所述加速器直连对包括两个互为直连加速器的所述加速器,两个所述加速器中至少存在一个支持计算机快速互联协议且具有扩展内存的第一加速器和/或两个所述加速器具有相同的应用计算逻辑。
23.一种分布式计算设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至19任意一项所述分布式计算方法的步骤。
24.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至19任意一项所述分布式计算方法的步骤。
CN202311338201.8A 2023-10-17 2023-10-17 一种分布式计算方法、装置、设备、系统及可读存储介质 Active CN117076140B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311338201.8A CN117076140B (zh) 2023-10-17 2023-10-17 一种分布式计算方法、装置、设备、系统及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311338201.8A CN117076140B (zh) 2023-10-17 2023-10-17 一种分布式计算方法、装置、设备、系统及可读存储介质

Publications (2)

Publication Number Publication Date
CN117076140A CN117076140A (zh) 2023-11-17
CN117076140B true CN117076140B (zh) 2024-01-23

Family

ID=88706497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311338201.8A Active CN117076140B (zh) 2023-10-17 2023-10-17 一种分布式计算方法、装置、设备、系统及可读存储介质

Country Status (1)

Country Link
CN (1) CN117076140B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114139700A (zh) * 2021-10-29 2022-03-04 山东云海国创云计算装备产业创新中心有限公司 一种基于cnn加速器的数据处理方法、装置及相关设备
CN115734313A (zh) * 2022-10-17 2023-03-03 华为技术有限公司 多路径配置方法、装置及系统
WO2023092415A1 (zh) * 2021-11-25 2023-06-01 华为技术有限公司 一种消息处理方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140282584A1 (en) * 2013-03-14 2014-09-18 Silicon Graphics International Corp. Allocating Accelerators to Threads in a High Performance Computing System
US11328208B2 (en) * 2018-08-29 2022-05-10 Cerebras Systems Inc. Processor element redundancy for accelerated deep learning
EP3851970A4 (en) * 2018-09-30 2021-10-27 Huawei Technologies Co., Ltd. COMPUTING ACCELERATOR, EXCHANGER, TASK PLANNING METHOD AND PROCESSING SYSTEM
CN110119311B (zh) * 2019-04-12 2022-01-04 华中科技大学 一种基于fpga的分布式流计算系统加速方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114139700A (zh) * 2021-10-29 2022-03-04 山东云海国创云计算装备产业创新中心有限公司 一种基于cnn加速器的数据处理方法、装置及相关设备
WO2023092415A1 (zh) * 2021-11-25 2023-06-01 华为技术有限公司 一种消息处理方法及装置
CN115734313A (zh) * 2022-10-17 2023-03-03 华为技术有限公司 多路径配置方法、装置及系统

Also Published As

Publication number Publication date
CN117076140A (zh) 2023-11-17

Similar Documents

Publication Publication Date Title
US10412021B2 (en) Optimizing placement of virtual machines
US7689694B2 (en) Process management apparatus, computer systems, distributed processing method, and computer program for avoiding overhead in a process management device
JP2021190125A (ja) メモリリソースを管理するためのシステム及び方法
US20220210073A1 (en) Technologies for network device load balancers for accelerated functions as a service
CN104750557B (zh) 一种内存管理方法和内存管理装置
US8417848B2 (en) Method and apparatus for implementing multiple service processing functions
CN105190581A (zh) 通过网络的存储器共享
EP4318251A1 (en) Data access system and method, and device and network card
US20090013023A1 (en) Process Management Apparatus, Computer Systems, Distributed Processing Method, and Computer Program
CN112052100A (zh) 基于共享内存的虚拟机通信方法及设备
CN111404931A (zh) 一种基于持久性内存的远程数据传输方法
EP3631639B1 (en) Communications for field programmable gate array device
CN117076140B (zh) 一种分布式计算方法、装置、设备、系统及可读存储介质
CN115509644B (zh) 算力卸载方法、装置、电子设备和存储介质
WO2023030178A1 (zh) 一种基于用户态协议栈的通信方法及相应装置
CN113923061B (zh) 基于智能网卡的gpu网络通信方法、智能网卡、介质、设备
CN115202859A (zh) 一种内存扩展方法以及相关设备
CN113300892B (zh) 一种内存共享的实时通信网络系统
US11451435B2 (en) Technologies for providing multi-tenant support using one or more edge channels
CN114090249A (zh) 资源分配方法、装置、电子设备及存储介质
CN111796932A (zh) 一种gpu资源调度方法
EP4322001A1 (en) Memory expansion method and related device
CN114253733B (zh) 一种内存管理方法、装置、计算机设备和存储介质
CN111078619A (zh) 一种转换装置、网络设备及数据传输方法
CN110213337B (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
GR01 Patent grant
GR01 Patent grant