CN115357375A - 一种面向MPI的Serverless并行计算方法及其*** - Google Patents

一种面向MPI的Serverless并行计算方法及其*** Download PDF

Info

Publication number
CN115357375A
CN115357375A CN202210837029.XA CN202210837029A CN115357375A CN 115357375 A CN115357375 A CN 115357375A CN 202210837029 A CN202210837029 A CN 202210837029A CN 115357375 A CN115357375 A CN 115357375A
Authority
CN
China
Prior art keywords
function
parallel
serverless
mpi
computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210837029.XA
Other languages
English (en)
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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN202210837029.XA priority Critical patent/CN115357375A/zh
Publication of CN115357375A publication Critical patent/CN115357375A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种面向MPI的Serverless并行计算方法及其***,其中方法包括:动态地址映射步骤,建立函数名与对应的网络地址之间的映射关系,并对Serverless并行计算平台的普通函数与并行函数统一编制;计算模型构建步骤,在该Serverless并行计算平台中构建并行函数管理运行时环境、并行函数地址访问机制、并行函数调度机制,并通过函数副本机制实现对并行计算模型的支持,将函数副本集合内的各函数与各并行计算进程建立对应关系,以利于并行计算进程的执行;及并行计算实现步骤,由该Serverless并行计算平台实现MPI并行计算进程。本发明解决Serverless环境下IP寻址问题、并行函数调用问题、差异化并行协作执行问题。

Description

