CN112035267B - 一种基于mpi的集群资源调度方法、装置及系统 - Google Patents
一种基于mpi的集群资源调度方法、装置及系统 Download PDFInfo
- Publication number
- CN112035267B CN112035267B CN202011212657.6A CN202011212657A CN112035267B CN 112035267 B CN112035267 B CN 112035267B CN 202011212657 A CN202011212657 A CN 202011212657A CN 112035267 B CN112035267 B CN 112035267B
- Authority
- CN
- China
- Prior art keywords
- resource
- mpi
- cluster
- computer
- computers
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- 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
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种基于MPI的集群资源调度方法、装置及系统,所述方法包括:获取集群内各计算机的资源剩余信息;获取当前MPI任务所需资源;根据当前任务所需资源和集群内各计算机的资源剩余信息生成基于MPI的可用资源列表;基于MPI标准,并根据所述可用资源列表执行当前任务的资源调度。本发明根据当前任务所需资源和集群内各计算机的资源剩余信息生成可用资源列表;根据所述可用资源列表执行当前任务的资源调度,实现了MPI框架上的资源调度能力,将客户端基于mpich之上进行了封装,对本就高效的MPI框架集成上了资源调度的能力,可以自动化的调度集群内的资源使用,能有效避免集群资源的浪费、倾斜以及冲突。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种基于MPI的集群资源调度方法、装置、电子设备、系统及计算机可读介质。
背景技术
MPI(Message Passing Interface,消息传递接口)是一个基于消息传递的并行计算框架,其能够完成并行机的进程间通讯。MPI在今天仍为高性能计算的主要模型。目前MPI广泛用于互联网企业的广告算法和迭代算法,大型互联网公司通常有成百上千的MPI计算集群。
但是MPI框架本身不含有资源调配的相关功能,如果程序员不手动进行资源调度,会导致在使用集群资源时产生浪费、倾斜以及冲突的可能。
发明内容
本发明旨在解决MPI集群本身无法进行资源调度,在使用集群资源时会产生浪费、倾斜以及冲突的技术问题。
为了解决上述技术问题,本发明第一方面提出一种基于MPI的集群资源调度方法,所述方法包括:
获取集群内各计算机的资源剩余信息;
获取当前MPI任务所需资源;
根据当前任务所需资源和集群内各计算机的资源剩余信息生成基于MPI的可用资源列表;
基于MPI标准,并根据所述可用资源列表执行当前任务的资源调度。
根据本发明一种优选的实施方式,通过时序数据库InfluxDB获取集群内各计算机的资源剩余信息。
根据本发明一种优选的实施方式,所述通过时序数据库InfluxDB获取集群内各计算机的资源剩余信息之前,所述方法还包括:
通过守护进程实时收集集群内各个计算机的资源指标,并将所述资源指标同步到InfluxDB中;
InfluxDB接收并存储所述资源指标。
根据本发明一种优选的实施方式,当接收到当前任务时,获取集群内各计算机的资源剩余信息;
或者,实时获取集群内各计算机的资源剩余信息。
根据本发明一种优选的实施方式,所述可用资源列表包括:集群内可调度的计算机地址,所述根据所述可用资源列表执行当前任务的资源调度包括:
调用mpich并将可用资源列表中可调度的计算机地址作为参数传入mpich;
mpich在所述可调度的计算机中并行执行当前任务。
根据本发明一种优选的实施方式,mpich在所述可调度的计算机中选择执行当前任务的计算机及执行当前任务对每台计算机的资源需求;
执行当前任务的计算机根据所述资源需求隔离出执行当前任务的资源,并在此资源下执行当前任务。
为了解决上述技术问题,本发明第二方面提供一种基于MPI的集群资源调度装置,所述装置包括:
第一获取模块,用于获取集群内各计算机的资源剩余信息;
第二获取模块,用于获取当前MPI任务所需资源;
生成模块,用于根据当前任务所需资源和集群内各计算机的资源剩余信息生成基于MPI的可用资源列表;
执行模块,用于基于MPI标准,并根据所述可用资源列表执行当前任务的资源调度。
根据本发明一种优选的实施方式,所述装置通过时序数据库InfluxDB获取集群内各计算机的资源剩余信息。
根据本发明一种优选的实施方式,所述装置接收到当前任务时,获取集群内各计算机的资源剩余信息;
或者,所述装置实时获取集群内各计算机的资源剩余信息。
根据本发明一种优选的实施方式,所述可用资源列表包括:集群内可调度的计算机地址,所述执行模块具体用于:调用mpich并将可用资源列表中可调度的计算机地址作为参数传入mpich,以便mpich在所述可调度的计算机中并行执行当前任务。
为解决上述技术问题,本发明第三方面提供一种电子设备,包括:
处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行上述的方法。
为解决上述技术问题,本发明第四方面提供一种基于MPI的集群资源调度系统,包括:基于MPI集群中的多个计算机,各个计算机内可以启动守护进程、时序数据库InfluxDB、以及上述的基于MPI的集群资源调度装置。
为了解决上述技术问题,本发明第五方面提出一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,当所述一个或多个程序被处理器执行时,实现上述方法。
本发明通过获取集群内各计算机的资源剩余信息;根据当前任务所需资源和集群内各计算机的资源剩余信息生成可用资源列表;最后根据所述可用资源列表执行当前任务的资源调度,实现了MPI框架上的资源调度能力,将客户端基于mpich之上进行了封装,对本就高效的MPI框架集成上了资源调度的能力,可以自动化的调度集群内的资源使用,能有效避免集群资源的浪费、倾斜以及冲突。
附图说明
为了使本发明所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本发明的具体实施例。但需声明的是,下面描述的附图仅仅是本发明的示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。
图1是本发明一种基于MPI的集群资源调度方法的流程示意图;
图2是本发明基于MPI的集群资源调度方法的示意图;
图3是本发明一种基于MPI的集群资源调度装置的结构框架示意图;
图4是根据本发明的一种电子设备的示例性实施例的结构框图;
图5是本发明一种基于MPI的集群资源调度系统的结构框架示意图;
图6是本发明一个计算机可读介质实施例的示意图。
具体实施方式
现在将参考附图来更加全面地描述本发明的示例性实施例,虽然各示例性实施例能够以多种具体的方式实施,但不应理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例是为了使本发明的内容更加完整,更加便于将发明构思全面地传达给本领域的技术人员。
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的结构、性能、效果或者其他特征可以以任何合适的方式结合到一个或更多其他的实施例中。
在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
本发明实施例中,MPI(Message Passing Interface )是一个用于进程间信息传递的并行编程接口标准,它提供让相关进程之间进行通信,同步等操作的接口。一个MPI程序包含若干个进程,每个MPI进程都运行一份相同的代码,进程的行为由通讯域(communication world)和该通讯域下的id(rank id)所决定。MPI采用将同一程序运行在众多进程上的方式来实现,这些进程不仅可以处于同一个共享内存架构的计算机中,也可以寻找在众多进程上的方式来实现。每个进程都拥有各种的数据,在不需要通讯时,各个进程异步地运行相同的代码,对不同的数据进行相似的处理,在需要访问其他进程上的数据时,通过MPI标准中定义的数据通讯函数对数据进行迁移和处理,也可以对操作进行同步。
本发明实施例中,定义collectd为一个守护进程,用来定期收集系统和应用程序的性能指标,同时提供了以不同的方式来存储这些指标值的机制。从而实时获取对集群内各计算机的资源剩余信息。
MPICH是MPI的一个重要实现,通过安装MPICH构建MPI编程环境,从而进行并行程序的开发。MPICH包括MPICH、MPICH2、MPICH3、IntelMPI、MVAPICH、MVAPICH2。
本发明的客户端(以下称为mpi-booster)基于MPI的实现之上进行了封装,从而可以将资源调度的能力集成于MPI框架中。
请参阅图1,图1是本发明提供的一种基于MPI的集群资源调度方法的流程图,其中,基于MPI的集群是指通过MPI标准中定义的数据通讯函数进行多进程通讯的计算机形成集群。如图1所示,所述方法包括:
S1、获取集群内各计算机的资源剩余信息;
本发明实施例中,mpi-booster通过时序数据库InfluxDB获取集群内各计算机的资源剩余信息。具体的,先通过守护进程collectd实时收集集群内各个计算机的资源指标,并将所述资源指标同步到时序数据库InfluxDB中;InfluxDB接收并存储所述资源指标。mpi-booster再从时序数据库InfluxDB中获取集群内各计算机的资源剩余信息。
其中,守护进程collectd是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件,不需要用户输入就能运行而且提供某种服务。本发明实施例中,collectd用来定期收集系统和应用程序的性能指标,同时提供了以不同的方式来存储这些指标值的机制。具体的,collectd实时收集集群内各个计算机的资源指标,并将这些资源指标同步到时序数据库InfluxDB中。InfluxDB是为时间序列数据专门编写的自定义高性能数据存储,通常用于涉及大量时间戳数据的监控和统计。本发明通过InfluxDB来实时监控和统计各个计算机的资源指标。
本发明实施例中,所述资源可以包括:CPU、内存、硬盘等。对应的,所述资源指标可以包括:当前CPU的剩余几核、当前内存剩余容量,当前内置硬盘和/或移动硬盘的剩余容量等。在这种方式中,所述资源剩余信息与对应的资源指标相同,所述资源剩余信息可以包括:当前CPU的剩余几核、当前内存剩余容量,当前内置硬盘和/或移动硬盘的剩余容量等。
如图2所示,集群内包含多个node节点,在每个node节点中通过守护进程collectd实时收集集群内各个计算机的资源指标,并将所述资源指标同步到时序数据库InfluxDB中,因此,InfluxDB中存储着各个计算机实时的资源指标;mpi-booster通过时序数据库InfluxDB可以获取集群内各计算机实时的资源剩余信息。在一种方式中,当mpi-booster接收到当前任务时,再从时序数据库InfluxDB内获取集群内各计算机当前的资源剩余信息。在另一种方式中,mpi-booster实时获取集群内各计算机的资源剩余信息,当接收到当前任务时,可以直接得到集群内各个计算机当前的资源剩余信息。
S2、获取当前MPI任务所需资源;
本发明实施例中,本发明实施例中,将MPI任务通过命令行或者管理界面提交至mpi-booster。其中,MPI任务采用MPI任务包的形式,包括MPI运行程序和运行配置信息。运行配置信息包括MPI任务所需资源,如运行所述MPI任务要占的CPU、内存等资源,还可以包括MPI任务优先级配置、启动时间、超时时间、计算数据下载信息、账号信息和安全权限等信息中的至少一种。mpi-booster接收到当前MPI任务包后,通过解析当前MPI任务包获得运行配置信息中的当前MPI任务所需资源。
在一种优选的实施方式中,mpi-booster可以以任务队列的方式存放提交的MPI任务,可以按照先进先出或者MPI任务的优先级设置任务队列。这样,MPI任务以任务队列的方式依次获取所需资源并执行,避免了多个任务同时运行争抢资源的情况,提高了任务管理的有效性。进一步,还可以实时记录并显示任务队列中MPI任务的执行状态,如:待执行、执行完成、执行异常、任务终止等,通过命令行或者界面操作对MPI任务的执行状态可以发出事件响应。比如,通过命令行取消任务队列中待执行的一个或多个MPI任务。这样可以在不影响正常任务的情况下及时停止异常的任务,提高系统的纠错能力。
S3、根据当前任务所需资源和集群内各计算机的资源剩余信息生成基于MPI的可用资源列表;
其中,基于MPI的可用资源列表是指可以通过MPI标准中定义的数据通讯函数进行多进程通讯,从而实现多机并行的可用资源列表。本发明通过MPI标准中定义的数据通讯函数进行多进程通讯的计算机形成集群,则所述基于MPI的可用资源列表包括:集群内可调度的计算机地址。
所述集群内可调度的计算机地址可以通过当前任务所需资源和集群内各计算机的资源剩余信息来确定。具体可以将当前任务所需资源分为N份子任务,若在集群内能找到大于等于N个数量的计算机,其中每个计算机的资源剩余量均大于等于最小子任务所需资源,则这大于N个数量的计算机对应的地址是集群内可调度的计算机地址,将其存入所述基于MPI的可用资源列表中。其中,优选将当前任务平均分为N份子任务。若在集群内未能找到至少N个计算机的资源剩余量均大于等于最小子任务所需资源,则调整子任务所需资源量和子任务的个数,直至在集群内能找到大于等于子任务数量的计算机,且各个计算机的资源剩余量均大于等于最小子任务所需资源为止。
以集群中包含100个计算机为例,当前任务所需资源为:CPU12核*30,内存70*30,硬盘300*30,则采用优选方式将当前任务平均分为30个子任务,若集群中能找到大于等于30个计算机,其中各个计算机的剩余资源大于等于CPU12核,内存70,硬盘300,则将这大于等于30个计算机地址存入基于MPI的可用资源列表。若集群中未能找到至少30个计算机的剩余资源大于等于CPU12核,内存70,硬盘300,调整子任务所需资源量和子任务的个数,直至在集群内能找到大于等于子任务数量的计算机,且各个计算机的资源剩余量均大于等于最小子任务所需资源为止。示例性的,在集群中未能找到至少30个计算机的剩余资源大于等于CPU12核,内存70,硬盘300,将当前任务分为CPU12核*20,内存70*20,硬盘300*20,以及CPU6核*20,内存35*20,硬盘150*20,集群中能找到24个计算机的剩余资源大于等于CPU12核,内存70,硬盘300,以及27个计算机的剩余资源大于等于CPU6核,内存35,硬盘150,则将这51个计算机地址存入基于MPI的可用资源列表。
S4、基于MPI标准,并根据所述可用资源列表执行当前任务的资源调度。
具体的,如图2所示,基于MPI标准,mpi-booster调用mpich并将可用资源列表中可调度的计算机地址作为hosts参数传入mpich;mpich在所述可调度的计算机中并行执行当前任务。
本发明实施例中,mpich在所述可调度的计算机中选择执行当前任务的计算机及执行当前任务对每台计算机的资源需求;优选的,mpich选取剩余资源与子任务所需资源量最接近的可调度计算机执行当前任务,则执行当前任务对每台计算机的资源需求与其对应子任务所需资源量相同。例如,当前任务所需资源为:CPU12核*30,内存70*30,硬盘300*30,则采用优选方式将当前任务平均分为30个子任务,基于MPI的可用资源列表包括:剩余资源量为CPU12核,内存80,硬盘350的20个计算机地址,剩余资源量为CPU15核,内存80,硬盘400的10个计算机地址,剩余资源量为CPU20核,内存90,硬盘400的8个计算机地址;则mpich选取剩余资源量为CPU12核,内存80,硬盘350的20个计算机以及剩余资源量为CPU15核,内存80,硬盘400的10个计算机作为执行当前任务的计算机,执行当前任务对每台计算机的资源需求为30个子任务所需资源:CPU12核,内存70,硬盘300。
执行当前任务的计算机根据所述资源需求隔离出执行当前任务的资源,并在此资源下执行当前任务。具体可以使用操作系统或虚拟机的资源隔离技术。比如Linux体系的Linux容器(LXC,LinuXcontainers)和控制组(Cgroup,Conrtol group)。
图3是本发明一种基于MPI的集群资源调度装置的架构示意图,如图3所示,所述装置包括:
第一获取模块31,用于获取集群内各计算机的资源剩余信息;
第二获取模块32,用于获取当前MPI任务所需资源;
生成模块33,用于根据当前任务所需资源和集群内各计算机的资源剩余信息生成基于MPI的可用资源列表;
执行模块34,用于基于MPI标准,并根据所述可用资源列表执行当前任务的资源调度。
在一种具体实施方式中,所述装置通过时序数据库InfluxDB获取集群内各计算机的资源剩余信息。
可选的,所述装置接收到当前任务时,获取集群内各计算机的资源剩余信息;或者,所述装置实时获取集群内各计算机的资源剩余信息。
在一种具体实施方式中,所述可用资源列表包括:集群内可调度的计算机地址,所述执行模块34具体用于:调用mpich并将可用资源列表中可调度的计算机地址作为参数传入mpich,以便mpich在所述可调度的计算机中并行执行当前任务。
本领域技术人员可以理解,上述装置实施例中的各模块可以按照描述分布于装置中,也可以进行相应变化,分布于不同于上述实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的实体形式的实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
图4是根据本发明的一种电子设备的示例性实施例的结构框图。图4显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,该示例性实施例的电子设备400以通用数据处理设备的形式表现。电子设备400的组件可以包括但不限于:至少一个处理单元410、至少一个存储单元420、连接不同电子设备组件(包括存储单元420和处理单元410)的总线430、显示单元440等。
其中,所述存储单元420存储有计算机可读程序,其可以是源程序或都只读程序的代码。所述程序可以被处理单元410执行,使得所述处理单元410执行本发明各种实施方式的步骤。例如,所述处理单元410可以执行如图1所示的步骤。
所述存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(ROM)4203。所述存储单元420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作电子设备、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备400也可以与一个或多个外部设备300(例如键盘、显示器、网络设备、蓝牙设备等)通信,使得用户能经由这些外部设备300与该电子设备400交互,和/或使得该电子设备400能与一个或多个其它数据处理设备(例如路由器、调制解调器等等)进行通信。这种通信可以通过输入/输出(I/O)接口450进行,还可以通过网络适配器460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)进行。网络适配器460可以通过总线430与电子设备400的其它模块通信。应当明白,尽管图4中未示出,电子设备400中可使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID电子设备、磁带驱动器以及数据备份存储电子设备等。
图5是本发明一种基于MPI的集群资源调度系统的结构框架示意图,如图5所示,该系统包括:基于MPI集群中的多个计算机51,各个计算机内可以启动守护进程52、时序数据库53、以及图3所示的基于MPI的集群资源调度装置54。其中,守护进程52实时收集基于MPI集群内各个计算机51的资源指标,并将所述资源指标同步到时序数据库53中;序数据库53接收并存储所述资源指标。基于MPI的集群资源调度装置54再从时序数据库53中获取集群内各计算机的资源剩余信息,并根据当前任务所需资源及集群内各计算机的资源剩余信息执行当前任务的资源调度。
图6是本发明的一个计算机可读介质实施例的示意图。如图6所示,所述计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的电子设备、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。当所述计算机程序被一个或多个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:获取集群内各计算机的资源剩余信息;获取当前MPI任务所需资源;根据当前任务所需资源和集群内各计算机的资源剩余信息生成基于MPI的可用资源列表;基于MPI标准,并根据所述可用资源列表执行当前任务的资源调度。
通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台数据处理设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行电子设备、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语音的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语音包括面向对象的程序设计语音—诸如Java、C++等,还包括常规的过程式程序设计语音—诸如“C”语音或类似的程序设计语音。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本发明可以执行计算机程序的方法、装置、电子设备或计算机可读介质来实现。可以在实践中使用微处理器或者数字信号处理器(DSP)等通用数据处理设备来实现本发明的一些或者全部功能。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于MPI的集群资源调度方法,其特征在于,执行该方法的客户端基于MPI的实现之上进行了封装,将资源调度的能力集成于MPI框架中,所述方法包括:
通过时序数据库InfluxDB获取集群内各计算机的资源剩余信息;所述集群包含多个node节点,在每个node节点中通过守护进程collectd实时收集集群内各个计算机的资源指标,并将所述资源指标同步到时序数据库InfluxDB中;
获取当前MPI任务所需资源;其中,以任务队列的方式存放提交的MPI任务,按照先进先出或者MPI任务的优先级设置任务队列;
根据当前任务所需资源和集群内各计算机的资源剩余信息生成基于MPI的可用资源列表;所述基于MPI的可用资源列表是指可以通过MPI标准中定义的数据通讯函数进行多进程通讯,从而实现多机并行的可用资源列表;具体将当前任务所需资源分为N份子任务,若在集群内能找到大于等于N个数量的计算机,其中每个计算机的资源剩余量均大于等于最小子任务所需资源,则这大于N个数量的计算机对应的地址是集群内可调度的计算机地址,将其存入所述基于MPI的可用资源列表中;若在集群内未能找到至少N个计算机的资源剩余量均大于等于最小子任务所需资源,则调整子任务所需资源量和子任务的个数,直至在集群内能找到大于等于子任务数量的计算机,且各个计算机的资源剩余量均大于等于最小子任务所需资源为止;
基于MPI标准,调用mpich并将可用资源列表中可调度的计算机地址作为参数传入mpich;mpich在所述可调度的计算机中选取剩余资源与子任务所需资源量最接近的可调度计算机并行执行当前任务。
2.根据权利要求1所述的方法,其特征在于,所述通过时序数据库InfluxDB获取集群内各计算机的资源剩余信息之前,所述方法还包括:
InfluxDB接收并存储所述资源指标。
3.根据权利要求1所述的方法,其特征在于,当接收到当前任务时,获取集群内各计算机的资源剩余信息;
或者,实时获取集群内各计算机的资源剩余信息。
4.根据权利要求1所述的方法,其特征在于,mpich在所述可调度的计算机中选择执行当前任务的计算机及执行当前任务对每台计算机的资源需求;
执行当前任务的计算机根据所述资源需求隔离出执行当前任务的资源,并在此资源下执行当前任务。
5.一种基于MPI的集群资源调度装置,其特征在于,所述装置基于MPI的实现之上进行了封装,将资源调度的能力集成于MPI框架中,所述装置包括:
第一获取模块,用于通过时序数据库InfluxDB获取集群内各计算机的资源剩余信息;所述集群包含多个node节点,在每个node节点中通过守护进程collectd实时收集集群内各个计算机的资源指标,并将所述资源指标同步到时序数据库InfluxDB中;
第二获取模块,用于获取当前MPI任务所需资源;其中,以任务队列的方式存放提交的MPI任务,按照先进先出或者MPI任务的优先级设置任务队列;
生成模块,用于根据当前任务所需资源和集群内各计算机的资源剩余信息生成基于MPI的可用资源列表;所述基于MPI的可用资源列表是指可以通过MPI标准中定义的数据通讯函数进行多进程通讯,从而实现多机并行的可用资源列表;具体将当前任务所需资源分为N份子任务,若在集群内能找到大于等于N个数量的计算机,其中每个计算机的资源剩余量均大于等于最小子任务所需资源,则这大于N个数量的计算机对应的地址是集群内可调度的计算机地址,将其存入所述基于MPI的可用资源列表中;若在集群内未能找到至少N个计算机的资源剩余量均大于等于最小子任务所需资源,则调整子任务所需资源量和子任务的个数,直至在集群内能找到大于等于子任务数量的计算机,且各个计算机的资源剩余量均大于等于最小子任务所需资源为止;
执行模块,用于基于MPI标准,调用mpich并将可用资源列表中可调度的计算机地址作为参数传入mpich;mpich在所述可调度的计算机中选取剩余资源与子任务所需资源量最接近的可调度计算机并行执行当前任务。
6.一种电子设备,包括:
处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行根据权利要求1-4中任一项所述的方法 。
7.一种基于MPI的集群资源调度系统,包括:基于MPI集群中的多个计算机,各个计算机内可以启动守护进程、时序数据库InfluxDB、以及
根据权利要求5所述的基于MPI的集群资源调度装置。
8.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,当所述一个或多个程序被处理器执行时,实现权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011212657.6A CN112035267B (zh) | 2020-11-03 | 2020-11-03 | 一种基于mpi的集群资源调度方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011212657.6A CN112035267B (zh) | 2020-11-03 | 2020-11-03 | 一种基于mpi的集群资源调度方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035267A CN112035267A (zh) | 2020-12-04 |
CN112035267B true CN112035267B (zh) | 2021-11-12 |
Family
ID=73572824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011212657.6A Active CN112035267B (zh) | 2020-11-03 | 2020-11-03 | 一种基于mpi的集群资源调度方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035267B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116668380B (zh) * | 2023-07-28 | 2023-10-03 | 北京中科网芯科技有限公司 | 汇聚分流器设备的报文处理方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103780655B (zh) * | 2012-10-24 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 一种消息传递接口任务和资源调度系统及方法 |
CN103294485B (zh) * | 2013-06-27 | 2016-07-06 | 曙光信息产业(北京)有限公司 | 用于ABINIT并行计算系统的Web服务封装方法以及系统 |
JP6924083B2 (ja) * | 2017-06-22 | 2021-08-25 | 株式会社日立製作所 | 情報処理システムおよびリソース割り当て方法 |
CN107678752B (zh) * | 2017-08-31 | 2021-09-21 | 北京百度网讯科技有限公司 | 一种面向异构集群的任务处理方法及装置 |
-
2020
- 2020-11-03 CN CN202011212657.6A patent/CN112035267B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112035267A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6849642B2 (ja) | 要求処理技術 | |
JP7275171B2 (ja) | オンデマンドネットワークコード実行システムにおけるオペレーティングシステムカスタマイゼーション | |
Joseph et al. | IntMA: Dynamic interaction-aware resource allocation for containerized microservices in cloud environments | |
US8739171B2 (en) | High-throughput-computing in a hybrid computing environment | |
WO2020123439A1 (en) | Performance-based hardware emulation in an on-demand network code execution system | |
US9875124B2 (en) | Data assignment and data scheduling for physical machine in a virtual machine environment | |
US8429664B2 (en) | Job scheduling apparatus and job scheduling method | |
WO2021159638A1 (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
US7853928B2 (en) | Creating a physical trace from a virtual trace | |
CN109614227B (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
CN109117252B (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
US9063918B2 (en) | Determining a virtual interrupt source number from a physical interrupt source number | |
CN110427258B (zh) | 基于云平台的资源调度控制方法及装置 | |
CN110309108A (zh) | 数据采集及储存方法、装置、电子设备、存储介质 | |
CN115373835A (zh) | Flink集群的任务资源调整方法、装置及电子设备 | |
CN111813522A (zh) | 一种虚拟arinc 653仿真验证平台 | |
CN108984290B (zh) | 任务调度方法和系统 | |
CN112035267B (zh) | 一种基于mpi的集群资源调度方法、装置及系统 | |
CN112256406A (zh) | 作业流程平台化调度方法 | |
CN112307046A (zh) | 数据采集方法和装置、计算机可读存储介质、电子设备 | |
Benini et al. | Resource management policy handling multiple use-cases in mpsoc platforms using constraint programming | |
CN113127225A (zh) | 一种数据处理任务的调度方法、装置和系统 | |
CN112667393B (zh) | 分布式任务计算调度框架搭建的方法、装置及计算机设备 | |
CN117093335A (zh) | 分布式存储系统的任务调度方法及装置 | |
CN113986097A (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 |