CN114048027B - 一种应用于超算集群调度的作业运行参数优化方法 - Google Patents
一种应用于超算集群调度的作业运行参数优化方法 Download PDFInfo
- Publication number
- CN114048027B CN114048027B CN202111268933.5A CN202111268933A CN114048027B CN 114048027 B CN114048027 B CN 114048027B CN 202111268933 A CN202111268933 A CN 202111268933A CN 114048027 B CN114048027 B CN 114048027B
- Authority
- CN
- China
- Prior art keywords
- job
- parameter configuration
- test
- application
- parameter
- 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/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种应用于超算集群调度的作业运行参数优化方法,包括:获取用户提交的应用作业,并获取所述应用作业对应的多组不同的作业参数配置;根据设定的参数配置判定条件从多组作业参数配置中筛选最优参数配置;将所述最优参数配置推送给用户,或者,根据所述最优参数配置修改用户提交的应用作业的作业参数配置。本发明实现了超算集群用户提交的应用作业的参数配置的自动优化,弥补了大多数用户不具备参数配置优化能力的缺陷,有利于整体提高超算集群的计算效率。
Description
技术领域
本发明涉及超级计算集群领域,尤其涉及一种应用于超算集群调度的作业运行参数优化方法。
背景技术
在超级计算集群上,运行着例如并不限于VASP等计算软件。用户在提交这些软件的作业时,需设定运行环境参数、运行资源参数、应用自身相关的输入参数等运行参数,特别的,需要指定一个至多个并行参数作为输入参数,例如所需总CPU核心数,或者在具有多层并行结构时,每层分配的并行计算的任务数。用户可以调节这些并行参数,达到在不改变计算结果的情况下,使计算速度显著提高。但是目前,很多软件自身无法仅依据输入文件与系统软硬件环境便预先判断一个接近最优的并行参数。
为了得到更好的计算速度,用户需要手动的多次调节测试这些运行参数,找出其中表现最好的参数。这个调节测试,也需要用户通过提交新作业的形式来完成,这增加了至少一次用户排队的次数。用户为了获得较好的计算速度,大约需要两倍的排队时间。这对用户是一个非常大的不方便,降低了用户进行优化测试的积极性,同时用户能掌握的经验数据有限,也难以获得较好的候选运行参数。此外,用户的测试作业同样消耗了用户自身的机时资源,产生了更多的机时费用,调查显示,做这类优化调试的用户并不多。在当前的集群作业调度系统,例如Slurm、PBS Pro、Platform LSF、或TORQUE中,用户提交一个新作业时,系统仅会忠实的使用用户提交的并行参数进行计算,不会为用户测试速度更快的计算参数,尤其无法自动化的优化修改具体应用的自身输入参数。特别是,当前的超算集群中的计算软件越发趋向多层的并行结构,相应的应用的自身输入参数空间也越发复杂,超算集群用户仅凭少量计算经验很难获得理想的运行速度,这会导致集群系统中的大量的作业处于运行效率不佳的状态。
发明内容
为了解决上述现有技术中超算集群用户很难自行优化参数配置提高超算集群运行效率的缺陷,本发明提出了一种应用于超算集群调度的作业运行参数优化方法,可对集群上应用作业的运行环境、运行资源与应用输入参数的进行优化,实现在不影响应用作业计算精度的情况下提高计算效率。
本发明采用以下技术方案:
一种应用于超算集群调度的作业运行参数优化方法,包括以下步骤:
S1、获取用户提交的应用作业,并获取所述应用作业对应的多组不同的作业参数配置;所述作业参数配置包括作业执行时集群系统的环境参数、作业使用的硬件资源配置参数,以及应用自身的输入参数中的一个或者多个;
S2、根据设定的参数配置判定条件从多组作业参数配置中筛选最优参数配置;
S3、将所述最优参数配置推送给用户,或者,根据所述最优参数配置修改用户提交的应用作业的作业参数配置。
优选的,步骤S2中,所述参数配置判定条件为:
定义根据作业参数配置运行应用作业时所占用的硬件资源的数量或者是所占用的硬件资源的固定资产总额为运行成本;
当应用作业对应的多个作业参数配置所需的运行成本相同,则定义实现最小的作业计算时长的作业参数配置为最优参数配置;
当应用作业采用两个不同的作业参数配置运行时所需的运行成本不同,结合作业参数配置对应的运行成本和并行效率从多组作业参数配置中筛选最优参数配置。
优选的,所述参数配置判定条件中,当应用作业采用两个不同的作业参数配置运行时所需的运行成本不同,则根据优劣判定指标Er判断两个作业参数配置中的更优选项,并结合优劣判定指标Er以两两对比的方式从应用作业对应的多组作业参数配置中筛选最优参数配置;
其中,case-1和case-2为同一应用作业对应的两个不同的作业参数配置,该应用作业采用case-1时的运行成本少于该应用作业采用case-2时的运行成本;R1为case-1对应的运行成本,R2为case-2对应的运行成本;T1为case-1对应的作业计算时长;T2为case-2对应的作业计算时长;n为计算常数,n>1;
根据优劣判定指标Er判断两个作业参数配置中的更优选项的方式为:当Er≥m,则判断case-2为更优选项;当Er<m,则判断case-1为更优选项;m为设定阈值,0<m<1。
优选的,优劣判定指标Er的计算公式中作业计算时长T1、T2为作业试运行测试中所消耗的计算时间;作业试运行测试指的是,利用集群中闲置的硬件资源运行应用作业结合作业参数配置形成的测试作业,测试作业包含对应的应用作业中的部分程序;测试作业占用的硬件资源与对应的应用作业所需的硬件资源全部相同或者部分相同;测试作业采用可被抢断机制,即测试作业运行过程中,当其占用的任一硬件资源被运行中的任一应用作业申请时,该测试作业停止运行。
优选的,步骤S1中,所述应用作业对应的多组不同的作业参数配置包括:原初参数配置、预估参数配置和补充参数配置中的至少一项;
原初参数配置为用户原初的作业参数配置;
预估参数配置为根据应用作业所属应用类别对应的参数预估模型获得的作业参数配置;参数预估模型的输入为待运行作业的信息,输出为待运行作业对应的预估参数配置;参数预估模型由人工设置或者大数据训练获得,参数预估模型采用大数据训练获得时,其训练数据库为其对应的应用类别的历史作业数据库,所述历史作业数据库包含对应的应用类别中的应用作业实际运行时所采用的作业参数配置以及计算完成时长;
补充参数配置为将原初参数配置和预估参数配置中的至少一项作为输入代入到设定的参数异变模型获得的一组或多组作业参数配置;参数异变模型用于根据设定规则对输入的作业参数配置中的一项或者多项参数进行改变以形成新的作业参数配置并输出;或者设置参数预估模型的输出为多组作业参数配置,且参数预估模型标注输出的多组作业参数配置中最优的一组作为预估参数配置,剩余的作业参数配置记作补充参数配置。
优选的,S2具体包括以下分步骤:
将应用作业分别与原初参数配置、预估参数配置和各组补充参数配置结合,以生成相对应的测试作业,将应用作业对应的所有测试作业记作测试作业集合;利用集群中闲置的硬件资源运行各测试作业,并记录测试作业的运行数据;测试作业包含对应的应用作业中的部分程序;测试作业占用的硬件资源与对应的应用作业所需的硬件资源全部相同或者部分相同;测试作业采用可被抢断机制;
当应用作业被运行时,如果其对应的测试作业集合中的测试作业已经运行完成,则根据各测试作业的运行数据结合设定的参数配置判定条件从各测试作业对应的原初参数配置、预估参数配置和补充参数配置中选择最优参数配置。
优选的,S2中,当应用作业被运行时,如果其对应的测试作业集合中的任一测试作业没有运行或者正在运行,则停止并删除该应用作业对应的测试作业集合中的测试作业,并将该应用作业对应的预估参数配置作为最优参数配置。
优选的,测试作业设有最大运行时长,任一测试作业的运行时长达到最大运行时长,则从运行程序删除该测试作业,并将该测试作业从其所在的测试作业集合中删除。
优选的,历史作业数据库还包括测试作业采用的作业配置参数及对应的计算完成时长。
本发明的优点在于:
(1)本发明提出的一种应用于超算集群调度系统的作业运行参数优化方法,可自行比对获得的多种作业参数配置,从而自行获取可实现最佳计算效率的作业参数配置即最优参数配置。本发明中,可通过对优化参数目标进行设置,从而实现灵活的参数优化对象,甚至可实现对应用自身输入的参数的优化,解决了目前由于应用自身输入的参数的参数空间复杂而无法进行优化的问题。
(2)本发明中可根据集群用户设置的权限,将获得的最优参数配置推送给集群用户,或者直接根据最优参数配置对用户提交的应用作业进行优化。本发明实现了超算集群用户提交的应用作业的参数配置的自动优化,弥补了大多数用户不具备参数配置优化能力的缺陷,有利于整体提高超算集群的计算效率。
(3)本发明应用于提高超算集群中应用作业的运行速度时,可根据优化参数配置的参数选择,在不显著降低应用作业的运行速度的前提下,显著降低作业的硬件资源占用数额,从而提高超算集群的硬件资源利用效率,提高超算集群整体在单位时间内完成计算的作业数量,提高集群的经济效益,并帮助超算集群用户减少排队时间,改善用户的计算速度体验。
(4)本发明提出的参数配置判定条件中明确了根据优劣判定指标Er判断参数配置优劣的方法,该优劣判定指标Er实际为约化并行效率,相比一般使用的并行效率可以更好的在速度性能与硬件资源利用效率上取得平衡,避免出现大幅增加计算资源却只取得很小的计算性能提升的情况。
(5)本发明中,在应用作业运行前,结合应用作业和预选的作业参数配置即原初参数配置、预估参数配置和补充参数配置生成测试作业,并通过测试作业的运行相当于实现了对采用不同的作业参数配置的应用作业进行试运行测试,来精确估算各个参数配置下的应用作业执行速度,为原初参数配置、预估参数配置和补充参数配置的优劣判断提供了实际的运行数据支撑,进一步最终获得的最优参数配置的可靠。
(6)本发明中,限定测试作业只在超算集群中空闲的硬件资源上执行,且测试作业均为可被抢断式作业,即测试作业在运行时可以被中断停止,并将占用的全部或部分硬件资源让位给高优先级的其他作业即应用作业(正式作业),以便在通过测试作业进行作业参数配置的测试的同时的同时不增加高优先级作业即应用作业的排队时间,实现在不增加高优先级作业即应用作业的排队时间的前提下增加全集群硬件资源利用率。
(7)本发明中,将经过测试作业试运行测试后获得的最优参数配置与应用作业的关联关系添加到该应用作业所属类别的历史作业数据库中,提高了历史作业数据库中的样本质量,有利于提高参数预估模型的质量,从而进一步提高预估参数配置的精度和可靠性。同时也提高了采用预估参数配置作为最优参数配置时的优益,保证了集群中所有应用作业的计算效率和硬件资源利用效率的提高。
附图说明
图1为本发明提出的应用于超算集群调度的作业运行参数优化方法流程图;
图2为实施例1提供的一种应用于超算集群调度的作业运行参数优化方法流程图。
具体实施方式
名词定义:
运行成本:根据作业参数配置运行应用作业时所占用的硬件资源的数量或者是所占用的硬件资源的固定资产总额为作业参数配置对应的运行成本;
测试作业:测试作业包含对应的应用作业中的部分程序,将测试作业对应的应用作业采用与该测试作业相同的作业参数配置时的运行时间记作完整运行时间;测试作业的运行时间大大小于其对应的完整运行时间,且测试作业的运行时间与对应的完整运行时间正相关;具体实施例,假设应用作业包含千次迭代,则其对应的测试作业可简化到3次或者5次迭代以减少测试时间;
可被抢断机制:作业A运行过程中用到的硬件资源一旦被另一个作业B申请,则作业A停止运行以便为作业B腾出硬件资源,则作业A被称为可被抢断机制;本实施方式中,测试作业为可被抢断机制,指的是测试作业的被执行优先级低于所有应用作业即正式作业的被执行优先级,一旦测试作业运行过程中占用的硬件资源被任一应用作业申请,则测试作业停止运行以释放其占用的硬件资源。
最优参数配置:包括作业执行时集群系统的环境参数、作业使用的硬件资源配置参数,以及应用自身的输入参数。
所述集群系统的环境参数:在Linux系统下为系统的环境变量参数,其包括但不限于各种堆栈与缓存的使用限制参数以及线程个数参数(例如但不限于OMP_STACKSIZE、ulimit参数等)等。
所述作业使用的硬件资源配置参数:例如但不限于启动的进程个数、每个进程占用的CPU硬件核心数、进程的在节点与CPU核心间的分布参数,以及各个进程连接并使用的加速卡(如GPU)配置参数等。
所述应用自身的输入参数:必须为不影响计算结果精度要求的内部运行参数,其一般在应用的输入文件中被指定,并因应用不同而体现为不同的参数;特别的,在VASP应用作业中,其包括KPAR、NCORE、NPAR、NSIM等用于划分或聚合多种计算任务的参数,但不限于以上所述参数。
实施例1
本实施方式提出的一种应用于超算集群调度的作业运行参数优化方法,包括以下步骤。
SA1、获取用户提交的应用作业。
SA2、获取应用作业所述的应用类别,根据应用类别和待优化运行参数选择参数预估模型,结合应用作业和参数预估模型获取预估参数配置。
参数预估模型的输入为待运行作业的信息,输出为待运行作业对应的预估参数配置。参数预估模型可采用经验模型,即人工设置。参数预估模型也可采用大数据训练获得,参数预估模型的训练数据库为其对应的应用类别的历史作业数据库,所述历史作业数据库包含对应的应用类别中的应用作业实际运行时所采用的作业参数配置以及计算完成时长。
SA3、结合原初参数配置和预估参数配置,获取补充参数配置。原初参数配置为用户原初的作业参数配置,即用户提交的应用作业的初始参数值。
补充参数配置为通过预设的参数异变模型代入原初参数配置和/或预估参数配置后获得的作业参数配置;或者将参数预估模型输出的多组作业参数配置中最优的一组作为预估参数配置,将参数预估模型输出的剩余的作业参数配置记作补充参数配置。
SA4、将应用作业分别与原初参数配置、预估参数配置和各组补充参数配置结合,以生成相对应的测试作业,利用集群中闲置的硬件资源在对应的应用作业运行前运行测试作业,并记录测试作业的运行数据。
测试作业采用被抢断机制,测试作业包含对应的应用作业中的部分程序,测试作业占用的硬件资源与对应的应用作业所需的硬件资源全部相同或者部分相同。
SA5、当应用作业被运行时,如果其对应的所有测试作业均已经运行完成,则根据各测试作业的运行数据结合设定的参数配置判定条件从各测试作业对应的原初参数配置、预估参数配置和补充参数配置中选择最优参数配置。
SA6、根据用户设置的权限,将最优参数配置发送给用户,或者直接根据最优参数配置对应用作业的参数配置进行优化并执行。
具体的,本步骤中,当用户设置的权限为信息提醒,则将最优参数配置以信息通知的方式发送给用户,由用户决定采用与否并手动修改;当用户设置的权限为自动化修改参数配置,则可通过程序直接修改应用作业的输入信息,以采用最优参数配置运行该应用作业。
步骤SA2中,采用大数据训练获得参数预估模型时,将收集到得的历史数据根据应用类别分类,实现了针对同一应用类别的历史数据所构成的历史作业数据库训练该应用类别对应的参数预估模型,从而保证了根据参数预估模型预估应用作业的作业参数配置的可靠性,保证了预估参数配置的精度。
且,本实施例中,历史作业数据库中的数据来源包括实际运行后的应用作业,实际运行后的应用作业的作业参数配置和作业计算时长都是明确的历史数据,且经过作业参数配置优化后的应用作业,其最优参数配置和对应的作业计算时长必然存入该应用作业所述的历史作业数据库中,提高了历史作业数据库的样本质量,从而提高了参数预估模型的精确度。
具体实施时,可根据设置的参数配置判定条件,结合应用作业对应的各测试作业的运行数据判定应用作业对应的原初参数配置、预估参数配置和各组补充参数配置的优劣,从而保证最终获得的最优参数配置的精确可靠。
具体的,本实施例具体实施时,将获得所有测试作业列入待运行测试队列,待运行测试队列中的测试作业均限定只能通过闲置的硬件资源即没有被任一应用作业申请或占用的硬件资源运行。如此,本实施例中实现了在不影响应用作业运行的情况下,实现对测试作业的运行,即实现了对应用作业对应的原初参数配置、预估参数配置和各组补充参数配置的试运行评估,从而有利于在应用作业实际运行前可使得该应用作业实现更好的硬件资源利用效率的作业参数配置,从而实现应用作业的参数配置的优化,提高集群的整体硬件资源利用效率,实现计算速度和硬件资源利用效率的平衡。
值得注意的是,本发明提供的应用于超算集群调度的作业运行参数优化方法,以不降低计算精度为前提寻找实现计算速度和硬件支援利用效率更优的平衡点,因此,本实施例中所需的作业参数配置设定为不影响应用作业计算精度,只影响应用作业对硬件资源的利用效率的作业参数,例如,VASP应用作业对应的最优参数配置可包括KPAR、NCORE、NPAR、NSIM等用于划分或聚合多种计算任务的参数。具体实施时,为了方便最优参数配置的获得和实施,本实施例中进一步限定原初参数配置、预估参数配置和补充参数配置所包含的参数项即参数类别均相同,但不同的参数配置中至少有一个参数项的具体设置数值或者属性不同。即,原初参数配置、预估参数配置和所有的补充参数配置格式统一。
实施例2
在实施例1的基础上,本实施例的进一步实施中,步骤SA5中当应用作业被运行时,如果其对应的任一测试作业没有完成运行,即应用作业对应的任一测试作业没有运行或者正在运行,则停止并删除该应用作业对应的所有测试作业的运行,并将该应用作业对应的预估参数配置作为最优参数配置。
应用作业对应的所有测试作业记作应用作业对应的测试作业集合,应用作业对应的测试作业集合没有在应用作业运行前运行完成,则无法对应用作业对应的原初参数配置、预估参数配置和各组补充参数配置进行有效对比,此时继续测试作业的运行以获取最优参数配置也无法应用到应用作业的运行中。本实施例中,当应用作业运行时,如果其对应的任一测试作业没有完成运行即待运行测试队列中还存在该应用作业对应的测试作业,则将该应用作业对应的所有测试作业从待运行测试队列中删除,避免了对硬件资源的冗余占用,进一步提高了硬件资源的利用效率,未待运行的应用作业的测试作业的运行提供了时间和硬件资源。
值得注意的是,本实施例进一步实施时,测试作业设有最大运行时长,任一测试作业的运行时长达到最大运行时长时,则从运行程序删除该测试作业,并将该测试作业从其所在的测试作业集合中删除。当测试作业的运行达到最大运行时长时,说明该测试作业对应的作业参数配置效果较差,此时,及时停止该测试作业的运行,有利于避免做无用功,及时止损;同时将该试作业从其所在的测试作业集合中删除,也避免了该测试作业影响该测试作业集合的测试。
本实施例中结合包含有同类应用作业对应的最优参数配置的历史作业数据库训练参数预估模型,提高了参数预估模型的精度和预估参数配置的优异性。如此,本实施例中,在应用作业对应的测试作业集中没有完成测试时,即无法根据测试数据对原初参数配置、预估参数配置和补充参数配置进行客观对比时,默认预估参数配置为最优参数配置,可靠性更高。
实施例3
在实施例1的基础上,本实施例中,历史作业数据库还包括测试作业采用的作业配置参数及对应的计算完成时长,以通过测试作业增加样本数量。
由于测试作业为对应的应用作业的部分程序,其运行时长远远小于应用作业,故而在训练参数预估模型时,需要对测试作业对应的作业计算时长进行处理,以还原该测试作业对应的作业参数配置应用到对应的应用作业中,该应用作业所需的作业计算时长,然后测试作业的参数配置和还原后的作业计算时长用于训练参数预估模型。
本实施例中将历史作业数据库分割为原初子库和测试子库,原初子库用于存储实际运行后的应用作业所采用的作业参数配置和其作业计算时长,测试子库用于存储测试作业提供的作业参数配置和作业计算时长。
如此,通过原初子库和测试子库的设置,可限定原初子库的存储数据量,并实现原初子库的定期更新或者数据覆盖,保证原初子库仅保存最新的数据,从而避免原初子库中的样本过时对参数预估模型的不利影响。
本实施例也适用于实施例2。
值得注意的是,以上任何一个实施例中均没有对应用作业获得最优参数配置的具体情况进行限定。具体实施时,可由应用作业主动查看其对应的测试作业集合的运行完成情况,即当应用作业运行时,应用作业主动调用辅助程序查看其对应的测试作业集合中的测试作业是否全部完成运行,如果全部完成,则由辅助程序根据测试作业的运行数据和参数配置判定条件筛选最优参数配置以供应用作业调用;如果应用作业对应的测试作业集合中的测试作业没有全部完成运行,则应用作业调用对应的预估参数配置进行运行。
或者,可由测试作业集合查看对应的应用作业的运行状态,即测试作业集合的测试作业运行过程中,通过辅助程序定时查看该测试作业集合对应的应用作业是否开始运行,一旦对应的应用作业开始运行,则该测试作业集合中的所有测试作业均停止运行并删除,应用作业调用对应的预估参数配置进行运行;反之,如果测试作业集合的测试作业全部运行完成后,其对应的应用作业还没有开始运行,则辅助程序根据测试作业的运行数据和参数配置判定条件筛选最优参数配置以供应用作业调用。
实施例4
本实施例提供了一种具体的参数配置判定条件。
所述参数配置判定条件为:
当应用作业对应的多个作业参数配置所需的运行成本相同,则定义实现最小的作业计算时长的作业参数配置为最优参数配置;
当应用作业采用两个不同的作业参数配置运行时所需的运行成本不同,结合作业参数配置对应的运行成本和并行效率从多组作业参数配置中筛选最优参数配置。
具体实施时,结合作业参数配置对应的运行成本和并行效率从多组作业参数配置中筛选最优参数配置的具体方式可根据运行数据的选择以及参数配置的与其目标具体设置。
本实施例的参数配置判定条件中,当应用作业采用两个不同的作业参数配置运行时所需的运行成本不同,则根据优劣判定指标Er判断两个作业参数配置中的更优选项,并结合优劣判定指标Er以两两对比的方式从应用作业对应的多组作业参数配置中筛选最优参数配置。
其中,case-1和case-2为同一应用作业对应的两个不同的作业参数配置,该应用作业采用case-1时的运行成本少于该应用作业采用case-2时的运行成本;R1为case-1对应的运行成本,R2为case-2对应的运行成本;T1为case-1对应的作业计算时长;T2为case-2对应的作业计算时长;n为计算常数,n>1。
根据优劣判定指标Er判断两个作业参数配置中的更优选项的方式为:当Er≥m,则判断case-2为更优选项;当Er<m,则判断case-1为更优选项;m为设定阈值,0<m<1。
假设具体实施例中,存在A、B、C、D四个作业,n=2,m=80%;A、B、C、D四个作业对应的运行成本分别记作Ra、Rb、Rc、Rd,A、B、C、D四个作业对应的作业计算时长Ta、Tb、Tc、Td。
假设:
Ra=r,Ta=t;
Rb=2r,Tb=0.6t;
Rc=4r,Td=0.4t;
Rc=8r,Td=0.25t;
结合Er(A,B)可知,作业B的作业参数配置优于作业A的作业参数配置,结合Er(A,C)、Er(A,D)可知,作业A的作业参数配置优于作业C、D的作业参数配置,即作业A、B、C、D中以作业B的作业参数配置最优。
如此,假设作业A、B、C、D为同一个应用作业与不同的作业参数配置结合形成的测试作业,则可知测试作业B对应的作业参数配置为该应用作业对应的最优参数配置。
本实施例具体应用时,可结合实施例1至3,优劣判定指标Er的计算公式中作业计算时长T1、T2为作业试运行测试中所消耗的计算时间,即case-1构成的测试作业和case-2构成的作业为对应同一应用作业的测试作业,T1为case-1构成的测试作业计算完成所消耗的时间,T2为case-2构成的测试作业计算完成所消耗的时间。
值得注意的是,上述m值只是一个参考值,本实施例中,设置Er=m时,判断case-2为更优选项;具体实施时,也可设置Er=m时,判断case-1为更优选项,或者Er=m时,随机选择case-1或case-2为更优选项。本领域技术人员应该知道,对于Er=m的三种判断情况为等同技术特征。
实施例5
本实施例中,以超算平台上用户使用量最多的应用软件之一VASP计算软件,以及超算平台上广泛使用的LSF作业调度系统为例,对本发明提供的应用于超算集群调度的作业运行参数优化方法作进一步解释。
本实施例基于CPU同构平台为用户分析、测试、并提供优化的VASP运行参数。本实施例中,为了方便对所述应用于超算集群调度的作业运行参数优化方法进行阐述,假设在集群调度系统中设置有用于存储和执行应用于超算集群调度的作业运行参数优化方法的运行时优化模块。
本实施例包括以下步骤。
步骤1,用户通过提交系统向LSF作业管理系统提交一个VASP应用作业,提交系统获取作业输入信息并传递给运行时优化模块,所述作业输入信息包括但不限于输入文件或者输入文件所在目录、硬件资源申请信息、应用执行命令等。
步骤2,运行时优化模块分析收到的作业输入信息,根据应用执行命令、用户命名的作业名称、输入文件和输入文件所在目录等信息,判断当前作业是否为VASP应用作业,当判断为真时,继续步骤3;当判断为假时,跳转至针对其他应用所编写的运行时优化流程。
步骤3,根据VASP应用作业的计算说明书文档,选择不影响作业计算结果精确度要求且影响其计算时长与硬件资源需求的典型输入参数NPAR、KPAR、NCORE作为优化目标参数。此三个典型输入参数的乘积为作业申请启动的进程数,即对应作业申请的CPU核心资源。
步骤4,对该VASP应用作业的输入数据进行预处理分析,获取该作业的主要计算参数,所述主要计算参数包括影响作业运行时间的计算参数,所述主要计算参数具体包括且可以不限于以下参数:
申请的节点类型与数量,以及申请的CPU核心数量;
运行的VASP程序版本;
VASP应用作业的输入文件所在之目录;
VASP应用应用的输入文件以及输入参数,输入文件包括INCAR、KPOINTS、POSCAR、POTCAR,输入参数包括ICHARG、ISTART、NCORE、KPAR、NPAR等参数,NCORE、KPAR、NPAR用于并行任务的划分。
步骤5,将前一步预处理分析中得到的该VASP作业的主要计算参数输入到参数预估模型中,得到参数预估模型输出三个运行参数NPAR、KPAR、NCORE的配置值的多种组合,并预估一种组合最佳的运行参数配置记作预估参数配置,将剩余的组合记作补充参数配置。所述参数预估模型,可以是一类经验模型,或者是基于历史的VASP作业数据集合的大数据模型,或者是两者的合并统一。
步骤6,复制该VASP作业的所有输入文件到新的目录,提交一个试运行测试作业;该测试作业申请的各个硬件资源的数量,不低于原VASP应用作业设置的硬件资源;该测试作业被设置为“可被抢断式作业”,使得其测试过程不影响其他正式作业的运行;为缩减不必要的测试计算时长,该测试作业的INCAR输入文件中,电子步循环迭代步数上限参数NELM被设置为5步或3步等,离子步迭代参数IBRION设置为0(不进行离子步迭代),并将LWAVE与LCHARG均设置为“.F.”(停止波函数与电荷输出)。当该作业被分配执行时,依次测试原初参数配置、预估参数配置和补充参数配置,以得到最优参数配置。
以上测试过程中,对不同的作业参数配置做两两对比,以获取原初参数配置、预估参数配置和补充参数配置中的最优参数配置,具体方法可参考实施例4。
步骤7,试运行测试作业在完成运行后,将调用激活运行时优化模块,运行时优化模块将检查该VASP应用作业所归属的集群用户是否被设置有优化结果提醒功能,如需提醒,则将测试作业所产生的最优配置参数以短消息形式推送给用户;运行时优化模块还检查该VASP应用作业所归属的集群用户是否被设置为“同意系统优化修改其VASP作业中的输入参数”,如被用户授权,且检测到该VASP应用作业尚未开始运行,则将该VASP应用作业中本实施例选定三个优化目标参数NPAR、KPAR、NCORE的值根据最优参数配置进行修改。
步骤8,配置LSF作业管理系统的作业前处理模块,当用户提交的应用作业开始执行时,该前处理模块检查当前作业是否存在相应的试运行测试作业,如果存在且还没有执行完成,则激活运行时优化模块,杀掉还未完成的试运行测试作业;此时,该应用作业可直接采用原初参数配置进行运行,也可根据预估参数配置进行参数修改。
本实施例的步骤1中,用户可通过WEB界面或者其他登录界面提交VASP应用作业,提交系统为向LSF作业管理系统提交作业的WEB界面后台系统,
具体的,本步骤1中,提交系统为作业管理系统的组成部分,用户可通过LSF作业管理系统的BSUB命令直接提交作业。
步骤4中,可以根据获得的主要计算参数判断是否需要做运行参数优化。例如,当ICNARG大于10时,该VASP作业计算量极少,可以不对它做优化;或者,当ISTART等于1时,作业被用户设定为二次重启执行,此时的运行参数不宜被变更;或者,当该VASP作业不含有离子步优化等繁重计算任务时,不对它做优化。当不需要做运行参数优化时,运行时优化模块可省略之后的优化步骤,返回并等待新的作业。
步骤4中,可复制该VASP应用作业的所有输入文件到新的目录,通过极短时间的试运行,获取该VASP应用作业详细的前处理数据,即所需的且不存在与主要计算参数中的数据,例如该VASP应用作业将要计算的约化K点个数NKPTS、NBANDS参数值等。约化K点个数NKPTS和NBANDS在输入参数中均无法直接得到,但K点个数NKPTS对K点并行划分参数KPAR的优化结果的准确性有很大影响;NBANDS参数值对NPAR的优化结果的准确性有一定影响。前处理数据的计算非常快速,为降低资源消耗,可以通过将试运行中的VASP应用作业的电子步数量设置为1等很少的数值,并取消VASP作业的离子步迭代,来减少计算时长,并设置一个运行时间上限(例如10秒)。
步骤4中,还可对输入数据做脱敏处理,仅保存运行优化所需要的数据。
步骤7中,运行时优化模块也将试运行测试作业计算得到的输入输出数据进行脱敏处理,然后存入VASP作业运行历史数据集中,以便用于训练预估参数模型。
以上仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明创造的保护范围之内。
对于VASP应用,可在更优化的实施例中,添加其他不影响计算结果精度要求的其他运行参数,如NSIM、OMP_NUM_THREADS,仍在本专利的覆盖范围内,为简化描述,不再作为新的实施例详述。
以上实施例中的部分功能可以通过其他具体实现方式完成,其所产生的新的实现方案仍在本实施方式的覆盖范围内。
本领域的一般技术人员应清楚,基于本发明的运行时优化模块亦可以方便地迁移实施到VASP以外的任何计算软件(例如但不限于量子化学软件Gaussian、气象模拟软件WRF等);也可以结合LSF以外的任何其他作业调度系统(例如但不限于Slurm、PBS等作业调度系统)来实施;也可以在包含GPU等加速卡的硬件资源平台上实施。
Claims (8)
1.一种应用于超算集群调度的作业运行参数优化方法,其特征在于,包括以下步骤:
S1、获取用户提交的应用作业,并获取所述应用作业对应的多组不同的作业参数配置;所述作业参数配置包括作业执行时集群系统的环境参数、作业使用的硬件资源配置参数,以及应用自身的输入参数中的一个或者多个;
S2、根据设定的参数配置判定条件从多组作业参数配置中筛选最优参数配置;
S3、将所述最优参数配置推送给用户,或者,根据所述最优参数配置修改用户提交的应用作业的作业参数配置;
步骤S1中,所述应用作业对应的多组不同的作业参数配置包括:原初参数配置、预估参数配置和补充参数配置中的至少一项;
原初参数配置为用户原初的作业参数配置;
预估参数配置为根据应用作业所属应用类别对应的参数预估模型获得的作业参数配置;参数预估模型的输入为待运行作业的信息,输出为待运行作业对应的预估参数配置;参数预估模型由人工设置或者大数据训练获得,参数预估模型采用大数据训练获得时,其训练数据库为其对应的应用类别的历史作业数据库,所述历史作业数据库包含对应的应用类别中的应用作业实际运行时所采用的作业参数配置以及计算完成时长;
补充参数配置为将原初参数配置和预估参数配置中的至少一项作为输入代入到设定的参数异变模型获得的一组或多组作业参数配置;参数异变模型用于根据设定规则对输入的作业参数配置中的一项或者多项参数进行改变以形成新的作业参数配置并输出;或者设置参数预估模型的输出为多组作业参数配置,且参数预估模型标注输出的多组作业参数配置中最优的一组作为预估参数配置,剩余的作业参数配置记作补充参数配置;
S2具体包括以下分步骤:
将应用作业分别与原初参数配置、预估参数配置和各组补充参数配置结合,以生成相对应的测试作业,将应用作业对应的所有测试作业记作测试作业集合;利用集群中的硬件资源运行各测试作业,并记录测试作业的运行数据;测试作业包含对应的应用作业中的部分程序;测试作业占用的硬件资源与对应的应用作业所需的硬件资源全部相同或者部分相同;
当应用作业被运行时,如果其对应的测试作业集合中的测试作业已经运行完成,则根据各测试作业的运行数据结合设定的参数配置判定条件从各测试作业对应的原初参数配置、预估参数配置和补充参数配置中选择最优参数配置。
2.如权利要求1所述的应用于超算集群调度的作业运行参数优化方法,其特征在于,步骤S2中,所述参数配置判定条件为:
定义根据作业参数配置运行应用作业时所占用的硬件资源的数量或者是所占用的硬件资源的固定资产总额为运行成本;
当应用作业对应的多个作业参数配置所需的运行成本相同,则定义实现最小的作业计算时长的作业参数配置为最优参数配置;
当应用作业采用两个不同的作业参数配置运行时所需的运行成本不同,结合作业参数配置对应的运行成本和并行效率从多组作业参数配置中筛选最优参数配置。
3.如权利要求2所述的应用于超算集群调度的作业运行参数优化方法,其特征在于,所述参数配置判定条件中,当应用作业采用两个不同的作业参数配置运行时所需的运行成本不同,则根据优劣判定指标Er判断两个作业参数配置中的更优选项,并结合优劣判定指标Er以两两对比的方式从应用作业对应的多组作业参数配置中筛选最优参数配置;
其中,case-1和case-2为同一应用作业对应的两个不同的作业参数配置,该应用作业采用case-1时的运行成本少于该应用作业采用case-2时的运行成本;R1为case-1对应的运行成本,R2为case-2对应的运行成本;T1为case-1对应的作业计算时长;T2为case-2对应的作业计算时长;n为计算常数,n>1;
根据优劣判定指标Er判断两个作业参数配置中的更优选项的方式为:当Er≥m,则判断case-2为更优选项;当Er<m,则判断case-1为更优选项;m为设定阈值,0<m<1。
4.如权利要求3所述的应用于超算集群调度的作业运行参数优化方法,其特征在于,优劣判定指标Er的计算公式中作业计算时长T1、T2为作业试运行测试中所消耗的计算时间;作业试运行测试指的是,利用集群中闲置的硬件资源运行应用作业结合作业参数配置形成的测试作业,测试作业包含对应的应用作业中的部分程序;测试作业占用的硬件资源与对应的应用作业所需的硬件资源全部相同或者部分相同;测试作业采用可被抢断机制,即测试作业运行过程中,当其占用的任一硬件资源被运行中的任一应用作业申请时,该测试作业停止运行。
5.如权利要求1所述的应用于超算集群调度的作业运行参数优化方法,其特征在于,测试作业采用集群中闲置的硬件资源运行,且测试作业采用可被抢断机制。
6.如权利要求1所述的应用于超算集群调度的作业运行参数优化方法,其特征在于,S2中,当应用作业被运行时,如果其对应的测试作业集合中的任一测试作业没有运行或者正在运行,则停止并删除该应用作业对应的测试作业集合中的测试作业,并将该应用作业对应的预估参数配置作为最优参数配置。
7.如权利要求1所述的应用于超算集群调度的作业运行参数优化方法,其特征在于,测试作业设有最大运行时长,任一测试作业的运行时长达到最大运行时长,则从运行程序删除该测试作业,并将该测试作业从其所在的测试作业集合中删除。
8.如权利要求1所述的应用于超算集群调度的作业运行参数优化方法,其特征在于,历史作业数据库还包括测试作业采用的作业配置参数及对应的计算完成时长。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111268933.5A CN114048027B (zh) | 2021-10-21 | 2021-10-21 | 一种应用于超算集群调度的作业运行参数优化方法 |
PCT/CN2022/126219 WO2023066304A1 (zh) | 2021-10-21 | 2022-10-19 | 应用于超算集群调度的作业运行参数优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111268933.5A CN114048027B (zh) | 2021-10-21 | 2021-10-21 | 一种应用于超算集群调度的作业运行参数优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114048027A CN114048027A (zh) | 2022-02-15 |
CN114048027B true CN114048027B (zh) | 2022-05-13 |
Family
ID=80207271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111268933.5A Active CN114048027B (zh) | 2021-10-21 | 2021-10-21 | 一种应用于超算集群调度的作业运行参数优化方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114048027B (zh) |
WO (1) | WO2023066304A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048027B (zh) * | 2021-10-21 | 2022-05-13 | 中国科学技术大学 | 一种应用于超算集群调度的作业运行参数优化方法 |
CN116909676B (zh) * | 2023-09-12 | 2024-02-23 | 中国科学技术大学 | 一种二分量第一性原理计算系统与服务方法 |
CN117370135B (zh) * | 2023-10-18 | 2024-04-02 | 方心科技股份有限公司 | 基于电力应用弹性测试的超算平台性能评测方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844040A (zh) * | 2016-12-20 | 2017-06-13 | 北京并行科技股份有限公司 | 一种作业提交方法、系统及服务器 |
CN106909452A (zh) * | 2017-03-06 | 2017-06-30 | 中国科学技术大学 | 并行程序运行时参数优化方法 |
CN109951558A (zh) * | 2019-03-27 | 2019-06-28 | 北京并行科技股份有限公司 | 一种超算资源的云调度方法、云调度中心和系统 |
US10402227B1 (en) * | 2016-08-31 | 2019-09-03 | Amazon Technologies, Inc. | Task-level optimization with compute environments |
CN111651220A (zh) * | 2020-06-04 | 2020-09-11 | 上海电力大学 | 一种基于深度强化学习的Spark参数自动优化方法及系统 |
CN111858003A (zh) * | 2020-07-16 | 2020-10-30 | 山东大学 | 一种Hadoop最优参数评估方法及装置 |
CN112102887A (zh) * | 2020-09-02 | 2020-12-18 | 北京航空航天大学 | 多尺度集成可视化的高通量自动计算流程及数据智能系统 |
CN112418438A (zh) * | 2020-11-24 | 2021-02-26 | 国电南瑞科技股份有限公司 | 基于容器的机器学习流程化训练任务执行方法及系统 |
CN113220745A (zh) * | 2021-05-19 | 2021-08-06 | 中国科学技术大学 | 一种基于区块链的交易处理方法、装置及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016061283A1 (en) * | 2014-10-14 | 2016-04-21 | Skytree, Inc. | Configurable machine learning method selection and parameter optimization system and method |
CN106383746A (zh) * | 2016-08-30 | 2017-02-08 | 北京航空航天大学 | 大数据处理系统的配置参数确定方法和装置 |
CN106599585B (zh) * | 2016-12-19 | 2018-09-28 | 兰州交通大学 | 基于并行蜂群算法的水文模型参数优化方法及装置 |
CN114048027B (zh) * | 2021-10-21 | 2022-05-13 | 中国科学技术大学 | 一种应用于超算集群调度的作业运行参数优化方法 |
-
2021
- 2021-10-21 CN CN202111268933.5A patent/CN114048027B/zh active Active
-
2022
- 2022-10-19 WO PCT/CN2022/126219 patent/WO2023066304A1/zh unknown
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10402227B1 (en) * | 2016-08-31 | 2019-09-03 | Amazon Technologies, Inc. | Task-level optimization with compute environments |
CN106844040A (zh) * | 2016-12-20 | 2017-06-13 | 北京并行科技股份有限公司 | 一种作业提交方法、系统及服务器 |
CN106909452A (zh) * | 2017-03-06 | 2017-06-30 | 中国科学技术大学 | 并行程序运行时参数优化方法 |
CN109951558A (zh) * | 2019-03-27 | 2019-06-28 | 北京并行科技股份有限公司 | 一种超算资源的云调度方法、云调度中心和系统 |
CN111651220A (zh) * | 2020-06-04 | 2020-09-11 | 上海电力大学 | 一种基于深度强化学习的Spark参数自动优化方法及系统 |
CN111858003A (zh) * | 2020-07-16 | 2020-10-30 | 山东大学 | 一种Hadoop最优参数评估方法及装置 |
CN112102887A (zh) * | 2020-09-02 | 2020-12-18 | 北京航空航天大学 | 多尺度集成可视化的高通量自动计算流程及数据智能系统 |
CN112418438A (zh) * | 2020-11-24 | 2021-02-26 | 国电南瑞科技股份有限公司 | 基于容器的机器学习流程化训练任务执行方法及系统 |
CN113220745A (zh) * | 2021-05-19 | 2021-08-06 | 中国科学技术大学 | 一种基于区块链的交易处理方法、装置及电子设备 |
Non-Patent Citations (5)
Title |
---|
On-line feedback-based automatic resource configuration for distributed applications;Hao Liu;《Cluster Computing》;Springer;20100304;第13卷;第397–419页 * |
基于资源签名与遗传算法的Hadoop参数自动调优系统;马跃等;《计算机应用研究》;20171130(第11期);第3219-3228页 * |
成本最小的Spark作业配置优化算法研究;王婷;《中国优秀硕士学位论文全文数据库 信息科技辑》;中国学术期刊(光盘版)电子杂志社;20190815(第8期);I138-491 * |
某VASP应用计算集群系统的优化;刘培柱;《中国优秀硕士学位论文全文数据库 基础科学辑》;中国学术期刊(光盘版)电子杂志社;20140815(第8期);A011-346 * |
面向大规模集群的并行I/O用户层配置优化策略;田鸿运等;《国防科技大学学报》;20200428;第42卷(第2期);第23-29页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114048027A (zh) | 2022-02-15 |
WO2023066304A1 (zh) | 2023-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114048027B (zh) | 一种应用于超算集群调度的作业运行参数优化方法 | |
JP6447120B2 (ja) | ジョブスケジューリング方法、データアナライザ、データ解析装置、コンピュータシステム及びコンピュータ可読媒体 | |
US10776170B2 (en) | Software service execution apparatus, system, and method | |
US20130339973A1 (en) | Finding resource bottlenecks with low-frequency sampled data | |
CN108255689A (zh) | 一种基于历史任务分析的Apache Spark应用自动化调优方法 | |
CN107402863B (zh) | 一种用于通过日志系统处理业务系统的日志的方法与设备 | |
US20180039514A1 (en) | Methods and apparatus to facilitate efficient scheduling of digital tasks in a system | |
CN114138597B (zh) | 一种操作系统性能调优装置、方法、设备及存储介质 | |
CN113391913A (zh) | 一种基于预测的分布式调度方法和装置 | |
US20210374319A1 (en) | Dynamic allocation of computing resources for electronic design automation operations | |
CN117999541A (zh) | 基于资源消耗的动态策略调整 | |
CN117666947A (zh) | 一种数据存储方法、装置、电子设备及计算机可读介质 | |
US20230031049A1 (en) | Dynamic resource allocation in a distributed system | |
US11243873B2 (en) | Concurrency testing | |
CN117076096A (zh) | 任务流程的执行方法、装置、计算机可读介质及电子设备 | |
US10606640B2 (en) | Rescheduling high performance computing jobs based on personalized sanity checks and job problem resolution classification | |
US11989181B2 (en) | Optimal query scheduling for resource utilization optimization | |
CN113900928B (zh) | 一种io负载自动化测试方法、装置 | |
US12093145B2 (en) | Table prioritization for data copy in a multi- environment setup | |
CN117076141B (zh) | 一种高适用性离线数据处理任务发布方法及系统 | |
US11907230B1 (en) | System and method for distributed management of hardware based on intent | |
CN113515503B (zh) | 一种基于表的InfluxDB数据迁移方法 | |
US20240232040A1 (en) | System and method for distributed management of hardware based on performance validation | |
CN114880103B (zh) | 一种flink任务适配hadoop生态的系统和方法 | |
US11656955B1 (en) | Database table valuation |
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 |