一种面向MPI的Serverless并行计算方法及其***
技术领域
本发明涉及并行计算及Serverless(无服务器计算)技术领域,特别是一种面向MPI的Serverless并行计算方法及其***。
背景技术
随着多核处理器和云计算***的广泛应用,并行计算已成为有效利用资源的重要手段。在分布式架构下,并行计算中的数据交换和任务的协调与合作可以通过消息传递实现。MPI(消息传递接口,Message Passing Interface)是目前最为通用的并行编程方式,也是分布式并行***的主要编程环境。基于MPI的编程模型开发的应用涵盖了大多数HPC(高性能计算,High Performance Computing)的工作负载,这些负载需要运行在有MPI运行时环境的单机或分布式集群上。在传统的云基础设施(包括基础设施即服务IaaS)中已经可以成功部署并运行并行计算应用。相比于在传统集群上运行,通过利用云资源的弹性,应用可以从云环境下丰富的算力资源中获益,从而实现性能的提升。然而,虽然云计算将用户从物理基础设施管理中解脱出来,但留给他们的却是大量的虚拟资源需要管理,而目前云并没有解决分布式计算的所有挑战,比如当计算规模和数据量发生变化时,固定的资源分配方案就不能适应不断变化的负载需求,导致资源分配过度或分配不足,又如在云环境下用户需要手动维护集群资源管理器(如Slurm、Torque等),应用的运维变得非常复杂,特别是对于容器化的工作负载。
近年来,无服务器计算(Serverless Computing)的出现可以一定程度上解决并行计算在传统云基础设施上运行所存在的问题。Serverless是一种新的云计算模式,旨在构建一种运行时无需管理服务器等基础设施的架构,其中的函数即服务(Function as aService,FaaS)是目前Serverless架构实现的一个重要手段。在云环境下,用户的传统方法是使用云供应商的IaaS来提供虚拟机(VM),并以类似于内部集群的方式使用它;而在Serverless环境下,Serverless将云资源的完全弹性与最大限度简化的编程模型结合起来:用户只需对无状态函数进行编程,而云则承担起对这些函数的调用进行细粒度调度的责任。在易用性方面,Serverless使用户专注于业务逻辑,无需考虑基础设施如服务器、操作***或文件***、运行时甚至是容器管理,最大化实现零运维,降低了用户技术准入门槛。在性能方面,面对不同规模的并行计算,Serverless能够实现大量并行函数的高效编排和极致扩缩容,以提升应用的执行效率,并在即付即用的模式下,对不同并行度下对计算资源进行弹性分配,达到按需分配资源最大化资源利用率的目标。
现有技术存在的问题和缺点如下:
目前,Serverless仍然无法有效支持MPI并行计算的开展。由于面向MPI的并行编程模型有许多固有特征,比如基于MPI的进程间通信(Inter-Process Communication,IPC)是需要通过IP寻址实现,MPI并行进程的执行逻辑是同其身份相关而有差异化的,多节点的执行需要MPI运行时的支持等,而原生Serverless函数是动态生成且无状态的,没有网络地址可供寻址,函数副本之间是没有差异的,且不能同时执行等等限制,导致了现有Serverless技术并不能很好的适配传统的MPI应用。
传统Serverless技术中,面对类似问题,函数间只能通过缓慢而昂贵的存储来传递数据进行间接通信,函数调用请求每次仅可调用一个函数副本,无法实现一次性调用所有相关并行函数,且各函数副本无法实现数据并行、任务并行所需的差异性并行协作执行。
发明内容
本发明的目的在于提供一种面向MPI的Serverless并行计算方法及其***,通过支持Serverless化的MPI并行计算,解决Serverless环境下IP寻址问题、并行函数调用问题、差异化并行协作执行问题。
为了实现上述目的,本发明一方面提供一种面向MPI的Serverless并行计算方法,包括:
动态地址映射步骤,建立函数名与对应的网络地址之间的映射关系,并对Serverless并行计算平台的普通函数与并行函数统一编制;
计算模型构建步骤,在该Serverless并行计算平台中构建并行函数管理运行时环境、并行函数地址访问机制、并行函数调度机制,并通过函数副本机制实现对并行计算模型的支持,将函数副本集合内的各函数与各并行计算进程建立对应关系,以利于并行计算进程的执行;及
并行计算实现步骤,由该Serverless并行计算平台实现MPI并行计算进程。
所述的面向MPI的Serverless并行计算方法,在一实施例中,所述动态地址映射步骤中,进一步包括:
构建地址映射表,建立函数名与对应的网络地址之间的映射关系;及
构建地址映射管理器,对地址映射表的内容进行管理。
所述的面向MPI的Serverless并行计算方法,在一实施例中,所述构建地址映射管理器步骤中,进一步包括:
映射关系更新步骤,当函数副本内容发生更新时,地址映射管理器根据函数副本更新内容,对地址映射表的内容进行更新;
映射关系查询步骤,当并行函数副本运行时环境查询函数副本的地址映射关系时,地址映射管理器对地址映射表的内容进行查询,封装成特定消息格式;
映射关系同步步骤,当地址映射表以分布式形式进行管理时,各分布式组件对地址映表映射的内容进行同步;及
映射关系恢复步骤,当地址映射表的内容丢失时,地址映射管理器通过调用Serverless并行计算平台,对地址映射表的内容进行恢复。
所述的面向MPI的Serverless并行计算方法,在一实施例中,所述计算模型构建步骤,进一步包括:
对并行函数的管理进行封装,支持对并行函数进行生命周期的管理操作,并将相应操作转换为函数副本的管理操作;
对函数副本的地址进行标识管理,为函数副本建立双层结构,第一层为基于函数名的身份标识,第二层为基于函数地址的身份标识;及
并行函数调度根据监控所得集群资源信息,同并行函数的调度需求进行匹配,在满足各并行函数资源需求时,最大化同一并行任务下的各并行函数的亲和性得分。
所述的面向MPI的Serverless并行计算方法,在一实施例中,该Serverless并行计算平台包括客户端、控制节点、计算节点及函数仓库,该控制节点包括网关、控制器、监控器及扩缩容管理器,该计算节点包括执行器和容器;所述并行计算实现步骤,进一步包括:
MPI并行程序函数式开发步骤:
(1)根据带有MPI运行时环境的Serverless模板编写MPI函数处理代码,并对函数运行时环境进行配置;及
(2)提交函数进行自动化构建,将MPI环境一同打包为容器镜像,并推送到步骤(1)中函数运行时环境所配置的镜像仓库地址中,以方便集群中任意节点下载该镜像。
所述的面向MPI的Serverless并行计算方法,在一实施例中,该Serverless并行计算平台包括客户端、控制节点、计算节点及函数仓库,该控制节点包括网关、控制器、监控器及扩缩容管理器,该计算节点包括执行器和容器;所述并行计算实现步骤,进一步包括:
并行函数部署服务步骤:
(1)客户端提交部署请求;
(2)部署请求进入控制节点网关的请求队列中进行排队;
(3)控制节点网关从请求队列中取出第一个部署请求,交给控制器进行调度;
(4)控制器解析调度请求并查询集群上是否已部署有相同任务,若无,则获取监控器采集到的集群资源信息,并设立资源变化度和并行请求数的阈值,并跳转至步骤(6);若有,则通知扩缩容管理器进行扩缩容,并转入步骤(5);
(5)若有资源不足或请求部署函数的并行度下降的情况,扩缩容管理器向控制器发出并行函数缩容的指令,若有请求部署函数的并行度上升的情况,扩缩容管理器向控制器发出并行函数扩容的指令,并转入步骤(6);
(6)控制器根据监控器采集到的集群资源信息和部署请求信息做匹配,若需要部署函数,则在满足任务的每个并行函数调度给具有足够资源的计算节点时,最大化同一任务下的并行函数亲和性得分,将函数分配给该组计算节点并将并分配相应的独占资源;若需要关闭函数,则按启动顺序依次关闭相应函数的容器;
(7)控制器将调度后的函数信息写入地址映射表中;
(8)控制器通知在该并行函数调度到的所有计算节点下载函数镜像,各计算节点从镜像仓库进行下载;及
(9)控制器在该并行函数调度到的所有计算节点上启动执行器,由执行器创建在此节点上运行的并行函数容器。
所述的面向MPI的Serverless并行计算方法,在一实施例中,该Serverless并行计算平台包括客户端、控制节点、计算节点及函数仓库,该控制节点包括网关、控制器、监控器及扩缩容管理器,该计算节点包括执行器和容器;所述并行计算实现步骤,进一步包括:
并行函数触发服务步骤:
(1)客户端向控制节点的网关发送调用请求;
(2)网关将带有参数的请求转发给控制器;
(3)控制器从地址映射表中获取地址并转发给该任务的各个执行器;
(4)执行器解析转发的请求参数,并拼接形成MPI命令,传给该任务下的所有并行函数以调用其执行,同时实时监控运行的并行函数;及
(5)当并行函数运行完成后,执行器接收到函数正常或异常退出的信号,并回收执行状态与结果。
本发明的另一方面,还提供一种面向MPI的Serverless并行计算***,包括:
动态地址映射模块,建立函数名与对应的网络地址之间的映射关系,并对Serverless并行计算平台的普通函数与并行函数统一编制;
计算模型构建模块,在该Serverless并行计算平台中构建并行函数管理运行时环境、并行函数地址访问机制、并行函数调度机制,并通过函数副本机制实现对并行计算模型的支持,将函数副本集合内的各函数与各并行计算进程建立一一对应关系,以利于并行计算程序的执行;及
Serverless并行计算平台,实现MPI并行计算程序。
所述的面向MPI的Serverless并行计算***,在一实施例中,所述动态地址映射模块包括:
地址映射表,建立函数名与对应的网络地址之间的映射关系;及
地址映射管理器,对地址映射表的内容进行管理。
所述的面向MPI的Serverless并行计算***,在一实施例中,所述地址映射管理器还用于:
当函数副本内容发生更新时,根据函数副本更新内容,对地址映射表的内容进行更新;
当并行函数副本运行时环境查询函数副本的地址映射关系时,对地址映射表的内容进行查询,封装成特定消息格式;
当地址映射表以分布式形式进行管理时,各分布式组件对地址映表映射的内容进行同步;及
当地址映射表的内容丢失时,通过调用Serverless并行计算平台,对地址映射表的内容进行恢复。
所述的面向MPI的Serverless并行计算***,在一实施例中,所述计算模型构建模块还用于:
对并行函数的管理进行封装,支持对并行函数进行生命周期的管理操作,并将相应操作转换为函数副本的管理操作;
对函数副本的地址进行标识管理,为函数副本建立双层结构,第一层为基于函数名的身份标识,第二层为基于函数地址的身份标识;及
并行函数调度根据监控所得集群资源信息,同并行函数的调度需求进行匹配,在满足各并行函数资源需求时,最大化同一并行任务下的各并行函数的亲和性得分。
所述的面向MPI的Serverless并行计算***,在一实施例中,该Serverless并行计算平台包括客户端、控制节点、计算节点及函数仓库,该控制节点包括网关、控制器、监控器及扩缩容管理器,该计算节点包括执行器和容器;其中,
客户端,用于MPI并行计算任务的相关管理及计算操作的发起;
控制节点,用于响应MPI并行计算任务的运行时环境需求,负责Serverless计算中部署和调用请求的接收、请求队列管理、容器调度、地址映射、资源监控、扩缩容管理、启动并行执行器、转发调用请求;
计算节点,负责Serverless计算中函数的启动、监控、执行和销毁;
函数仓库,存储编写函数所需的基础容器环境及构建后的函数容器镜像。
所述的面向MPI的Serverless并行计算***,在一实施例中,该Serverless并行计算平台还用于MPI并行程序函数式开发服务:
(1)根据带有MPI运行时环境的Serverless模板编写MPI函数处理代码,并对函数运行时环境进行配置;及
(2)提交函数进行自动化构建,将MPI环境打包为容器镜像,并推送到步骤(1)中函数运行时环境所配置的镜像仓库地址中,以方便集群中任意节点下载该镜像。
所述的面向MPI的Serverless并行计算***,在一实施例中,该Serverless并行计算平台还用于并行函数部署服务:
(1)客户端提交部署请求;
(2)部署请求进入控制节点网关的请求队列中进行排队;
(3)控制节点网关从请求队列中取出第一个部署请求,交给控制器进行调度;
(4)控制器解析调度请求并查询集群上是否已部署有相同任务,若无,则获取监控器采集到的集群资源信息,并设立资源变化度和并行请求数的阈值,并跳转至步骤(6);若有,则通知扩缩容管理器进行扩缩容,并转入步骤(5);
(5)若有资源不足或请求部署函数的并行度下降的情况,扩缩容管理器向控制器发出并行函数缩容的指令,若有请求部署函数的并行度上升的情况,扩缩容管理器向控制器发出并行函数扩容的指令,并转入步骤(6);
(6)控制器根据监控器采集到的集群资源信息和部署请求信息做匹配,若需要部署函数,则在满足任务的每个并行函数调度给具有足够资源的计算节点时,最大化同一任务下的并行函数亲和性得分,将函数分配给该组计算节点并将并分配相应的独占资源;若需要关闭函数,则按启动顺序依次关闭相应函数的容器;
(7)控制器将调度后的函数信息写入地址映射表中;
(8)控制器通知在该并行函数调度到的所有计算节点下载函数镜像,各计算节点从镜像仓库进行下载;及
(9)控制器在该并行函数调度到的所有计算节点上启动执行器,由执行器创建在此节点上运行的并行函数容器。
所述的面向MPI的Serverless并行计算***,在一实施例中,该Serverless并行计算平台还用于并行函数触发服务:
(1)客户端向控制节点的网关发送调用请求;
(2)网关将带有参数的请求转发给控制器;
(3)控制器从地址映射表中获取地址并转发给该任务的各个执行器;
(4)执行器解析转发的请求参数,并拼接形成MPI命令,传给该任务下的所有并行函数以调用其执行,同时实时监控运行的并行函数;及
(5)当并行函数运行完成后,执行器接收到函数正常或异常退出的信号,并回收执行状态与结果。
采用如上技术方案,本发明的有益技术效果在于:
(1)实现并行函数动态地址映射,支持并行函数基于函数地址实现网络通信式的并行协作。
(2)通过并行函数计算模型支持MPI编程模型的计算需求,实现在Serverless环境下编写、运行MPI并行程序。
(3)支持MPI并行程序在Serverless环境中的全生命周期管理及服务,包括Serverless化MPI并行程序的开发、部署、调用等。
附图说明
图1为函数动态地址映射管理框架图;
图2为并行函数运行时环境交互图;
图3为本发明的面向MPI的Serverless并行计算平台结构示意图;
图4为本发明的MPI并行计算任务的逻辑视图与部署示例图;
图5为本发明的MPI并行函数开发服务示意图;
图6为本发明的并行函数部署阶段流程示意图;
图7为本发明的并行函数触发阶段流程示意图。
具体实施方式
为支持Serverless化的MPI并行计算,解决Serverless环境下,IP寻址问题、并行函数调用问题、差异化并行协作执行问题,本发明提出了一种面向MPI的Serverless并行计算方法及***。本发明的主要关键技术具体如下:
1、Serverless函数动态地址映射技术
本发明提出一种Serverless函数动态地址映射技术,该技术提出一种函数动态地址映射表机制,其建立函数名同其网络地址的映射关系,对Serverless计算平台中的普通函数及并行函数进行统一编制,支持Serverless计算平台通过函数名动态获取其网络地址,以及通过网络地址获取函数名的双向映射。
该技术由地址映射管理器及地址映射表构成,并提供地址映射表信息访问API。地址映射管理器将计算平台将调度后的函数信息写入地址映射表中。该地址映射表支持函数的基本信息、地址信息的映射、查询。函数的基本信息可包括但不限于函数名、函数副本信息等。当函数以普通副本形式或并行函数副本形式存在时,其函数名对应的地址信息为一个地址集合,包括各个副本的地址信息,其中,地址信息可包括但不限于函数IP地址、服务端口等。地址映射表的信息可采取多种存储形式,如以key-value形式缓存于内存中。地址映射管理器也可通过Serverless计算平台API快速恢复地址映射表中内容,以防内存丢失所带来的影响。该技术所提供API包括地址表信息查询、基于函数名获取函数地址,基于函数地址获取函数名等操作。通过调用函数地址的API查询服务,可同时获得函数对应的所有地址信息,可支持函数并行计算的并行协作。
采用所述Serverless函数动态地址映射技术,本发明可支持根据函数名获取函数地址,支持并行计算基于获得的并行函数地址进行后续并行协作。
本发明设计并实现了函数的动态地址映射技术,并利用其改进了Serverless副本机制使其支持并行函数的同步调用和差异化执行,实现了面向MPI并行编程模型的Serverless计算。
2、Serverless并行函数副本计算模型
本发明提出一种Serverless并行函数副本计算模型。Serverless并行函数副本计算模型提出在Serverless计算平台中构建并行函数管理运行时环境、并行函数地址访问机制、并行函数调度机制,可通过函数副本机制实现对并行计算模型的支持,将函数副本集合内的各函数与各并行计算进程建立一一对应关系,使得各并行计算进程可利用函数实现部署、扩展等操作。
Serverless并行函数副本计算模型构建并行函数管理运行时环境,该运行时环境对并行函数的管理进行封装,支持对并行函数进行创建、部署、地址访问等生命周期管理操作,并将相应操作转换为函数副本的管理操作。
Serverless并行函数副本计算模型对函数副本的地址进行标识管理。较普通函数副本模型的扁平结构,Serverless并行函数副本计算模型在函数副本中建立了双层结构,第一层为基于函数名的身份标识,第二层为基于函数地址的身份标识。其中,第二层地址的映射可利用Serverless函数动态地址映射技术实现地址访问。
Serverless并行函数副本计算模型针对并行函数调度提供优化支持,可实现对并行计算任务的亲和性调度等。并行函数调度根据监控所得集群资源信息,同并行函数的调度需求进行匹配,在满足各并行函数资源需求的前提下,最大化同一并行任务下的各并行函数的亲和性得分,在调度上实现最大程度上的聚合。
采用所述Serverless并行函数副本计算模型,可支持并行进程的计算需求、管理操作可通过并行函数副本实现,从而使得并行程序可运行于Serverless环境中,通过调度技术提高并行计算效率。
3、面向MPI的Serverless并行计算***
本发明提出一种面向MPI的Serverless并行计算***。面向MPI的Serverless并行计算***应用Serverless并行函数副本计算模型,实现了对MPI并行计算程序的支持。其中,包括以下模块:
模块1、客户端。其用于MPI并行计算任务的相关管理及计算操作的发起,包括任务启动、任务查看、任务暂停、任务恢复、任务停止、并行函数调用等,客户端可支持Web界面、命令行工具、RESTful API三种形式进行相应操作,并查看操作结果。
模块2、控制节点。其响应MPI并行计算任务的运行时环境需求,负责Serverless计算中部署和调用请求的接收、请求队列管理、容器调度、地址映射、资源监控、扩缩容管理、启动并行执行器、转发调用请求的功能。控制节点主要包括网关、控制器、监控器、扩缩容管理器四个组件。其中:
(1)网关负责接收客户端请求,并根据请求类型向控制器转发请求。
(2)控制器融合Serverless并行函数副本计算模型,集成其运行时环境模块,管理函数调度、地址映射及并行执行器的任务启停与调用。函数调度根据监控采集到的集群资源信息,同MPI并行函数调度请求进行匹配,按照***调度策略执行调度,如并行函数亲和性调度;地址映射将函数与地址信息进行映射,实现Serverless函数动态地址映射;并行执行器支持和MPI运行时环境进行交互,其启停与调用任务是控制器根据调度结果在被调度到的节点上启动或暂停该任务的执行,以及在接收到调用请求后能够转发请求给该任务下的并行各个执行器。
(3)监控器负责监控整个集群的资源信息和请求信息,并设立资源变化度和并行请求数的阈值,一旦集群资源变化超出阈值,则通知扩缩容管理器进行扩缩容。
(4)扩缩容管理器负责具体执行并行函数的扩缩容,若有资源不足或请求部署函数的并行度下降的情况,向控制器发出并行函数缩容的指令,若有请求部署函数的并行度上升的情况,向控制器发出并行函数扩容的指令,控制器负责依据调度策略关闭或启动相应的并行函数容器。
模块3、计算节点。其负责Serverless计算中各并行函数的启动、监控、执行和销毁,包括执行器和容器两部分。执行器负责接收控制器的启停与调用请求,并管理该节点下同属于一个任务的函数的启停或调用,这些函数会被同步启、停或调用,调用时还会解析转发的请求参数并利用MPI命令传给并行函数调用其执行,同时实时监控运行的函数容器;容器则是函数的运行时环境,其中配置了部署请求中的环境变量,是负责接收函数请求参数并执行函数的地方。
模块4、函数仓库。是一个远端的存储设施,其中存储编写函数所需的基础容器环境以及构建后的函数容器镜像,在并行函数部署阶段启动容器后,每个容器会从函数仓库下载对应函数镜像,以作为启动的对象。
***中包括以下关键服务:MPI并行程序函数式开发、并行函数部署、并行函数触发。
具体地,MPI并行程序函数式开发服务包括以下步骤:
(1)用户根据带有MPI运行时环境的Serverless模板编写好MPI函数处理代码,并对函数运行时环境进行配置;
(2)提交函数进行自动化构建,会将MPI环境一同打包为容器镜像,并推送到(1)中函数运行时环境所配置的镜像仓库地址中,方便集群中任意节点下载该镜像。
具体地,并行函数部署服务包括以下步骤:
(1)用户从客户端提交部署请求,可以从Web界面、命令行工具、RESTful API三种形式中任选其一进行请求调用;
(2)部署请求进入控制节点网关的请求队列中,进行FIFO(First In First Out)排队;
(3)控制节点网关从请求队列中取出第一个部署请求,交给控制器进行调度;
(4)控制器解析调度请求并查询集群上是否已部署有相同任务,若无,则获取监控器采集到的集群资源信息,并设立资源变化度和并行请求数的阈值,并跳转步骤(6);若有,则通知扩缩容管理器进行扩缩容,并转入步骤(5);
(5)若有资源不足或请求部署函数的并行度下降的情况,扩缩容管理器向控制器发出并行函数缩容的指令,若有请求部署函数的并行度上升的情况,扩缩容管理器向控制器发出并行函数扩容的指令,并转入步骤(6);
(6)控制器根据监控器采集到的集群资源信息和部署请求信息做匹配,若需要部署函数,则在满足了任务的每个并行函数调度给具有足够资源的计算节点的前提下,最大化同一任务下的并行函数亲和性得分,将函数分配给该组计算节点并将并分配相应的独占资源;若需要关闭函数,则按启动顺序依次关闭相应函数容器;
(7)控制器将调度后的函数信息写入地址映射表中,地址映射表对普通函数和并行函数进行统一编址。地址映射表将获取的函数地址信息和计算节点的IP地址以key-value形式缓存在内存中,若发生内存丢失,则通过集群API快速从各节点恢复所有函数地址信息并重新映射计算节点的IP地址,恢复地址映射表;
(8)控制器通知在该并行函数调度到的所有计算节点下载函数镜像,各个计算节点从镜像仓库进行下载;
(9)控制器在该并行函数调度到的所有计算节点上启动执行器,由执行器创建在此计算节点上运行的并行函数容器。
具体地,并行函数触发服务包括以下步骤:
(1)用户通过客户端向控制节点网关发送调用请求,可以从Web界面、命令行工具、RESTful API三种形式中任选其一进行请求调用;
(2)网关将带有参数的请求转发给控制器;
(3)控制器从地址映射表中获取地址并转发给该任务的各个执行器;
(4)执行器解析转发的请求参数,并拼接形成MPI命令,传给该任务下的所有并行函数以调用其执行,同时实时监控运行的并行函数;
(5)当并行函数运行完成后,执行器接收到函数正常或异常退出的信号,并回收执行状态与结果。
采用如上所述步骤,本发明可支持对Serverless化MPI程序的全生命周期管理。
下面将结合本发明的附图,进一步说明本发明的技术方案,所描述的实施例是本发明一部分实施例,而不代表全部的实施例。
对于本领域的技术人员来说,一些公知技术可能未进行详细阐述。
本发明实施过程包括构建Serverless函数动态地址映射模块、构建Serverless并行函数副本运行时环境、构建面向MPI的Serverless并行计算***、构建MPI并行函数开发服务、构建并行函数部署服务、构建并行函数触发服务。
1.构建Serverless函数动态地址映射模块
构建Serverless函数动态地址映射模块包括地址映射管理器及地址映射表的构建。地址映射管理器负责管理地址映射表内容的更新、查询,响应、服务于***其他模块的函数动态地址访问需求,如图1所示。地址管理器主要功能包括:
(1)映射关系更新。当函数副本内容发生更新时,地址映射管理器根据副本更新内容,对地址映射表内容进行更新,如增加、修改、删除所更新函数副本的函数地址集合中的对应函数地址。
(2)映射关系查询。当并行函数副本运行时环境查询函数副本的地址映射关系时,地址映射管理器对地址映射表内容进行查询,封装成特定消息格式,返回给请求模块。
(3)映射关系同步。当函数地址映射表以分布式形式进行管理时,各个分布式组件可就地址表内容进行同步。
(4)映射关系恢复。当函数地址映射表内容因故障等原因丢失时,地址映射管理器可通过调用计算平台函数副本管理API,对地址映射表内容进行恢复。
2.构建Serverless并行函数副本运行时环境
并行函数副本运行时环境响应面向MPI的Serverless并行计算***的并行函数副本管理需求,对并行函数副本及并行执行器进行控制管理,并通过动态函数地址映射管理器进行动态函数地址的访问、更新,如图2所示。并行函数运行时环境将并行函数副本的管理命令转化为普通函数副本的相关操作,实现普通函数副本的并行化管理。
3.构建面向MPI的Serverless并行计算***
面向MPI的Serverless并行计算***可运行在物理机或虚拟机集群之上,可将操作***、***级的容器运行时环境和容器编排器作为基础支撑,平台架构如图3所示。各模块构建内容如下:
模块1、客户端。基于Web界面、命令行、Restful API构建客户端,Web及命令行均可基于Restful API进行封装,客户端所提供功能包括并行计算任务的相关管理及计算操作的发起,包括任务启动、任务查看、任务暂停、任务恢复、任务停止、并行函数调用等。
模块2、控制节点。在控制节点中构建请求队列管理、容器调度、地址映射、资源监控、扩缩容管理、并行执行器管理,包括网关、控制器、监控和扩缩容管理器四个组件。其中网关负责接收客户端发送的请求,并根据请求类型向控制器发起调度请求或转发请求。控制器负责函数调度、地址映射及执行器的启停与调用,调度是根据监控器采集到的集群资源信息和调度请求信息做匹配,在满足了任务的每个并行函数调度给具有足够资源的计算节点的前提下,最大化同一任务下的并行函数亲和性得分,将函数分配给该组计算节点并将并分配相应的独占资源;地址映射是将函数与调度后的信息做映射,缓存记录函数动态调度后的结果;执行器的启停与调用是控制器根据调度结果在被调度到的节点上启动或暂停该任务的执行器,以及在接收到调用请求后能够转发请求给该任务下的各个执行器。监控负责监控整个集群的资源信息和请求信息,并设立资源变化度和并行请求数的阈值,一旦集群资源变化超出阈值,则通知扩缩容管理器进行扩缩容。扩缩容管理器负责具体执行并行函数的扩缩容,若有资源不足或请求部署函数的并行度下降的情况,向控制器发出并行函数缩容的指令,若有请求部署函数的并行度上升的情况,向控制器发出并行函数扩容的指令,控制器负责依据调度策略关闭或启动相应函数容器。
模块3、计算节点。负责Serverless计算中函数的启动、监控、执行和销毁,其中包括执行器和容器两部分。执行器负责接收控制器的启停与调用请求,并启、停或调用该节点下同属于一个任务的所有容器内的函数,这些函数会被同步启、停或调用,调用时还会解析转发的请求参数并利用MPI命令传给并行函数调用其执行,同时实时监控运行的函数容器;容器则是函数的运行时环境,其中配置了部署请求中的环境变量,是负责接收函数请求参数并执行函数的地方。
模块4、函数仓库。是一个远端的存储容器,其中存储了编写函数所需的基础容器环境以及构建后的函数容器镜像,在并行函数部署阶段启动容器后,每个容器会从函数仓库下载对应函数镜像作为启动的运行时环境。
MPI并行计算任务的逻辑视图与部署示例如图4。本示例展示了2个物理节点上调度的3个任务,3个任务中任务1为2个并行函数,任务2为6个并行函数,任务3为1个函数,是单函数任务。调度结果为计算节点1上部署了任务1和任务2,计算节点2上部署了任务2和任务3,任务2为跨两个计算节点部署的任务,分别在两个计算节点上部署有3个并行函数。
MPI并行计算任务有以下2点约束:所有函数同时执行;待所有函数执行完毕后,任务才被认定为结束。
根据本发明的另一方面,本发明提出了一种面向MPI的Serverless并行计算方法在实施过程中包括三个阶段:函数编写与构建、推送镜像,并行函数部署,并行函数触发。
4.构建MPI并行函数开发服务
在一实施例中,如图5所示,函数编写与构建、推送镜像步骤如下:
步骤501:用户根据带有MPI运行时环境的Serverless模板编写好MPI函数处理代码,并对函数运行时环境进行配置;
步骤502:提交函数进行自动化构建,会将MPI环境一同打包为容器镜像,并推送到步骤501中函数运行时环境所配置的镜像仓库地址中,方便集群中任意节点下载该镜像。
进一步地,步骤501中所述的运行时环境配置包括函数名、函数处理代码路径与镜像仓库地址。
5.构建并行函数部署服务
在一实施例中,如图6所示,并行函数部署步骤如下:
步骤601:用户从客户端提交部署请求,可以从Web界面、命令行工具、RESTful API三种形式中任选其一进行请求调用;
步骤602:部署请求进入控制节点网关的请求队列中,进行FIFO(First In FirstOut)排队;
步骤603:控制节点网关从请求队列中取出第一个部署请求,交给控制器进行调度;
步骤604:控制器解析调度请求并查询集群上是否已部署有相同任务,若无,则获取监控器采集到的集群资源信息,并设立资源变化度和并行请求数的阈值,并跳转步骤606;若有,则通知扩缩容管理器进行扩缩容,并转入步骤605;
步骤605:若有资源不足或请求部署函数的并行度下降的情况,扩缩容管理器向控制器发出并行函数缩容的指令,若有请求部署函数的并行度上升的情况,扩缩容管理器向控制器发出并行函数扩容的指令,并转入步骤606;
步骤606:控制器根据监控器采集到的集群资源信息和部署请求信息做匹配,若需要部署函数,则在满足了任务的每个并行函数调度给具有足够资源的计算节点的前提下,最大化同一任务下的并行函数亲和性得分,将函数分配给该组计算节点并将并分配相应的独占资源;若需要关闭函数,则按启动顺序依次关闭相应函数容器;
步骤607:控制器将调度后的函数信息写入地址映射表中,地址映射表对普通函数和并行函数进行统一编址。地址映射表将获取的函数地址信息和计算节点IP地址以key-value形式缓存在内存中,若发生内存丢失,则通过集群API快速从各节点恢复所有函数地址信息并重新映射计算节点IP地址,恢复地址映射表;
步骤608:控制器通知在该并行函数调度到的所有计算节点下载函数镜像,各个节点从镜像仓库进行下载;
步骤609:控制器在该并行函数调度到的所有计算节点上启动执行器,由执行器创建在此节点上运行的并行函数容器。
进一步地,步骤601中所述的部署请求,包括指定运行的Serverless平台的网关地址、镜像仓库地址、函数名称、MPI并行度以及应用所需的环境变量。
进一步地,步骤606中所述的调度策略包括首次适应算法(First Fit)、最佳适应算法(Best Fit)或用户自定义的调度算法。
进一步地,步骤606中所述的同一任务下的并行函数亲和性得分计算公式为:
Figure BDA0003748923530000171
Figure BDA0003748923530000172
Figure BDA0003748923530000173
Figure BDA0003748923530000174
Figure BDA0003748923530000175
Figure BDA0003748923530000176
Figure BDA0003748923530000177
其中公式变量如下:
1)
Figure BDA0003748923530000178
两个最小化目标,分别是最小化有负载节点数量和任务划分的成本。
2)i,i′:代表同一个任务下的任意两个函数,一个任务由n个函数组成。
3)j,j′:代表集群中的任意两个节点,集群由N个节点组成。
4)E:代表函数间的通信关系。若{i,i′}∈E则说明函数i与函数i′有通信关系,反之则无。
5)
Figure BDA0003748923530000179
一个任务由n个所需资源为
Figure BDA00037489235300001710
的并行函数组成,函数i的资源需求可以由一个d维向量
Figure BDA00037489235300001711
表示。
6)
Figure BDA00037489235300001712
集群有N个资源容量为
Figure BDA00037489235300001713
的节点,节点j的容量可以由一个d维向量
Figure BDA00037489235300001714
表示。
7)xij:若函数i被分配到节点j上,则xij=1,否则xij=0。
8)yj:若节点j有任务函数已被部署,则yj=1,否则yj=0。
9)zib:若函数i在子任务b中时zib=1,否则zib=0。
10)zi′b:若函数i′在子任务b中时zi′b=1,否则zi′b=0。
11)ei,i′:若同属于一个任务的函数i与函数i′在同一节点上,则变量取值ei,i′=0,否则ei,i′=1。
公式中s.t.指的是约束条件,是在(c)到(g)的条件下满足(a)、(b)两个目标。目标是最小化有负载节点数量和任务划分的成本,用公式(a)和公式(b)表示。约束条件公式(c)说明一个任务的任何函数都应且必须部署在一个节点上,而公式(d)说明节点上的函数资源需求之和不应该超过节点的可用容量,确保资源不会被过度分配。公式(e)和(f)保证了一个任务的有效分割,公式(g)保证了每个函数正好分配到一个分区(即子任务)中。最后,可以得到一个集合(xij,yj),将任务的所有函数与集群中的节点进行匹配。
进一步地,步骤607中所述的函数地址信息是地址映射表自定义的地址,由<任务ID,容器ID>这个二元组组成,任务ID由控制器所生成,不同的任务享有不同的函数ID。对于普通函数而言,由于一个任务下只有一个函数,因此任务ID就可以区分函数;对于并行函数而言,同属于一个任务的函数的任务ID是相同的,因此就需要依靠<函数ID,容器ID>这个二元组来唯一确定。这样的ID设计可以保证快速遍历到同属于一个任务的并行函数。
进一步地,步骤608中所述的执行器的启动,考虑到任务存在跨节点运行的可能,所以每个任务在其被调度的所有节点下都会分别启动一个,该执行器负责管理任务在本节点下的所有并行函数,包括创建、传参执行、运行监控及结果回收等。
进一步地,步骤608所述的创建并行函数容器,是为了减少函数触发时的容器冷启动时间,容器创建后是以HTTP服务器角色对外提供服务。
6.构建并行函数触发服务
在一实施例中,如图7所示,并行函数触发步骤如下:
步骤701:用户通过客户端向控制节点网关发送调用请求,可以从Web界面、命令行工具、RESTful API三种形式中任选其一进行请求调用;
步骤702:网关将带有参数的请求转发给控制器;
步骤703:控制器从地址映射表中获取地址并转发给该任务的各个执行器;
步骤704:执行器解析转发的请求参数,并拼接形成MPI命令,传给该任务下的所有并行函数以调用其执行,同时实时监控运行的并行函数;
步骤705:当并行函数运行完成后,执行器接收到函数正常或异常退出的信号,并回收执行状态与结果。
进一步地,步骤701中所述的调用请求,包括指定运行的Serverless平台的网关地址以及调用参数;
进一步地,步骤704中所述的拼接形成MPI命令,其中包括拼接该任务下所有并行函数的IP地址、端口号及容器网卡信息,生成启动MPI任务的命令,根据此启动并行函数;
进一步地,步骤705中所述的并行函数执行完成后,若该任务下的一个并行函数存在异常退出情况,则执行器判定该任务失败,将错误状态返回控制节点网关;否则执行成功,将成功状态返回控制节点网关。
针对实现Serverless MPI并行计算的诸多问题,本发明提出一种面向MPI的Serverless并行计算方法与***,在方法层面,其包括Serverless函数动态地址映射技术、并行函数副本计算模型,解决了IP寻址问题、并行函数调用问题、并行协作执行问题;在***层面,构建面向MPI的Serverless并行计算***,将MPI编程模型移植到Serverless环境下,提供了Serverless化的MPI运行时环境支持。本发明方法可对现有Serverless平台进行改进,形成支持MPI的Serverless并行计算***,让用户高效实现Serverless化MPI并行计算。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (15)

