CN116755893B - 面向深度学习的分布式计算系统的作业调度方法和装置 - Google Patents
面向深度学习的分布式计算系统的作业调度方法和装置 Download PDFInfo
- Publication number
- CN116755893B CN116755893B CN202311056655.6A CN202311056655A CN116755893B CN 116755893 B CN116755893 B CN 116755893B CN 202311056655 A CN202311056655 A CN 202311056655A CN 116755893 B CN116755893 B CN 116755893B
- Authority
- CN
- China
- Prior art keywords
- job
- database
- data
- priority
- request
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013135 deep learning Methods 0.000 claims abstract description 24
- 230000000977 initiatory effect Effects 0.000 claims abstract description 17
- 238000004364 calculation method Methods 0.000 claims abstract description 6
- 230000004044 response Effects 0.000 claims abstract description 4
- 238000012549 training Methods 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 10
- 238000009499 grossing Methods 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 9
- 230000001419 dependent effect Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
面向深度学习的分布式计算系统的作业调度方法和装置,包括:获取用户输入的作业信息,并存储在数据库中,作业信息包括作业优先级等,并根据作业信息维护一个作业优先级队列;获取集群中各节点的缓存信息;响应于接收到发起作业执行的请求,作业执行根据所述的优先级队列先后顺序执行,将所述作业调度到相应主机节点上执行,执行的结果存储到数据库中;响应于接收到模型更新作业的请求,在所述数据库中查询所述作业所需的数据,计算作业剩余结束时间,并将计算结果保存到数据库中;响应与接收到更新所述队列请求,在所述数据库中查询所需的数据,并根据所述数据更新所述队列。本发明较少依赖用户输入信息,有效提高作业执行时间预测精度。
Description
技术领域
本发明涉及人工智能领域,更具体地涉及面向深度学习的分布式计算系统的作业调度方法和装置。
背景技术
深度学习技术应用对我们生活的各个方面产生了显著了影响,例如人脸识别、语言翻译、广告推荐等。深度学习模型的性能一般与复杂的神经网络结构有很大关系,可能包含成千上万亿模型参数。训练一个生产模型可能需要数千亿次的计算,消耗大量的GPU/CPU算力资源。因此,研究机构、人工智能公司和云提供商通常会构建大规模的算力集群平台来促进深度学习模型的开发。通常,这些集群以多租户的方式进行管理,通过资源调控和访问控制,为用户提供不同的服务。作业调度器是管理资源和调度作业的重要部件,决定了整个集群的资源利用率和作业性能,影响运营成本和用户体验。
在典型的集群作业调度策略中,利用机器学习模型对历史数据(包括作业名称、用户、GPU需求、提交时间等)进行分析,来预测作业的运行时间。这些典型调度策略中,基于两个假设特征:1)大多数作业时重复或者再次出现;2)相同或者相似的作业执行始终一致。但是根据现有的研究表明:只有40%-60%的作业是重复的,同一个作业在不同的机器执行并不一致。基于历史的数据对作业结束时间进行预测的精度较差,从而导致作业调度效果不佳、资源利用率不高等问题。
发明内容
本发明要解决现有调度程序中的作业结束时间预测精度较差的问题,提供面向深度学习的分布式计算系统的作业调度方法和装置。
为实现上述目的,本发明提供了一种分布式计算系统的调度方法、装置、设备、存储介质、以及计算机程序产品。
根据本发明的第一方面,提了面向深度学习的分布式计算系统的作业调度方法,包括:
S1.获取用户输入的作业信息,并存储在数据库中,作业信息包括作业名称、类型、所需的资源、作业执行参数、作业提交时间;
S2.获取集群中各节点的缓存信息,并存储在数据库中,其中缓存信息包括主机节点标识、状态、数据源标识;
S3.响应和接收到发起作业执行的请求,作业执行根据所述资源数量和所述获取的节点缓存信息,分配到匹配的计算节点,并给作业分配一个优先级,根据所述优先级维护待执行作业队列;
S4.所述的计算节点根据作业优先级按照时间片方式执行作业,所述作业根据固定时间执行完成后被挂起,并将结果存储在数据库中同时发起模型更新请求;所述结果包括模型训练的损失值、模型训练时间、模型迭代步数。
S5.响应和接收到模型更新作业的请求,在所述数据库中查询所述作业所需的数据,计算作业剩余结束时间,并将计算结果保存在数据库中同时发起队列优先级更新请求;
进一步,所述计算作业剩余结束时间步骤包括:在每次训练步骤后,收集一组训练损失数据点(k,l);对数据进行预处理即对数据进行平滑处理;用非负最小二乘(NNLS)求解器找到最佳系数以拟合迄今为止收集的损失点;使用拟合的损失模型和预定义的收敛阈值δ,计算作业实现收敛所需的总迭代数,以及从现在开始到收敛所需的迭代数;基于每次迭代的batch size、每次迭代的时间估计出该作业结束时间。
S6.响应与接收到更新所述队列请求,在所述数据库中查询所需的数据,并根据所述数据判断作业是否结束,如所述作业结束,结束相关作业,并将该作业从所述作业队列中删除;如果该作业未结束,更新该作业优先级,然后回到S4,进行下一轮作业执行。
进一步,步骤S1所述的作业执行参数包括:模型训练的batch size、初始学习率、使用数据集路径。
进一步,步骤S3所述的分配作业到匹配的计算节点包括:首先将作业分配到满足条件的闲置资源,若无满足条件的闲置资源,寻找满足条件且待执行作业队列最短的资源;
步骤S3所述的优先级分配规则是:对于计算资源上无正在执行的作业,新作业优先级最高,对于计算资源上存在正在执行的作业,新作业的优先级次高。
进一步,步骤S5所述计算作业结束的剩余时间包括以下子步骤:
(5.1)在每次训练步骤后,收集一组训练损失数据点(k,l);
(5.2)对数据进行预处理即对数据进行平滑处理;
(5.3)使用非负最小二乘(NNLS)求解器找到最佳系数以拟合迄今为止收集的损失点;
(5.4)使用拟合的损失模型和预定义的收敛阈值δ,计算作业实现收敛所需的总迭代数,以及从现在开始到收敛所需的迭代数;
(5.5)基于每次迭代的batch size、每次迭代的时间估计出该作业结束的剩余时间。
根据本发明的第二方面,提了一种面向深度学习的分布式计算系统的作业调度装置,包括:
获取单元,被配置成获取集群中各节点的缓存信息、用户输入的作业信息,其中缓存信息包括主机节点标识、状态、数据源标识,作业信息包括作业名称、类型、所需的资源、作业执行参数、作业提交时间;
作业单元,被配置成响应于接收到发起执行作业的请求、执行模型更新的请求、执行更新作业优先队列的请求;
查询单元,被配置成在所述数据库中查询所述作业所需的数据;
调度单元,被配置成将所述作业调度到查询到的缓存信息的主机或者被指定的主机节点上执行。
根据本发明的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够实现第一方面所述的面向深度学习的分布式计算系统的作业调度方法。
根据本发明的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面所述的面向深度学习的分布式计算系统的作业调度方法。
根据本发明的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面所述的面向深度学习的分布式计算系统的作业调度方法。
从以上技术方案可以看出,本发明具有以下优点:
本发明通过调度器和模型更新引擎两个重要组件,利用深度学习作业迭代性特性,根据数学建模方式更新作业的预测时间,较少依赖用户输入信息,有效提高作业执行时间预测精度;本发明的相应的动态更新作业优先级,利用抢占机制,动态地执行作业,可以提高整个集群资源利用率,减少作业平均完成时间。
附图说明
附图用于更好地理解本方案,不构成对本发明的限定。其中:
图1是本发明的一个实施例可以应用于其中的示例性系统架构图;
图2是本发明的分布式计算调度方法的一个实施例流程图;
图3是本发明的分布式调度方法中的新作业分配到计算节点实施例流程流程图;
图4是本发明的分布式调度方法中的模型预测方法的一个实施例流程图;
图5是本发明的系统的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
实施例1
本实施例提供的面向深度学习的分布式计算系统的作业调度方法,包括:
S1.获取用户输入的作业信息,并存储在数据库中,作业信息包括作业名称、类型、所需的资源、作业执行参数、作业提交时间;步骤S1所述的作业执行参数包括:模型训练的batch size、初始学习率、使用数据集路径。
S2.获取集群中各节点的缓存信息,并存储在数据库中,其中缓存信息包括主机节点标识、状态、数据源标识;
S3.响应和接收到发起作业执行的请求,作业执行根据所述资源数量和所述获取的节点缓存信息,分配到匹配的计算节点,并给作业分配一个优先级,根据所述优先级维护待执行作业队列;
所述的分配作业到匹配的计算节点包括:首先将作业分配到满足条件的闲置资源,若无满足条件的闲置资源,寻找满足条件且待执行作业队列最短的资源;
所述的优先级分配规则是:对于计算资源上无正在执行的作业,新作业优先级最高,对于计算资源上存在正在执行的作业,新作业的优先级次高。
S4.所述的计算节点根据作业优先级按照时间片方式执行作业,所述作业根据固定时间执行完成后被挂起,并将结果存储在数据库中同时发起模型更新请求;所述结果包括模型训练的损失值、模型训练时间、模型迭代步数。
S5.响应和接收到模型更新作业的请求,在所述数据库中查询所述作业所需的数据,计算作业剩余结束时间,并将计算结果保存在数据库中同时发起队列优先级更新请求;
所述计算作业剩余结束时间步骤包括:在每次训练步骤后,收集一组训练损失数据点(k,l);对数据进行预处理即对数据进行平滑处理;用非负最小二乘(NNLS)求解器找到最佳系数以拟合迄今为止收集的损失点;使用拟合的损失模型和预定义的收敛阈值δ,计算作业实现收敛所需的总迭代数,以及从现在开始到收敛所需的迭代数;基于每次迭代的batch size、每次迭代的时间估计出该作业结束时间。
步骤S5所述计算作业结束的剩余时间包括以下子步骤:
(5.1)在每次训练步骤后,收集一组训练损失数据点(k,l);
(5.2)对数据进行预处理即对数据进行平滑处理;
(5.3)使用非负最小二乘(NNLS)求解器找到最佳系数以拟合迄今为止收集的损失点;
(5.4)使用拟合的损失模型和预定义的收敛阈值δ,计算作业实现收敛所需的总迭代数,以及从现在开始到收敛所需的迭代数;
(5.5)基于每次迭代的batch size、每次迭代的时间估计出该作业结束的剩余时间。
S6.响应与接收到更新所述队列请求,在所述数据库中查询所需的数据,并根据所述数据判断作业是否结束,如所述作业结束,结束相关作业,并将该作业从所述作业队列中删除;如果该作业未结束,更新该作业优先级,然后回到S4,进行下一轮作业执行。
图1示出了可以应用本发明的分布式计算系统调度方法或者分布式计算系统调度装置的实施例的示例性体统架构。
如图1所示,系统架构可以包含服务器、客户端、数据库、数据源。网络用以在服务器、主机节点、数据源、数据库之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
系统架构是通用的计算架构,可采用kubernetes。服务器上提供作业的发起、调度、数据库管理等服务。kubernetes,简称k8s,是用8代替名字中间的8个字符“kubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是让部署容器化的应用简单并且高效(powerful) ,kubernetes提供了应用部署,规划,更新,维护的一种机制。
传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。
新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。
容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,这更便于监控和管理。
数据库用于存储服务器调度、管理所需要的数据,例如,缓存数据、训练数据、模型数据、调度信息等。
需要说明的是,本发明的实施例所提供的分布式计算系统调度方法一般由服务器执行,相应地,分布式计算系统调度装置一般设置于服务器中。
应该理解,图1中的服务器、数据库、计算节点、作业数目仅仅是示意性的。根据现实需要,相应的数量会做出调整。
继续参考图2,图2示出了根据本发明的面向深度学习分布式计算系统的作业调度方法的流程,包括以下步骤:
步骤201,调度器获取用户输入的作业需要的计算资源、模型训练参数并存储在数据库中;
步骤202,调度器获取集群中各节点的缓存信息,并存储在数据库中;
步骤203,调度器相应和接收用户发起执行作业的请求,根据输入的作业所需要的计算资源和获取到的计算节点信息,匹配到相应的计算节点,给作业赋予优先级,并根据优先级维护待执行作业队列;参考图3,图3示出了调度器如何分配作业和给作业赋予优先级流程。
步骤204,计算节点根据作业的优先级,按照固定时间片方式执行作业,作业根据固定时间执行完成后被挂起,并将作业执行结果存储在数据库中同时发起作业结束时间预测请求;
步骤205,模型更新引擎接收和响应作业结束时间的预测请求,从数据库中提取所需的数据,利用数据模型预测作业结束的剩余时间并将预测结果存储在数据库中同时发起队列优先级更新请求。该数学模型的建立主要是基于以下发现:大多数深度的学习作业使用SGD更新参数并逼近最优参数值,由于SGD的收敛速度与迭代次数k成O(1/k)的关系,因此可以建立如下模型来拟合损失曲线:
其中,l是训练误差,k是迭代次数,是非负系数。参考图4,图4示出了根据本发明的模型更新引擎的工作流程;
步骤206,调度器响应和接收队列优先级更新请求,在数据库中查询所需的数据,并根据数据判断作业是否结束,如所述作业结束,结束相关作业,并将该作业从待执行作业队列中删除;如果该作业未结束,更新该作业优先级,然后回到步骤204,进行下一轮作业执行。
对调度器如何分配作业和给作业赋予优先级流程说明如下:
步骤301,待执行的作业被用户提交执行;
步骤302,调度器会根据用户提交的作业所需要的计算资源和获取到的计算节点信息判断集群中是否存在空余节点满足作业的资源需求;
步骤303,若集群中存在空余节点满足作业的资源需求,该作业会被分配到满足作业的资源需求的空余节点上执行,作业的优先级会被设置成最高;若不存在空余节点满足作业的资源需求,作业会被分配到满足作业的资源需求的且待执行作业队列最短的节点执行,作业的优先级会被设置成次高。
参照图4,对模型模型更新引擎的工作流程说明如下:
步骤401,在每次训练步骤后,收集一组训练损失数据点(k,l);
步骤402,对数据进行预处理即对数据进行平滑处理;
步骤403,并使用非负最小二乘(NNLS)求解器找到最佳系数以拟合迄今为止收集的损失点;
步骤404,使用拟合的损失模型和预定义的收敛阈值δ,计算作业实现收敛所需的总迭代数,以及从现在开始到收敛所需的迭代数;
步骤405,基于每次迭代的batch size、每次迭代的时间估计出该作业结束时间。
实施例2
本实施例提供一种应用本发明的面向深度学习的分布式计算系统的作业调度方法的人脸识别方法,不失一般性,人脸识别作业用DeepFace、FaceNet、CenterLoss作为训练模型,训练数据集采用LFW数据集,在单机八卡配置上训练,即8个计算节点;
包括如下步骤:
步骤S0:将初始模型以及数据同步分发至8个计算节点。
S1.获取用户输入的作业信息,并存储在数据库中,作业信息包括作业名称、类型、所需的资源、作业执行参数、作业提交时间;步骤S1所述的作业执行参数包括:模型训练的batch size、初始学习率、使用数据集路径。
S2.获取集群中各节点的缓存信息,并存储在数据库中,其中缓存信息包括主机节点标识、状态、数据源标识;
S3.响应和接收到发起作业执行的请求,作业执行根据所述资源数量和所述获取的节点缓存信息,分配到匹配的计算节点,并给作业分配一个优先级,根据所述优先级维护待执行作业队列;
所述的分配作业到匹配的计算节点包括:首先将作业分配到满足条件的闲置资源,若无满足条件的闲置资源,寻找满足条件且待执行作业队列最短的资源;
所述的优先级分配规则是:对于计算资源上无正在执行的作业,新作业优先级最高,对于计算资源上存在正在执行的作业,新作业的优先级次高。
S4.所述的计算节点根据作业优先级按照时间片方式执行作业,所述作业根据固定时间执行完成后被挂起,并将结果存储在数据库中同时发起模型更新请求;所述结果包括模型训练的损失值、模型训练时间、模型迭代步数。
S5.响应和接收到模型更新作业的请求,在所述数据库中查询所述作业所需的数据,计算作业剩余结束时间,并将计算结果保存在数据库中同时发起队列优先级更新请求;
所述计算作业剩余结束时间步骤包括:在每次训练步骤后,收集一组训练损失数据点(k,l);对数据进行预处理即对数据进行平滑处理;用非负最小二乘(NNLS)求解器找到最佳系数以拟合迄今为止收集的损失点;使用拟合的损失模型和预定义的收敛阈值δ,计算作业实现收敛所需的总迭代数,以及从现在开始到收敛所需的迭代数;基于每次迭代的batch size、每次迭代的时间估计出该作业结束时间。
步骤S5所述计算作业结束的剩余时间包括以下子步骤:
(5.1)在每次训练步骤后,收集一组训练损失数据点(k,l);
(5.2)对数据进行预处理即对数据进行平滑处理;
(5.3)使用非负最小二乘(NNLS)求解器找到最佳系数以拟合迄今为止收集的损失点;
(5.4)使用拟合的损失模型和预定义的收敛阈值δ,计算作业实现收敛所需的总迭代数,以及从现在开始到收敛所需的迭代数;
(5.5)基于每次迭代的batch size、每次迭代的时间估计出该作业结束的剩余时间。
S6.响应与接收到更新所述队列请求,在所述数据库中查询所需的数据,并根据所述数据判断作业是否结束,如所述作业结束,结束相关作业,并将该作业从所述作业队列中删除;如果该作业未结束,更新该作业优先级,然后回到S4,进行下一轮作业执行。
S7.经过多轮的作业执行后,DeepFace、FaceNet、CenterLoss的损失函数值趋于稳定,模型收敛,作业执行完成。
S8. 训练好的DeepFace、FaceNet、CenterLoss模型部署到专门人脸识别系统相应的计算节点,当人脸识别任务到达该识别系统时,根据用户需求执行人脸识别任务。
在利用面向深度学习的分布式计算系统的作业调度方法对深度学习作业调度后,DeepFace、FaceNet、CenterLoss模型总训练时间减少,集群使用成本降低。
实施例3
参照图5,本实施例涉及用以实现实施例1的方法的面向深度学习的分布式计算系统的作业调度装置,包括:
获取单元,被配置成获取集群中各节点的缓存信息、用户输入的作业信息,其中缓存信息包括主机节点标识、状态、数据源标识,作业信息包括作业名称、类型、所需的资源、作业执行参数、作业提交时间;
作业单元,被配置成响应于接收到发起执行作业的请求、执行模型更新的请求、执行更新作业优先队列的请求;
查询单元,被配置成在所述数据库中查询所述作业所需的数据;
调度单元,被配置成将所述作业作业调度到查询到的缓存信息的主机或者被指定的主机节点上执行。
实施例4
本实施例提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行实施例1所述的面向深度学习的分布式计算系统的作业调度方法。
在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所示的方法。当然,除了软件实现方式之外,本发明并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(ProgrammableLogic Device, PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(HardwareDescription Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(AdvancedBoolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(JavaHardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby HardwareDescription Language)等,目前最普遍使用的是VHDL(Very-High-Speed IntegratedCircuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
实施例5
本实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行实施例1所述的面向深度学习的分布式计算系统的作业调度方法。
实施例6
本实施例提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现实施例1所述的面向深度学习的分布式计算系统的作业调度方法。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (7)
1.面向深度学习的分布式计算系统的作业调度方法,包括以下步骤:
S1.获取用户输入的作业信息,并存储在数据库中,作业信息包括作业名称、类型、所需的资源、作业执行参数、作业提交时间;所述的作业执行参数包括:
模型训练的batch size、初始学习率、使用数据集路径;
S2.获取集群中各节点的缓存信息,并存储在数据库中,其中缓存信息包括主机节点标识、状态、数据源标识;
S3.响应和接收发起作业执行的请求,在数据库中查询作业所需的资源的数量和节点的缓存信息,作业执行根据查询数据,分配到匹配的计算节点,并给作业分配一个优先级,根据所述优先级维护待执行作业队列;
S4.计算节点根据作业的优先级按照时间片方式执行作业,作业根据固定时间执行完成后被挂起,并将作业执行结果存储在数据库中同时发起模型更新作业的请求;所述的作业执行结果,包括:模型训练的损失值、模型训练时间、模型迭代步数;
S5.响应和接收模型更新作业的请求,在数据库中查询作业所需的数据,计算作业结束的剩余时间,并将计算结果保存在数据库中同时发起队列优先级更新请求;所述的计算作业结束的剩余时间包括以下子步骤:
(5.1)在每次训练步骤后,收集一组训练损失数据点(k,l);其中,k是迭代次数,l是训练误差;
(5.2)对数据进行预处理即对数据进行平滑处理;
(5.3)使用非负最小二乘(NNLS)求解器找到最佳系数以拟合迄今为止收集的损失点;
(5.4)使用拟合的损失模型和预定义的收敛阈值δ,计算作业实现收敛所需的总迭代数,以及从现在开始到收敛所需的迭代数;
(5.5)基于每次迭代的batch size、每次迭代的时间估计出该作业结束的剩余时间;
S6.响应和接收队列优先级更新请求,在数据库中查询所需的数据,并根据数据判断作业是否结束,如所述作业结束,结束相关作业,并将该作业从待执行作业队列中删除;如果该作业未结束,更新该作业优先级,然后回到S4,进行下一轮作业执行。
2.根据权利要求1所述的面向深度学习的分布式计算系统的作业调度方法,其特征在于,步骤S3所述的分配到匹配的计算节点,系分配到满足条件的最合适资源,包括:
首先将作业分配到满足条件的闲置资源;
若无满足条件的闲置资源,寻找满足条件且待执行作业队列最短的资源。
3.根据权利要求1所述的面向深度学习的分布式计算系统的作业调度方法,其特征在于,步骤S3所述的给作业分配一个优先级的具体方式是:
若计算资源上无正在执行的作业,新作业优先级最高;
若计算资源上存在正在执行的作业,新作业的优先级次高。
4.一种面向深度学习的分布式计算系统的作业调度装置,其特征在于,包括:
获取单元,被配置成获取集群中各节点的缓存信息、用户输入的作业信息,包括:获取用户输入的作业信息,并存储在数据库中,作业信息包括作业名称、类型、所需的资源、作业执行参数、作业提交时间;获取集群中各节点的缓存信息,并存储在数据库中,其中缓存信息包括主机节点标识、状态、数据源标识;所述的作业执行参数包括:模型训练的batchsize、初始学习率、使用数据集路径;
作业单元,被配置成响应于接收到发起执行作业的请求、执行模型更新的请求、执行更新作业优先队列的请求,包括:响应和接收发起作业执行的请求;计算节点根据作业的优先级按照时间片方式执行作业,作业根据固定时间执行完成后被挂起,并将作业执行结果存储在数据库中同时发起模型更新作业的请求;所述的作业执行结果,包括:模型训练的损失值、模型训练时间、模型迭代步数;响应和接收模型更新作业的请求,计算作业结束的剩余时间,将计算结果保存在数据库中同时发起队列优先级更新请求;响应和接收队列优先级更新请求,根据查询数据判断作业是否结束,如所述作业结束,结束相关作业,并将该作业从待执行作业队列中删除;如果该作业未结束,更新该作业优先级;所述的计算作业结束的剩余时间包括以下子步骤:
(5.1)在每次训练步骤后,收集一组训练损失数据点(k,l);其中,k是迭代次数,l是训练误差;
(5.2)对数据进行预处理即对数据进行平滑处理;
(5.3)使用非负最小二乘(NNLS)求解器找到最佳系数以拟合迄今为止收集的损失点;
(5.4)使用拟合的损失模型和预定义的收敛阈值δ,计算作业实现收敛所需的总迭代数,以及从现在开始到收敛所需的迭代数;
(5.5)基于每次迭代的batch size、每次迭代的时间估计出该作业结束的剩余时间;
查询单元,被配置成在数据库中查询所述作业所需的数据,包括:在数据库中查询作业所需的资源的数量和节点的缓存信息;在数据库中查询作业所需的模型训练的损失值、模型训练时间、模型迭代步数;在数据库中查询作业结束的剩余时间;
调度单元,被配置成将所述作业调度到查询到的缓存信息的主机或者被指定的主机节点上执行,包括:作业执行根据查询数据,分配到匹配的计算节点,并给作业分配一个优先级,根据所述优先级维护待执行作业队列。
5.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至3任一项所述面向深度学习的分布式计算系统的作业调度方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1至3任一项所述的面向深度学习的分布式计算系统的作业调度方法。
7.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1至3任一项所述的面向深度学习的分布式计算系统的作业调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311056655.6A CN116755893B (zh) | 2023-08-22 | 2023-08-22 | 面向深度学习的分布式计算系统的作业调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311056655.6A CN116755893B (zh) | 2023-08-22 | 2023-08-22 | 面向深度学习的分布式计算系统的作业调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116755893A CN116755893A (zh) | 2023-09-15 |
CN116755893B true CN116755893B (zh) | 2023-11-17 |
Family
ID=87953790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311056655.6A Active CN116755893B (zh) | 2023-08-22 | 2023-08-22 | 面向深度学习的分布式计算系统的作业调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116755893B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885389A (zh) * | 2019-02-19 | 2019-06-14 | 山东浪潮云信息技术有限公司 | 一种基于容器的并行深度学习调度训练方法及系统 |
CN110390345A (zh) * | 2018-04-20 | 2019-10-29 | 复旦大学 | 一种基于云平台的大数据集群自适应资源调度方法 |
CN113190351A (zh) * | 2021-05-06 | 2021-07-30 | 天津大学 | 一种面向分布式深度学习训练任务的高效资源分配系统 |
CN113946430A (zh) * | 2021-12-20 | 2022-01-18 | 北京并行科技股份有限公司 | 一种作业调度方法、计算设备及存储介质 |
CN114996001A (zh) * | 2022-05-23 | 2022-09-02 | 杭州电子科技大学 | 一种分布式机器学习任务gpu资源调度分配方法及系统 |
CN115220887A (zh) * | 2022-06-16 | 2022-10-21 | 中国工商银行股份有限公司 | 调度信息的处理方法、任务处理系统、处理器和电子设备 |
CN115640110A (zh) * | 2022-11-07 | 2023-01-24 | 北京百度网讯科技有限公司 | 分布式云计算系统调度方法和装置 |
CN116010064A (zh) * | 2023-01-16 | 2023-04-25 | 北京航空航天大学 | Dag作业调度和集群管理的方法、系统及装置 |
CN116095720A (zh) * | 2023-03-09 | 2023-05-09 | 南京邮电大学 | 基于深度强化学习的网络业务接入和切片资源配置方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920259B (zh) * | 2018-03-30 | 2022-06-24 | 华为云计算技术有限公司 | 深度学习作业调度方法、系统和相关设备 |
-
2023
- 2023-08-22 CN CN202311056655.6A patent/CN116755893B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110390345A (zh) * | 2018-04-20 | 2019-10-29 | 复旦大学 | 一种基于云平台的大数据集群自适应资源调度方法 |
CN109885389A (zh) * | 2019-02-19 | 2019-06-14 | 山东浪潮云信息技术有限公司 | 一种基于容器的并行深度学习调度训练方法及系统 |
CN113190351A (zh) * | 2021-05-06 | 2021-07-30 | 天津大学 | 一种面向分布式深度学习训练任务的高效资源分配系统 |
CN113946430A (zh) * | 2021-12-20 | 2022-01-18 | 北京并行科技股份有限公司 | 一种作业调度方法、计算设备及存储介质 |
CN114996001A (zh) * | 2022-05-23 | 2022-09-02 | 杭州电子科技大学 | 一种分布式机器学习任务gpu资源调度分配方法及系统 |
CN115220887A (zh) * | 2022-06-16 | 2022-10-21 | 中国工商银行股份有限公司 | 调度信息的处理方法、任务处理系统、处理器和电子设备 |
CN115640110A (zh) * | 2022-11-07 | 2023-01-24 | 北京百度网讯科技有限公司 | 分布式云计算系统调度方法和装置 |
CN116010064A (zh) * | 2023-01-16 | 2023-04-25 | 北京航空航天大学 | Dag作业调度和集群管理的方法、系统及装置 |
CN116095720A (zh) * | 2023-03-09 | 2023-05-09 | 南京邮电大学 | 基于深度强化学习的网络业务接入和切片资源配置方法 |
Non-Patent Citations (3)
Title |
---|
Improved Priority Based Job Scheduling Algorithm in Cloud Computing Using Iterative Method;Swachil J. Patel 等;《2014 Fourth International Conference on Advances in Computing and Communications》;全文 * |
异构Hadoop环境下的实时作业调度算法;何曦;张向利;张红梅;;计算机工程与应用(第16期);全文 * |
面向分布式深度学习的集群资源调度优化技术研究;李青坪;《中国优秀硕士学位论文全文数据库信息科技辑》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116755893A (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7138126B2 (ja) | リソース配置を最適化するための適時性リソース移行 | |
Ananthanarayanan et al. | {GRASS}: Trimming stragglers in approximation analytics | |
US10031775B2 (en) | Backfill scheduling for embarrassingly parallel jobs | |
CN104636204B (zh) | 一种任务调度方法与装置 | |
US11704155B2 (en) | Heterogeneous system on a chip scheduler | |
JP6933736B2 (ja) | 知識グラフにおけるデータモデルを取得する方法、装置、機器及び媒体 | |
US10963297B2 (en) | Computational resource management device, computational resource management method, and computer-readable recording medium | |
US11055139B2 (en) | Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster | |
US11500830B2 (en) | Learning-based workload resource optimization for database management systems | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
US11755926B2 (en) | Prioritization and prediction of jobs using cognitive rules engine | |
CN113110914A (zh) | 一种基于微服务架构的物联网平台构建方法 | |
US20210304066A1 (en) | Partitioning for an execution pipeline | |
CN115335821B (zh) | 卸载统计收集 | |
Wang et al. | Design and implementation of an analytical framework for interference aware job scheduling on apache spark platform | |
EP4038501A1 (en) | Resource optimization for serverless query processing | |
CN116057518A (zh) | 使用机器学习模型的自动查询谓词选择性预测 | |
Tchernykh et al. | Mitigating uncertainty in developing and applying scientific applications in an integrated computing environment | |
CN108595251B (zh) | 动态图更新方法、装置、存储引擎接口和程序介质 | |
US9612863B2 (en) | Hardware device for accelerating the execution of a systemC simulation in a dynamic manner during the simulation | |
CN113407343A (zh) | 一种基于资源分配的业务处理方法、装置及设备 | |
CN116755893B (zh) | 面向深度学习的分布式计算系统的作业调度方法和装置 | |
CN110196879B (zh) | 数据处理方法、装置、计算设备及存储介质 | |
CN111198745A (zh) | 容器创建的调度方法、装置、介质及电子设备 | |
US11740933B2 (en) | Heterogeneous system on a chip scheduler with learning agent |
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 |