CN113687938B - 一种医疗数据计算任务智能调度方法及系统 - Google Patents
一种医疗数据计算任务智能调度方法及系统 Download PDFInfo
- Publication number
- CN113687938B CN113687938B CN202111251644.4A CN202111251644A CN113687938B CN 113687938 B CN113687938 B CN 113687938B CN 202111251644 A CN202111251644 A CN 202111251644A CN 113687938 B CN113687938 B CN 113687938B
- Authority
- CN
- China
- Prior art keywords
- task
- queue
- waitqueue
- execution
- tasks
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种医疗数据计算任务智能调度方法及系统,首先构建任务队列,任务队列分为首尾相接的排序任务队列和排队等候队列,排序任务队列将规定时间内未完成的任务淘汰,进入排队等候队列,排队等候队列首部元素进入排序任务队列,根据队列内的任务数据计算得到预测模型,通过预测模型对新任务预测执行耗时,根据预测耗时与实际耗时差值对队列内任务优先级进行调整,并根据模型的决定系数判断是否更新模型。本发明在动态调节调度任务执行的情况下,能及时调整长时间占据计算资源的任务,以防止服务器等硬件资源因某个单一资源而一直处于高负载状态,对任务调节挂起后充分利用资源,减少任务等待执行时间,使得整体任务执行的效率提升。
Description
技术领域
本发明属于医疗数据计算技术领域,尤其涉及一种医疗数据计算任务智能调度方法及系统。
背景技术
医疗计算服务领域,对于多中心智能医学信息技术平台,主要的功能是为医疗科研人员提供一种计算服务的科研平台,科研人员或医护工作者可在不同的医院进行不同维度的计算任务提交,由医院部分的服务器提供数据支持与计算服务,同时可进行不同医院统一提交特定维度计算任务到对应的医院服务,实现跨医院的计算服务结果展现以及为更进一步的科学研究使用奠定基础。随着科学研究的深入发展,目前对医疗研究的平台需求日趋增大,主要围绕在特定医疗领域特定症状、用药记录就诊记录等的划分,特定药物使用维度,用药记录、时间维度等维度的人群统计信息,以及根据特定范围的患者的就诊信息,进行相关模型训练获取模型并用以预测新增病人的疾病信息等,以达到根据目前的特定就诊信息先验预测疾病的目的。
目前现有的医疗领域计算服务平台采用现有调度算法在大部分情况下,计算任务提交等由现有资源的利用率决定,无法预测任务的执行情况以及在出现系统物理机维度的紧急情况时,无法自适应调整自身的运行情况以达到平稳,同时任务调度问题是一个复杂的NP问题,本发明旨在针对多医院中心接入的场景下针对不同的医院根据物理机运行的情况自适应调度下发执行任务并保证系统平稳运行以达到高效安全稳定的运行提交任务,对现有系统数据库等资源进行保护,同时通过以往的任务的执行记录数据以及其对应的执行时刻的物理机的硬件条件情况来预测在调度队列中等待执行的任务的时长与优先级等,为任务的调度下发执行提供充分支持,防止饥饿发生。
发明内容
本发明的目的是针对现有医疗计算服务领域的计算场景,针对其不足之处,设计发明一种基于双队列预测执行时长使用特殊调度算法的计算任务智能调度方法及系统,本发明通过以往在不同的业务场景提交的不同的任务记录,主要包括执行时物理机在执行过程中硬件的性能信息,以及所提交的任务的信息(包括处理数据的规模、拆分任务数,任务场景等),以此获得任务与性能间的关系以及任务执行时间,再有新任务提交时,可根据现有的信息,预测任务执行的时长从而重新确定任务执行调度的顺序以谋求等时间的间隔内任务数被执行的最多,充分利用计算机性能以及减少饥饿情况的发生。
本发明的目的是通过以下技术方案来实现的:一种医疗数据计算任务智能调度方法,该方法具体步骤为:
(1)将医疗数据的计算任务按照时间先来后到的顺序构建执行任务队列taskQueue[T1, T2, T3, … ,Ti ,… ,Tn], 其中Ti表示第i个计算任务的封装信息,n为队列中任务总数;
(2)将执行任务队列中的任务数据作为训练集合,通过梯度下降法训练,得到执行任务的耗时预测模型h(X),对于后续的任务,直接通过耗时预测模型h(X)预测任务执行耗时;
(3)设定执行任务队列中任务执行时间阈值,对于正在执行的任务,如果已执行时间小于阈值完成的任务,记为已完成任务;对于超过阈值未执行完成的任务,通过下式计算未执行完成的任务后续执行的优先级:
rest_i = ε(predict_i – cost_i)
其中,ε为缩进因子;rest_i表示未执行完成任务task_i的预测执行时间predict_i与任务已执行时间cost_i之差乘以缩进因子后的数值;
(4)设执行任务队列中排序任务队列为executeQueue,执行任务队列中排队等候队列为waitQueue;executeQueue与waitQueue定义为首尾相接的模式;executeQueue队列中未执行完成的任务进入到waitQueue的首部,并依据计算所得rest_i按照waitQueue队列的内部优先级规则进行入队;
(5)对于每一项任务,记录最终执行完成时间real_cost_i,记录截止到执行任务的第i个任务,已有N个任务已执行完成;定义计数变量expire,若预测执行时间与实际执行时间相差数值超过设定阈值,则计数变量expire进行自增;
(6)计算计数变量expire和已执行完成任务数量N的比值,若比值小于阈值,则延用当前的模型进行后续任务的执行耗时预测与调度;若比值大于阈值,则计算当前模型h(X)的决定系数R2,判断是否沿用当前模型,若需要更新模型,则采用此时的计算任务数据对模型进行重新训练,进行模型更新。
进一步地,步骤(1)中,计算任务的封装信息包括医疗数据计算条件,任务涉及数量规模以及任务运行时所在系统的快照信息。
进一步地,步骤(2)具体为:
(2.1)设定任务队列中任务数阈值PRE_CONST,当任务队列中的任务数小于PRE_CONST时,收集每个任务执行参数耗时,记录当前任务规模、执行数据量以及计算机当前硬件负载信息;
(2.2)当任务数等于PRE_CONST时,通过梯度下降法进行一次模型计算,得到执行任务的耗时预测模型h(X);
(2.3)对于任务队列中任务数大于PRE_CONST的部分,根据当前计算机运行的硬件条件,直接通过耗时预测模型h(X)预测任务Ti的耗时为predict_i;其中i>PRE_CONST。
进一步地,步骤(3)中,根据某个未执行完成的任务计算所得rest_i重新定义该任务优先级,每次定义任务优先级,将重新计算rest_i。
进一步地,步骤(4)中,排序任务队列executeQueue大小为executeSize,排队等候队列waitQueue大小为waitSize;设定executeSize:waitSize=3/7,新到来的任务按照预测时间predict_i的时间,进入到waitQueue队列之中按照小顶堆方式排序;当executeQueue队列未满时,从waitQueue中选取头部元素进行晋升至executeQueue。
进一步地,步骤(4)中,所述waitQueue队列的内部优先级规则为:设waitQueue队列内为数组形式,设第i个排序任务为waitQueue [i],当waitQueue [i]中存在rest_i时,以rest_i作为队列排序的依据,当waitQueue [i]中不存在rest_i时,以predict_i作为waitQueue的排序依据;要求waitQueue队列中每个元素满足waitQueue [i] ≤waitQueue[2i+1]且waitQueue [i] ≤waitQueue [2i+2] ,同时为保证exexuteQueue中有充足等待执行的任务,waitQueue执行出队操作,获取顶部元素task_k,将task_k晋升至exexuteQueue队列,同时waitQueue按照内部优先级规则进行一次优先级自适应调整。
进一步地,步骤(5)中,当|real_cost_i – predict_i| > 0.2 * predict_i时,计数变量expire 数值加1。
进一步地,步骤(6)中,当R2 > 0.95时,沿用当前模型,当R2< 0.95时,采用此时的计算任务数据对模型进行重新训练,得到训练好的新模型。
进一步地,新模型训练完成后,若原有executeQueue队列中若存在正在等待执行的任务,则等待executeQueue队列中任务在旧模型下执行完毕,暂停waitQueue向executeQueue晋升任务;此时进行模型切换,将旧模型替换至新模型,替换完成后重新进行waitQueue向executeQueue晋升任务,此时开始执行的任务全在新模型上;若原有executeQueue队列中未存在正在执行的任务,则直接将旧模型替换为新模型,此时也需要挂起executeQueue队列的晋升机制;模型替换结束,重新开始waitQueue进行晋升,新模型应用开始。
本发明还提供了一种医疗数据计算任务智能调度系统,该系统包括前置处理模块、调度决策生成模块、调度执行模块和后置处理模块:
所述前置处理模块对医疗数据的计算任务封装成计算任务Ti,封装信息包括医疗数据计算条件,任务涉及数量规模以及任务运行时所在系统的快照信息;记任务队列为taskQueue,由计算任务按照时间先来后到的顺序构建执行任务队列taskQueue[T1, T2,T3, … ,Ti ,… ,Tn], 其中Ti表示第i个计算任务的封装信息,n为队列中任务总数;
所述调度决策生成模块将执行任务队列中的任务数据作为训练集合,通过梯度下降法进行神经网络模型计算,得到执行任务的耗时预测模型h(X),对于后续的任务,直接通过耗时预测模型h(X)预测任务执行耗时;
所述调度执行模块设定执行任务队列中任务执行时间阈值,对于正在执行的任务,如果已执行时间小于阈值完成的任务,记为已完成任务;对于超过阈值未执行完成的任务,ε为缩进因子;rest_i表示未执行完成任务task_i的预测执行时间predict_i与任务已执行时间cost_i之差乘以缩进因子后的数值,ε值用以控制未执行完成的任务后续执行的优先级;因此,rest_i表示为:rest_i = ε(predict_i – cost_i);
调度执行模块设置任务晋升机制,具体为:设执行任务队列中排序任务队列为executeQueue,执行任务队列中排队等候队列为waitQueue;executeQueue与waitQueue定义为首尾相接的模式;executeQueue队列中未执行完成的任务进入到waitQueue的首部,并依据计算所得rest_i按照waitQueue队列的内部优先级规则进行入队,所述waitQueue队列的内部优先级规则为:设waitQueue队列内为数组形式,设第i个排序任务为waitQueue[i],当waitQueue [i]中存在rest_i时,以rest_i作为队列排序的依据,当waitQueue [i]中不存在rest_i时,以predict_i作为waitQueue的排序依据;要求waitQueue队列中每个元素满足waitQueue [i] ≤waitQueue [2i+1]且waitQueue [i] ≤waitQueue [2i+2] ,同时为保证exexuteQueue中有充足等待执行的任务,waitQueue执行出队操作,获取顶部元素task_k,将task_k晋升至exexuteQueue队列,同时waitQueue按照内部优先级规则进行一次优先级自适应调整;
对于每一项任务,调度执行模块记录最终执行完成时间real_cost_i,记录截止到执行任务的第i个任务,已有N个任务已执行完成;定义计数变量expire,若预测执行时间与实际执行时间相差数值超过设定阈值,则计数变量expire进行自增;所述后置处理模块根据调度执行模块中的任务执行结果,收集任务执行数据,并进行模型评估反馈,具体为:后置处理模块计算计数变量expire和已执行完成任务数量N的比值,若比值小于阈值,则延用当前的模型进行后续任务的执行耗时预测与调度;若比值大于阈值,则计算当前模型h(X)的决定系数R2;判断是否沿用当前模型,若需要更新模型,则将结果反馈给调度决策生成模块,所述调度决策生成模块采用此时的计算任务数据对模型进行重新训练,得到训练好的新模型,此时暂停waitQueue向executeQueue晋升任务,等待executeQueue队列中原有的任务在旧模型下执行完毕,将旧模型替换为新模型,恢复waitQueue向executeQueue晋升任务。
本发明的有益效果是:对于现有医疗数据计算领域,对于科研计算服务平台,在提交任务后,提供一种智能调度计算的调度方式,用以解决计算任务提交后,在运行环境不佳以及能根据当前硬件情况调整任务执行的速度防止执行计算的服务器发生过载的情况,使得计算任务停止;同时,发明在动态调节调度任务执行的情况下,能及时调整长时间占据计算资源的任务,以防止服务器等硬件资源因某个单一资源而一直处于高负载状态,对任务调节挂起后充分利用资源,减少任务等待执行执行时间,使得整体执行的效率提升。
附图说明
图1为本发明系统设计模块图;
图2为本发明调度流程图。
具体实施方式
以下结合附图对本发明具体实施方式作进一步详细说明。
如图2所示,本发明提供的一种医疗数据计算任务智能调度方法,旨在提高服务器计算性能以及减少任务执行等待的时间,使得整体任务执行保持最佳状态。在医学研究领域中,选择符合某一类病理特征或诊疗记录等进行特定人群研究或进行分析计算为常见的需求,需要生成相关的任务进行筛选过滤从患者记录库中筛选出相关性较强的人群,称之为一次计算任务,当有多个计算任务提交或多个使用研究者进行提交任务时,能否充分利用有限资源进行任务的计算和获取显得尤为关键;本发明方法具体过程如下:
首先对医疗数据的计算任务封装成计算任务Ti,封装信息包括医疗数据计算条件,任务涉及数量规模以及任务运行时所在系统的快照信息;记任务队列为taskQueue,由计算任务按照时间先来后到的顺序构建执行任务队列taskQueue[T1, T2, T3, … ,Ti,… ,Tn], 其中Ti表示第i个计算任务的封装信息,n为队列中任务总数;第i个计算任务执行时对应的快照信息为:{mem_i, unit_i, count_i, diskread_i, diskwrite_i, type_i, netcard_i}, 此元组中的mem表示内存信息,unit表示CPU利用率信息,count表示的是任务的执行规模信息,以及type表示执行任务的类型信息,diskread与diskwrite表示的磁盘的I/O性能,netcard代表网卡当前读写情况;设定次序初始化预热任务阈值为PRE_CONST, 定义i为第i个提交的任务;
当i <= PRE_CONST时,收集任务至存储,按照任务数id对应收集任务信息,以及任
务已执行时间cost_i,整体结构为:{Ti: mem_i, unit_i, count_i, diskread_i,
diskwrite_i,type_i,cost_i },此处整个快照结构体信息记为;
当 i > PRE_CONST时,利用小批量梯度下降法进行获取有监督学习模型参数。设
定批处理数大小为 batcSize,模型中的特征为,q代表特征的数量,此处
特征变量即为上文中提到的快照信息;代表第 i 个训练实例,作为特征矩阵中的第 i
行,是一个向量(vector)。代表特征矩阵中第 i 行的第 j 个特征,也就是第 i 个训练
实例的第 j 个特征。支持多变量的假设 h 表示为,
公式中有 q+1 个参数和 q 个变量,为了使得公式能够简化一些,引入,则公式转化
为:。
于是可得出其算子为:
时,停止计算,获得θ元组;此时获得通过服务器各项参数性能获取预估计算时间的模型h(x)。
设执行任务队列中排序任务为executeQueue,设定执行队列大小为executeSize,而排队等候对列为waitQueue,其大小为waitSize;executeQueue与waitQueue的定义为首尾相接的模式;executeQueue以淘汰任务的方式进入到waitQueue的首部,同时waitQueue首部任务认为高优先级可晋升至executeQueue队列;executeSize : waitSize = 3/7(可根据硬件负载情况调整比例,充分利用硬件资源),此比例可进行调整(遵循统计规律二八原则或三七原则);
设定waitQueue优先级队列,内部优先级规则为:设waitQueue内为数组形式,设waitQueue队列内为数组形式,设第i个排序任务为waitQueue [i],要求waitQueue队列中每个元素满足waitQueue [i] ≤waitQueue [2i+1]且waitQueue [i] ≤waitQueue [2i+2] ,同时为保证exexuteQueue中有充足等待执行的任务,waitQueue执行出队操作,获取顶部元素task_k,将task_k晋升至exexuteQueue队列,同时waitQueue按照内部优先级规则进行一次优先级自适应调整;新任务入队与出队与时,按照约束规则进行约束,调整队列,记录waitQueue的队列顶部元素waitTop,waitTop理论上讲应该是waitQueue中最小的元素;
设定系统接收第i个任务,当i > PRE_CONST时,利用当前的采集到快照结构体信
息为,按照以上推算得到的预估计算时间的模型h(x),可以计算出预估本次任务执行时
间,即记本次运算耗时时间为:predict_i;
按照第i个任务的预估时间predict_i,将其放进优先级队列waitQueue中进行排队,等候调度执行;
记executeQueue的大小为execSize,EXEC_SIZE_MAX为其最大容量空间,若execSize=0或execSize< EXEC_SIZE_MAX,从waitQueue中晋升任至executeQueue队列中,晋升规则为每次从waitQueue的头部取出元素,进入到executeQueue队列中。
限定executeQueue中的元素,排列顺序为FIFO的模式,即先来先服务的模式,在executeQueue队列中的任务会被捞起进行处理;
限定任务执行时间阈值为TASK_EXECUTE_LIMIT,此值作为限定任务单次执行时间的限制值,当任务执行超过约束时间时,设定任务task_i执行时已执行时间为cost_i,总预测时间通过h(x)以及当前硬件的参数值带入到预测函数中,可得到预测执行时间为predict_i,此时进行任务取出降级操作,以此保证后续任务的执行的公平性,防止饥饿状态产生;在TASK_EXECUTE_LIMIT时间内为完成的任务,将进行重新一次优先级排序,ε为缩进因子(0.9 ≤ ε ≤1);rest_i表示未执行完成任务task_i的预测执行时间predict_i与任务已执行时间cost_i之差乘以缩进因子后的数值,可调整缩进因子的值用以控制未执行完成的任务后续的调度优先级;每进行一次重新定义优先级,将调整一次为即可以表示为:rest_i = ε(predict_i – cost_i);
因为TASK_EXECUTE_LIMIT 是给定时间片限制值,此时间内未执行完成,则必有rest_i>0,因为rest_i的获得由上式中ε,predict_i 和 cost_i共同决定,由于0.9≤ ε ≤1,所以可知rest_i ≤ predict_i – cost_i;此时,将任务task_i进行一次重定义优先级,将task_i从exexuteQueue队列移除,然后依据计算所得rest_i重新按照waitQueue队列的入队规则进行入队,使得task_i在waitQueue中排序在正确的位置;当waitQueue [i]中存在rest_i时,以rest_i作为队列排序的依据,当waitQueue [i]中不存在rest_i时,以predict_i作为waitQueue的排序依据;同时,为保证exexuteQueue中有充足等待执行的任务,waitQueue执行出队操作,获取顶部元素task_k,将task_k晋升至exexuteQueue队列,同时waitQueue进行一次优先级自调整,缩进因子ε的作用在于超过时间阈值TASK_EXECUTE_LIMIT的任务在重新进入到等待队列waitQueue时会尽量排在waitQueue队列靠前的位置;这样做的优势在于,一方面令超过时间阈值的任务让出资源重新选定新的任务执行,以获取最多的任务执行;另一方面超过时间阈值的任务在重新进入waitQueue队列的优先级不至于太靠后,使得其排队等候过长时间,保证了整个调度系统的执行效率,从而减少了任务调度系统的饥饿问题,提升整体运行的性能。
对于每一项任务,记录器最终执行耗时与预测耗时元组(对于排队等待的过程目前不记录在最终执行时间内,即只考虑实际运行占用资源运行时间),记为<task_i, real_cost_i, predict_i>,元组中的元素分别为第i个任务,第i个任务真实执行完成的时间,以及第i个任务预测执行时间;
记截止到执行任务的第i个任务,已有N个任务已执行完成;记数变量expire用来记录表示预测误差与实际执行时间相差数值较大的情况下进行自增,即当|real_cost_i –predict_i| > 0.2 * predict_i 时,计数变量expire 数值加1;
当expire/N ≤ 0.2时,延用当前的模型进行后续任务的预估与调度模型的计算;若当expire/N > 0.2时,进行计算用以评估当前模型与现有数据的适配程度以及是否需要进一步调整模型;
若当expire/N > 0.2时,进行评估计算,记录:
记录SSR为回归的平方和,SSR的计算方法为:
由以上公式可知线性情况下,R2的值应该处于[0,1]这个区间之内,描述了拟合公式与实际情况的差异有多少可由自变量来解释,本模型中的含义为实际任务执行时间有多少可由拟合模型与自变量等来解释,在一些场景也叫做拟合优度,此处定义拟合优度阈值为0.95;在上一计算获得决定系数R2小于拟合优度阈值时,继续沿用当前模型进行任务调度;当R2大于拟合优度阈值时,采用此时的计算任务数据准备进行新一轮模型训练;新模型训练完成后,若原有executeQueue队列中若存在正在等待执行的任务,则等待executeQueue队列中任务在旧模型下执行完毕,暂停waitQueue向executeQueue晋升任务;此时进行模型切换,将旧模型替换至新模型,替换完成后重新进行waitQueue向executeQueue晋升任务,此时开始执行的任务全在新模型上;
若原有 executeQueue队列中未存在正在执行的任务,则直接进行旧模型替换,此时也需要挂起executeQueue队列的晋升机制;模型替换结束,重新开始waitQueue进行晋升,新模型应用开始。
如图1所示,本发明还提供了一种实现医疗数据计算任务智能调度方法的系统,该系统包括前置处理模块、调度决策生成模块、调度执行模块和后置处理模块:
所述前置处理模块,进行医疗数据计算任务的初始标号和任务封装,具体为:对医疗数据的计算任务封装成计算任务Ti,封装信息包括医疗数据计算条件,任务涉及数量规模以及任务运行时所在系统的快照信息;记任务队列为taskQueue,由计算任务按照时间先来后到的顺序构建执行任务队列taskQueue[T1, T2, T3, … ,Ti ,… ,Tn], 其中Ti表示第i个计算任务的封装信息,n为队列中任务总数;
所述调度决策生成模块获取前置处理模块中处理后的计算任务作为训练集合,进行预测模型的训练以及输出预测值,具体为:将执行任务队列中的任务数据作为训练集合,通过梯度下降法进行神经网络模型计算,得到执行任务的耗时预测模型h(X),对于后续的任务,直接通过耗时预测模型h(X)预测任务执行耗时;
所述调度执行模块根据调度决策生成模块输出的预测值进行任务调度策略的实施,并设置任务晋升机制,并实现任务的执行,具体如下:
调度执行模块设定执行任务队列中任务执行时间阈值为TASK_EXECUTE_LIMIT,对于正在执行的任务,如果已执行时间小于TASK_EXECUTE_LIMIT完成的任务,记为已完成任务;对于超过TASK_EXECUTE_LIMIT未执行完成的任务,ε为缩进因子;rest_i表示未执行完成任务task_i的预测执行时间predict_i与任务已执行时间cost_i之差乘以缩进因子后的数值,ε值用以控制未执行完成的任务后续执行的优先级;因此,rest_i表示为:rest_i = ε(predict_i – cost_i);
调度执行模块设置任务晋升机制,具体为:设执行任务队列中排序任务队列为executeQueue,执行任务队列中排队等候队列为waitQueue;executeQueue与waitQueue定义为首尾相接的模式;executeQueue队列中未执行完成的任务进入到waitQueue的首部,并依据计算所得rest_i按照waitQueue队列的内部优先级规则进行入队,所述waitQueue队列的内部优先级规则为:设waitQueue队列内为数组形式,设第i个排序任务为waitQueue[i],当waitQueue [i]中存在rest_i时,以rest_i作为队列排序的依据,当waitQueue [i]中不存在rest_i时,以predict_i作为waitQueue的排序依据;要求waitQueue队列中每个元素满足waitQueue [i] ≤waitQueue [2i+1]且waitQueue [i] ≤ waitQueue [2i+2] ,同时为保证exexuteQueue中有充足等待执行的任务,waitQueue执行出队操作,获取顶部元素task_k,将task_k晋升至exexuteQueue队列,同时waitQueue按照内部优先级规则进行一次优先级自适应调整;
对于每一项任务,调度执行模块记录最终执行完成时间real_cost_i,记录截止到执行任务的第i个任务,已有N个任务已执行完成;通过计数变量expire来记录表示预测执行时间与实际执行时间相差数值较大的情况下进行自增,即当|real_cost_i – predict_i| > 0.2 * predict_i 时,计数变量expire 数值加1;
所述后置处理模块根据调度执行模块中的任务执行结果,收集任务执行数据,并进行模型评估反馈,具体为:当expire/N ≤ 0.2时,延用当前的模型进行后续任务的执行耗时预测与调度;若当expire/N > 0.2时,计算当前模型h(X)的决定系数R2;当R2> 0.95时,沿用当前模型,当R2< 0.95时,将结果反馈给调度决策生成模块,所述调度决策生成模块采用此时的计算任务数据对模型进行重新训练,得到训练好的新模型,此时暂停waitQueue向executeQueue晋升任务,等待executeQueue队列中原有的任务在旧模型下执行完毕,将旧模型替换为新模型,恢复waitQueue向executeQueue晋升任务。
以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。例如,对于获取当前任务在不同的服务器硬件条件下,可以调整获取模型的算法,可以使用adaBoost等算法获取预测执行时间的模型,对于执行队列与等待队列的比例可自行调整或者根据硬件运行状态调整;对于扰动因子可进行不同范围的调整以达到控制未完成任务重拍优先级的目的;同时,对于评估模型好坏等方法,可以使用方差以及其他方法进行评判。 因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (9)
1.一种医疗数据计算任务智能调度方法,其特征在于,该方法具体步骤为:
(1)将医疗数据的计算任务按照时间先来后到的顺序构建执行任务队列taskQueue[T1, T2, T3, … ,Ti ,… ,Tn], 其中Ti表示第i个计算任务的封装信息,n为队列中任务总数;计算任务的封装信息包括医疗数据计算条件,任务涉及数量规模以及任务运行时所在系统的快照信息;
(2)将执行任务队列中的任务数据作为训练集合,通过梯度下降法训练,得到执行任务的耗时预测模型h(X),对于后续的任务,直接通过耗时预测模型h(X)预测任务执行耗时;
(3)设定执行任务队列中任务执行时间阈值,对于正在执行的任务,如果已执行时间小于阈值完成的任务,记为已完成任务;对于超过阈值未执行完成的任务,通过下式计算未执行完成的任务后续执行的优先级:
rest_i = ε(predict_i – cost_i)
其中,ε为缩进因子;rest_i表示未执行完成任务task_i的预测执行时间predict_i与任务已执行时间cost_i之差乘以缩进因子后的数值;
(4)设执行任务队列中排序任务队列为executeQueue,执行任务队列中排队等候队列为waitQueue;executeQueue与waitQueue定义为首尾相接的模式;executeQueue队列中未执行完成的任务进入到waitQueue的首部,并依据计算所得rest_i按照waitQueue队列的内部优先级规则进行入队;
(5)对于每一项任务,记录最终执行完成时间real_cost_i,记录截止到执行任务的第i个任务,已有N个任务已执行完成;定义计数变量expire,若预测执行时间与实际执行时间相差数值超过设定阈值,则计数变量expire进行自增;
(6)计算计数变量expire和已执行完成任务数量N的比值,若比值小于阈值,则延用当前的模型进行后续任务的执行耗时预测与调度;若比值大于阈值,则计算当前模型h(X)的决定系数R2,判断是否沿用当前模型,若需要更新模型,则采用此时的计算任务数据对模型进行重新训练,进行模型更新。
2.根据权利要求1所述的一种医疗数据计算任务智能调度方法,其特征在于,步骤(2)具体为:
(2.1)设定任务队列中任务数阈值PRE_CONST,当任务队列中的任务数小于PRE_CONST时,收集每个任务执行参数耗时,记录当前任务规模、执行数据量以及计算机当前硬件负载信息;
(2.2)当任务数等于PRE_CONST时,通过梯度下降法进行一次模型计算,得到执行任务的耗时预测模型h(X);
(2.3)对于任务队列中任务数大于PRE_CONST的部分,根据当前计算机运行的硬件条件,直接通过耗时预测模型h(X)预测任务Ti的耗时为predict_i;其中i>PRE_CONST。
3.根据权利要求1所述的一种医疗数据计算任务智能调度方法,其特征在于,步骤(3)中,根据超过阈值未执行完成的任务计算所得rest_i重新定义该任务优先级,每次定义任务优先级,将重新计算rest_i。
4.根据权利要求1所述的一种医疗数据计算任务智能调度方法,其特征在于,步骤(4)中,排序任务队列executeQueue大小为executeSize,排队等候队列waitQueue大小为waitSize;设定executeSize:waitSize=3/7,新到来的任务按照预测时间predict_i的时间,进入到waitQueue队列之中按照小顶堆方式排序;当executeQueue队列未满时,从waitQueue中选取头部元素进行晋升至executeQueue。
5.根据权利要求1所述的一种医疗数据计算任务智能调度方法,其特征在于,步骤(4)中,所述waitQueue队列的内部优先级规则为:设waitQueue队列内为数组形式,设第i个排序任务为waitQueue [i],当waitQueue [i]中存在rest_i时,以rest_i作为队列排序的依据,当waitQueue [i]中不存在rest_i时,以predict_i作为waitQueue的排序依据;要求waitQueue队列中每个元素满足waitQueue [i] ≤waitQueue [2i+1]且waitQueue [i] ≤waitQueue [2i+2] ,同时为保证exexuteQueue中有充足等待执行的任务,waitQueue执行出队操作,获取顶部元素task_k,将task_k晋升至exexuteQueue队列,同时waitQueue按照内部优先级规则进行一次优先级自适应调整。
6.根据权利要求1所述的一种医疗数据计算任务智能调度方法,其特征在于,步骤(5)中,当|real_cost_i – predict_i| > 0.2 * predict_i时,计数变量expire 数值加1。
7.根据权利要求1所述的一种医疗数据计算任务智能调度方法,其特征在于,步骤(6)中,当R2 > 0.95时,沿用当前模型,当R2< 0.95时,采用此时的计算任务数据对模型进行重新训练,得到训练好的新模型。
8.根据权利要求7所述的一种医疗数据计算任务智能调度方法,其特征在于,新模型训练完成后,若原有executeQueue队列中若存在正在等待执行的任务,则等待executeQueue队列中任务在旧模型下执行完毕,暂停waitQueue向executeQueue晋升任务;此时进行模型切换,将旧模型替换至新模型,替换完成后重新进行waitQueue向executeQueue晋升任务,此时开始执行的任务全在新模型上;若原有 executeQueue队列中未存在正在执行的任务,则直接将旧模型替换为新模型,此时也需要挂起executeQueue队列的晋升机制;模型替换结束,重新开始waitQueue进行晋升,新模型应用开始。
9.一种医疗数据计算任务智能调度系统,其特征在于,该系统包括前置处理模块、调度决策生成模块、调度执行模块和后置处理模块:
所述前置处理模块对医疗数据的计算任务封装成计算任务Ti,封装信息包括医疗数据计算条件,任务涉及数量规模以及任务运行时所在系统的快照信息;记任务队列为taskQueue,由计算任务按照时间先来后到的顺序构建执行任务队列taskQueue[T1, T2,T3, … ,Ti ,… ,Tn], 其中Ti表示第i个计算任务的封装信息,n为队列中任务总数;计算任务的封装信息包括医疗数据计算条件,任务涉及数量规模以及任务运行时所在系统的快照信息;
所述调度决策生成模块将执行任务队列中的任务数据作为训练集合,通过梯度下降法进行神经网络模型计算,得到执行任务的耗时预测模型h(X),对于后续的任务,直接通过耗时预测模型h(X)预测任务执行耗时;
所述调度执行模块设定执行任务队列中任务执行时间阈值,对于正在执行的任务,如果已执行时间小于阈值完成的任务,记为已完成任务;对于超过阈值未执行完成的任务,定义缩进因子ε,设定rest_i 表示未执行完成任务task_i的预测执行时间与实际已执行时间之差乘以缩进因子后的数值;ε值用以控制未执行完成的任务后续执行的优先级;因此,rest_i表示为:rest_i = ε(predict_i – cost_i);
调度执行模块设置任务晋升机制,具体为:设执行任务队列中排序任务队列为executeQueue,执行任务队列中排队等候队列为waitQueue;executeQueue与waitQueue定义为首尾相接的模式;executeQueue队列中未执行完成的任务进入到waitQueue的首部,并依据计算所得rest_i按照waitQueue队列的内部优先级规则进行入队,所述waitQueue队列的内部优先级规则为:设waitQueue队列内为数组形式,设第i个排序任务为waitQueue[i],当waitQueue [i]中存在rest_i时,以rest_i作为队列排序的依据,当waitQueue [i]中不存在rest_i时,以predict_i作为waitQueue的排序依据;要求waitQueue队列中每个元素满足waitQueue [i] ≤waitQueue [2i+1]且waitQueue [i] ≤waitQueue [2i+2] ,同时为保证exexuteQueue中有充足等待执行的任务,waitQueue执行出队操作,获取顶部元素task_k,将task_k晋升至exexuteQueue队列,同时waitQueue按照内部优先级规则进行一次优先级自适应调整;
对于每一项任务,调度执行模块记录最终执行完成时间real_cost_i,记录截止到执行任务的第i个任务,已有N个任务已执行完成;定义计数变量expire,若预测执行时间与实际执行时间相差数值超过设定阈值,则计数变量expire进行自增;所述后置处理模块根据调度执行模块中的任务执行结果,收集任务执行数据,并进行模型评估反馈,具体为:后置处理模块计算计数变量expire和已执行完成任务数量N的比值,若比值小于阈值,则延用当前的模型进行后续任务的执行耗时预测与调度;若比值大于阈值,则计算当前模型h(X)的决定系数R2;判断是否沿用当前模型,若需要更新模型,则将结果反馈给调度决策生成模块,所述调度决策生成模块采用此时的计算任务数据对模型进行重新训练,得到训练好的新模型,此时暂停waitQueue向executeQueue晋升任务,等待executeQueue队列中原有的任务在旧模型下执行完毕,将旧模型替换为新模型,恢复waitQueue向executeQueue晋升任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111251644.4A CN113687938B (zh) | 2021-10-27 | 2021-10-27 | 一种医疗数据计算任务智能调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111251644.4A CN113687938B (zh) | 2021-10-27 | 2021-10-27 | 一种医疗数据计算任务智能调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113687938A CN113687938A (zh) | 2021-11-23 |
CN113687938B true CN113687938B (zh) | 2022-02-22 |
Family
ID=78588221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111251644.4A Active CN113687938B (zh) | 2021-10-27 | 2021-10-27 | 一种医疗数据计算任务智能调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113687938B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115145591B (zh) * | 2022-08-31 | 2022-12-06 | 之江实验室 | 一种基于多中心的医疗etl任务调度方法、系统及装置 |
CN115495224B (zh) * | 2022-11-18 | 2023-03-24 | 天河超级计算淮海分中心 | 基于优先级的超算节点使用方法、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239194A (zh) * | 2014-09-12 | 2014-12-24 | 上海交通大学 | 基于bp神经网络的任务完成时间预测方法 |
CN108009023A (zh) * | 2017-11-29 | 2018-05-08 | 武汉理工大学 | 混合云中基于bp神经网络时间预测的任务调度方法 |
CN113032116A (zh) * | 2021-03-05 | 2021-06-25 | 广州虎牙科技有限公司 | 任务时间预测模型的训练方法、任务调度方法及相关装置 |
US20210295100A1 (en) * | 2019-04-08 | 2021-09-23 | Tencent Technology (Shenzhen) Company Limited | Data processing method and apparatus, electronic device, and storage medium |
CN113535387A (zh) * | 2021-06-23 | 2021-10-22 | 之江实验室 | 一种异构感知的gpu资源分配与调度方法及系统 |
-
2021
- 2021-10-27 CN CN202111251644.4A patent/CN113687938B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239194A (zh) * | 2014-09-12 | 2014-12-24 | 上海交通大学 | 基于bp神经网络的任务完成时间预测方法 |
CN108009023A (zh) * | 2017-11-29 | 2018-05-08 | 武汉理工大学 | 混合云中基于bp神经网络时间预测的任务调度方法 |
US20210295100A1 (en) * | 2019-04-08 | 2021-09-23 | Tencent Technology (Shenzhen) Company Limited | Data processing method and apparatus, electronic device, and storage medium |
CN113032116A (zh) * | 2021-03-05 | 2021-06-25 | 广州虎牙科技有限公司 | 任务时间预测模型的训练方法、任务调度方法及相关装置 |
CN113535387A (zh) * | 2021-06-23 | 2021-10-22 | 之江实验室 | 一种异构感知的gpu资源分配与调度方法及系统 |
Non-Patent Citations (2)
Title |
---|
A Performance Model to Estimate Execution Time of Scientific Workflows on the Cloud;Ilia Pietri等;《2014 9th Workshop on Workflows in Support of Large-Scale Science》;20150126;全文 * |
基于BP神经网络的星上任务可调度性预测方法;邢立宁等;《第十七届中国管理科学学术年会》;20190118;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113687938A (zh) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113687938B (zh) | 一种医疗数据计算任务智能调度方法及系统 | |
CN110096349B (zh) | 一种基于集群节点负载状态预测的作业调度方法 | |
Zhang et al. | Slaq: quality-driven scheduling for distributed machine learning | |
WO2023184939A1 (zh) | 基于深度强化学习的云数据中心自适应高效资源分配方法 | |
US20220215275A1 (en) | Predictive asset optimization for computer resources | |
Fan et al. | Deep reinforcement agent for scheduling in HPC | |
Guo et al. | Cloud resource scheduling with deep reinforcement learning and imitation learning | |
CN104317658B (zh) | 一种基于MapReduce的负载自适应任务调度方法 | |
Kang et al. | Managing deadline miss ratio and sensor data freshness in real-time databases | |
US8924981B1 (en) | Calculating priority indicators for requests in a queue | |
US20170316054A9 (en) | Managing Execution Of Database Queries | |
CN113515351B (zh) | 一种基于能耗与QoS协同优化的资源调度实现方法 | |
US8966493B1 (en) | Managing execution of multiple requests in a job using overall deadline for the job | |
CN115237581A (zh) | 一种面向异构算力的多策略智能调度方法和装置 | |
CN108268546A (zh) | 一种优化数据库的方法及装置 | |
CN113535387A (zh) | 一种异构感知的gpu资源分配与调度方法及系统 | |
JP7111779B2 (ja) | コンピュータリソースのための予測的資産最適化 | |
CN108958919A (zh) | 一种云计算中有期限约束的多dag任务调度费用公平性评估模型 | |
US20210004675A1 (en) | Predictive apparatus and method for predicting workload group metrics of a workload management system of a database system | |
Funika et al. | Evaluating the use of policy gradient optimization approach for automatic cloud resource provisioning | |
CN112486683B (zh) | 处理器控制方法、控制设备以及计算机可读存储介质 | |
CN115454585A (zh) | 一种面向边缘设备深度学习模型推理的自适应批处理和并行调度系统 | |
Li et al. | Mrsch: Multi-resource scheduling for hpc | |
El Danaoui et al. | A Cost-Effective Query Optimizer for Multi-tenant Parallel DBMSs | |
Borghesi | Power-Aware Job Dispatching in High Performance Computing Systems |
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 |