1.一种面向MPI的Serverless并行计算方法,其特征在于,包括:
动态地址映射步骤,建立函数名与对应的网络地址之间的映射关系,并对Serverless并行计算平台的普通函数与并行函数统一编制;
计算模型构建步骤,在该Serverless并行计算平台中构建并行函数管理运行时环境、并行函数地址访问机制、并行函数调度机制,并通过函数副本机制实现对并行计算模型的支持,将函数副本集合内的各函数与各并行计算进程建立对应关系,以利于并行计算进程的执行;及
并行计算实现步骤,由该Serverless并行计算平台实现MPI并行计算进程。
2.根据权利要求1所述的面向MPI的Serverless并行计算方法,其特征在于,所述动态地址映射步骤中,进一步包括:
构建地址映射表,建立函数名与对应的网络地址之间的映射关系;及
构建地址映射管理器,对地址映射表的内容进行管理。
3.根据权利要求2所述的面向MPI的Serverless并行计算方法,其特征在于,所述构建地址映射管理器步骤中,进一步包括:
映射关系更新步骤,当函数副本内容发生更新时,地址映射管理器根据函数副本更新内容,对地址映射表的内容进行更新;
映射关系查询步骤,当并行函数副本运行时环境查询函数副本的地址映射关系时,地址映射管理器对地址映射表的内容进行查询,封装成特定消息格式;
映射关系同步步骤,当地址映射表以分布式形式进行管理时,各分布式组件对地址映表映射的内容进行同步;及
映射关系恢复步骤,当地址映射表的内容丢失时,地址映射管理器通过调用Serverless并行计算平台,对地址映射表的内容进行恢复。
4.根据权利要求1所述的面向MPI的Serverless并行计算方法,其特征在于,所述计算模型构建步骤,进一步包括:
对并行函数的管理进行封装,支持对并行函数进行生命周期的管理操作,并将相应操作转换为函数副本的管理操作;
对函数副本的地址进行标识管理,为函数副本建立双层结构,第一层为基于函数名的身份标识,第二层为基于函数地址的身份标识;及
并行函数调度根据监控所得集群资源信息,同并行函数的调度需求进行匹配,在满足各并行函数资源需求时,最大化同一并行任务下的各并行函数的亲和性得分。
5.根据权利要求1所述的面向MPI的Serverless并行计算方法,其特征在于,该Serverless并行计算平台包括客户端、控制节点、计算节点及函数仓库,该控制节点包括网关、控制器、监控器及扩缩容管理器,该计算节点包括执行器和容器;所述并行计算实现步骤,进一步包括:
MPI并行程序函数式开发步骤:
(1)根据带有MPI运行时环境的Serverless模板编写MPI函数处理代码,并对函数运行时环境进行配置;及
(2)提交函数进行自动化构建,将MPI环境一同打包为容器镜像,并推送到步骤(1)中函数运行时环境所配置的镜像仓库地址中,以方便集群中任意节点下载该镜像。
6.根据权利要求1所述的面向MPI的Serverless并行计算方法,其特征在于,该Serverless并行计算平台包括客户端、控制节点、计算节点及函数仓库,该控制节点包括网关、控制器、监控器及扩缩容管理器,该计算节点包括执行器和容器;所述并行计算实现步骤,进一步包括:
并行函数部署服务步骤:
(1)客户端提交部署请求;
(2)部署请求进入控制节点网关的请求队列中进行排队;
(3)控制节点网关从请求队列中取出第一个部署请求,交给控制器进行调度;
(4)控制器解析调度请求并查询集群上是否已部署有相同任务,若无,则获取监控器采集到的集群资源信息,并设立资源变化度和并行请求数的阈值,并跳转至步骤(6);若有,则通知扩缩容管理器进行扩缩容,并转入步骤(5);
(5)若有资源不足或请求部署函数的并行度下降的情况,扩缩容管理器向控制器发出并行函数缩容的指令,若有请求部署函数的并行度上升的情况,扩缩容管理器向控制器发出并行函数扩容的指令,并转入步骤(6);
(6)控制器根据监控器采集到的集群资源信息和部署请求信息做匹配,若需要部署函数,则在满足任务的每个并行函数调度给具有足够资源的计算节点时,最大化同一任务下的并行函数亲和性得分,将函数分配给该组计算节点并将并分配相应的独占资源;若需要关闭函数,则按启动顺序依次关闭相应函数的容器;
(7)控制器将调度后的函数信息写入地址映射表中;
(8)控制器通知在该并行函数调度到的所有计算节点下载函数镜像,各计算节点从镜像仓库进行下载;及
(9)控制器在该并行函数调度到的所有计算节点上启动执行器,由执行器创建在此节点上运行的并行函数容器。
7.根据权利要求1所述的面向MPI的Serverless并行计算方法,其特征在于,该Serverless并行计算平台包括客户端、控制节点、计算节点及函数仓库,该控制节点包括网关、控制器、监控器及扩缩容管理器,该计算节点包括执行器和容器;所述并行计算实现步骤,进一步包括:
并行函数触发服务步骤:
(1)客户端向控制节点的网关发送调用请求;
(2)网关将带有参数的请求转发给控制器;
(3)控制器从地址映射表中获取地址并转发给该任务的各个执行器;
(4)执行器解析转发的请求参数,并拼接形成MPI命令,传给该任务下的所有并行函数以调用其执行,同时实时监控运行的并行函数;及
(5)当并行函数运行完成后,执行器接收到函数正常或异常退出的信号,并回收执行状态与结果。
8.一种面向MPI的Serverless并行计算***,其特征在于,包括:
动态地址映射模块,建立函数名与对应的网络地址之间的映射关系,并对Serverless并行计算平台的普通函数与并行函数统一编制;
计算模型构建模块,在该Serverless并行计算平台中构建并行函数管理运行时环境、并行函数地址访问机制、并行函数调度机制,并通过函数副本机制实现对并行计算模型的支持,将函数副本集合内的各函数与各并行计算进程建立一一对应关系,以利于并行计算程序的执行;及
Serverless并行计算平台,实现MPI并行计算程序。
9.根据权利要求8所述的面向MPI的Serverless并行计算***,其特征在于,所述动态地址映射模块包括:
地址映射表,建立函数名与对应的网络地址之间的映射关系;及
地址映射管理器,对地址映射表的内容进行管理。
10.根据权利要求8所述的面向MPI的Serverless并行计算***,其特征在于,所述地址映射管理器还用于:
当函数副本内容发生更新时,根据函数副本更新内容,对地址映射表的内容进行更新;
当并行函数副本运行时环境查询函数副本的地址映射关系时,对地址映射表的内容进行查询,封装成特定消息格式;
当地址映射表以分布式形式进行管理时,各分布式组件对地址映表映射的内容进行同步;及
当地址映射表的内容丢失时,通过调用Serverless并行计算平台,对地址映射表的内容进行恢复。
11.根据权利要求8所述的面向MPI的Serverless并行计算***,其特征在于,所述计算模型构建模块还用于:
对并行函数的管理进行封装,支持对并行函数进行生命周期的管理操作,并将相应操作转换为函数副本的管理操作;
对函数副本的地址进行标识管理,为函数副本建立双层结构,第一层为基于函数名的身份标识,第二层为基于函数地址的身份标识;及
并行函数调度根据监控所得集群资源信息,同并行函数的调度需求进行匹配,在满足各并行函数资源需求时,最大化同一并行任务下的各并行函数的亲和性得分。
12.根据权利要求8所述的面向MPI的Serverless并行计算***,其特征在于,该Serverless并行计算平台包括客户端、控制节点、计算节点及函数仓库,该控制节点包括网关、控制器、监控器及扩缩容管理器,该计算节点包括执行器和容器;其中,
客户端,用于MPI并行计算任务的相关管理及计算操作的发起;
控制节点,用于响应MPI并行计算任务的运行时环境需求,负责Serverless计算中部署和调用请求的接收、请求队列管理、容器调度、地址映射、资源监控、扩缩容管理、启动并行执行器、转发调用请求;
计算节点,负责Serverless计算中函数的启动、监控、执行和销毁;
函数仓库,存储编写函数所需的基础容器环境及构建后的函数容器镜像。
13.根据权利要求12所述的面向MPI的Serverless并行计算***,其特征在于,该Serverless并行计算平台还用于MPI并行程序函数式开发服务:
(1)根据带有MPI运行时环境的Serverless模板编写MPI函数处理代码,并对函数运行时环境进行配置;及
(2)提交函数进行自动化构建,将MPI环境打包为容器镜像,并推送到步骤(1)中函数运行时环境所配置的镜像仓库地址中,以方便集群中任意节点下载该镜像。
14.根据权利要求12所述的面向MPI的Serverless并行计算***,其特征在于,该Serverless并行计算平台还用于并行函数部署服务:
(1)客户端提交部署请求;
(2)部署请求进入控制节点网关的请求队列中进行排队;
(3)控制节点网关从请求队列中取出第一个部署请求,交给控制器进行调度;
(4)控制器解析调度请求并查询集群上是否已部署有相同任务,若无,则获取监控器采集到的集群资源信息,并设立资源变化度和并行请求数的阈值,并跳转至步骤(6);若有,则通知扩缩容管理器进行扩缩容,并转入步骤(5);
(5)若有资源不足或请求部署函数的并行度下降的情况,扩缩容管理器向控制器发出并行函数缩容的指令,若有请求部署函数的并行度上升的情况,扩缩容管理器向控制器发出并行函数扩容的指令,并转入步骤(6);
(6)控制器根据监控器采集到的集群资源信息和部署请求信息做匹配,若需要部署函数,则在满足任务的每个并行函数调度给具有足够资源的计算节点时,最大化同一任务下的并行函数亲和性得分,将函数分配给该组计算节点并将并分配相应的独占资源;若需要关闭函数,则按启动顺序依次关闭相应函数的容器;
(7)控制器将调度后的函数信息写入地址映射表中;
(8)控制器通知在该并行函数调度到的所有计算节点下载函数镜像,各计算节点从镜像仓库进行下载;及
(9)控制器在该并行函数调度到的所有计算节点上启动执行器,由执行器创建在此节点上运行的并行函数容器。
15.根据权利要求12所述的面向MPI的Serverless并行计算***,其特征在于,该Serverless并行计算平台还用于并行函数触发服务:
(1)客户端向控制节点的网关发送调用请求;
(2)网关将带有参数的请求转发给控制器;
(3)控制器从地址映射表中获取地址并转发给该任务的各个执行器;
(4)执行器解析转发的请求参数,并拼接形成MPI命令,传给该任务下的所有并行函数以调用其执行,同时实时监控运行的并行函数;及
(5)当并行函数运行完成后,执行器接收到函数正常或异常退出的信号,并回收执行状态与结果。
CN202210837029.XA 2022-07-15 2022-07-15 一种面向MPI的Serverless并行计算方法及其*** Pending CN115357375A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210837029.XA CN115357375A (zh) 2022-07-15 2022-07-15 一种面向MPI的Serverless并行计算方法及其***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210837029.XA CN115357375A (zh) 2022-07-15 2022-07-15 一种面向MPI的Serverless并行计算方法及其***

Publications (1)

Publication Number Publication Date
CN115357375A true CN115357375A (zh) 2022-11-18

Family

ID=84032094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210837029.XA Pending CN115357375A (zh) 2022-07-15 2022-07-15 一种面向MPI的Serverless并行计算方法及其***

Country Status (1)

Country Link
CN (1) CN115357375A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116257306A (zh) * 2023-04-20 2023-06-13 天津大学 一种基于Serverless技术的数值计算方法
WO2024109005A1 (zh) * 2022-11-22 2024-05-30 华为云计算技术有限公司 一种无服务器应用的执行方法及相关设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024109005A1 (zh) * 2022-11-22 2024-05-30 华为云计算技术有限公司 一种无服务器应用的执行方法及相关设备
CN116257306A (zh) * 2023-04-20 2023-06-13 天津大学 一种基于Serverless技术的数值计算方法

Similar Documents

Publication Publication Date Title
CN107426034B (zh) 一种基于云平台的大规模容器调度***及方法
CN109062655B (zh) 一种容器化云平台及服务器
CN111966305B (zh) 持久卷分配方法、装置、计算机设备和存储介质
US10846140B2 (en) Off-site backup of workloads for multi-tenant cloud computing system
CN109799951B (zh) 使用分布式的和虚拟的命名空间管理的按需存储供应
US10292044B2 (en) Apparatus for end-user transparent utilization of computational, storage, and network capacity of mobile devices, and associated methods
CN102244685B (zh) 一种支持负载均衡的分布式缓存动态伸缩方法及***
US8434081B2 (en) Storage manager for virtual machines with virtual storage
CN115357375A (zh) 一种面向MPI的Serverless并行计算方法及其***
JP5789640B2 (ja) 複数のコンピュータシステムによるプログラムの実行を管理するシステム
US20120185855A1 (en) Image management for virtual machine instances and associated virtual storage
CN111143054B (zh) 一种异构国产cpu资源融合管理方法
CN112463366B (zh) 面向云原生的微服务自动扩缩容和自动熔断方法及***
CN106095524B (zh) 一种虚拟机部署方法、***和装置
CN103414761A (zh) 一种基于Hadoop架构的移动终端云资源调度方法
US6516342B1 (en) Method and apparatus for extending memory using a memory server
CN111580930A (zh) 一种面向国产平台的云原生应用架构支撑方法及***
CN103353852A (zh) 一种虚拟化WebService的IaaS的构建方法
CN112463290A (zh) 动态调整计算容器的数量的方法、***、装置和存储介质
CN111193610B (zh) 一种基于物联网的智慧监控数据***和方法
CN112230853A (zh) 存储容量调整方法、装置、设备及存储介质
CN110008004A (zh) 一种电力***计算分析应用虚拟化方法、装置和设备
US20230412671A1 (en) Distributed cloud system, data processing method of distributed cloud system, and storage medium
US11916998B2 (en) Multi-cloud edge system
US20210067599A1 (en) Cloud resource marketplace

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