管理用于临床应用程序的计算机资源的制作方法

文档序号:32752720发布日期:2022-12-31 01:50阅读:36来源:国知局
管理用于临床应用程序的计算机资源的制作方法
管理用于临床应用程序的计算机资源
1.相关申请的交叉引用
2.本技术要求于2020年5月20日提交的题为“managing computer resources for clinical applications”的美国临时专利申请序列号63/027,565和于2020年10月7日提交的名称为“managing computer resources for clinical applications”的美国非临时申请序列号17/064,750的优先权。上述申请的全部内容通过引用的方式并入本文。
技术领域
3.本公开涉及可管理用于各种临床应用程序的计算机资源的一种或多种计算机实现的方法和/或系统,并且更具体地说,涉及响应于对可用计算资源的评估来管理一种或多种基于医学的计算机程序应用程序的执行。


背景技术:

4.在用于医学目的的计算机化系统中,通常存在有限的一组计算资源可用于系统所采用的各种临床应用程序。例如,与医学扫描、数据处理和/或图像渲染相关的临床应用程序可用于同一计算机系统上。在大多数情况下,临床应用程序具有不同级别的临床优先级,这些不同级别的临床优先级涉及相应应用程序应当何时运行的紧迫性、和/或数据处理延迟是否会对患者健康产生负面影响。例如,由于依赖于处理的一个或多个治疗的时间敏感特性,与紧急情况(例如,中风和/或严重创伤的情况)相关的数据处理可与高临床优先级相关联。在多个临床应用程序共享有限的一组计算资源的情况下,当需要快速执行紧急临床应用程序时,可占用大部分资源。


技术实现要素:

5.以下呈现了发明内容以提供对本发明的一个或多个实施方案的基本理解。本发明内容不旨在标识关键或重要元素,也不旨在描绘具体实施方案的任何范围或权利要求的任何范围。其唯一目的是以简化形式呈现概念,作为稍后呈现的更详细描述的序言。在本文所述的一个或多个实施方案中,描述了可基于临床优先级来管理计算资源的系统、计算机实现的方法、装置和/或计算机程序产品。
6.根据一个实施方案,提供了一种系统。该系统可包括处理器,该处理器可操作地耦接到该存储器,该处理器执行存储在该存储器中的该计算机可执行部件。该计算机可执行部件可包括优先级部件,该优先级部件可基于由计算机应用程序执行的任务的临床优先级来优先化这些计算机应用程序。该临床优先级可表征这些任务的时间敏感性。该计算机可执行部件还可包括资源池部件,该资源池部件可跨多个资源池划分计算资源,并可基于该临床优先级将这些计算机应用程序分配给该多个资源池。
7.根据另一个实施方案,提供了一种计算机实现的方法。该计算机实现的方法可包括由可操作地耦接至处理器的系统监视与计算资源的供应相关联的任务。该计算机实现的方法还可包括由该系统标识表征该任务的时间敏感性的这些任务的临床优先级。此外,该
计算机实现的方法可包括由该系统通过基于该临床优先级抢占完成计算机工作负载来加速实现这些任务中的一个或多个任务。
8.根据另一个实施方案,提供了一种用于管理计算资源的计算机程序产品。该计算机程序产品可包括计算机可读存储介质,该计算机可读存储介质具有利用其体现的程序指令。该程序指令可由处理器执行,以使得该处理器由该处理器监视与计算资源的供应相关联的任务。该程序指令还可使得该处理器由该处理器标识表征这些任务的时间敏感性的这些任务的临床优先级。此外,该程序指令可使得该处理器由该处理器通过基于该临床优先级抢占完成计算机工作负载来加速实现这些任务中的一个或多个任务。
附图说明
9.图1示出了根据本文所述的一个或多个实施方案的示例性、非限制性系统的框图,该系统可基于可用计算资源和临床优先级来管理各种临床应用程序的执行。
10.图2示出了根据本文所述的一个或多个实施方案的示例性、非限制性系统的框图,该系统可包括资源分配部件,该资源分配部件可确定计算资源的状态。
11.图3示出了根据本文所述的一个或多个实施方案的示例性、非限制性系统的框图,该系统可包括资源池部件302,该资源池部件可在多个资源池中划分计算资源。
12.图4示出了根据本文所述的一个或多个实施方案的示例性、非限制性方法的流程图,该方法可被实现来促进计算资源分布。
13.图5示出了根据本文所述的一个或多个实施方案的示例性、非限制性系统的框图,该系统可基于临床优先级抢占执行一个或多个临床应用程序。
14.图6示出了根据本文所述的一个或多个实施方案的示例性、非限制性的计算机实现的方法的流程图,该方法可基于可用的计算资源和临床优先级来促进管理各种临床应用程序的执行。
15.图7示出了根据本文所述的一个或多个实施方案的示例性、非限制性的计算机实现的方法的流程图,该方法可基于可用的计算资源和临床优先级来促进管理各种临床应用程序的执行。
16.图8示出了根据本文所述的一个或多个实施方案的示例性、非限制性的计算机实现的方法的流程图,该方法可基于可用的计算资源和临床优先级来促进管理各种临床应用程序的执行。
17.图9示出了根据本文所述的一个或多个实施方案的示例性、非限制性的计算机实现的方法的流程图,该方法可基于可用的计算资源和临床优先级来促进管理各种临床应用程序的执行。
18.图10示出了根据本文所述的一个或多个实施方案的示例性、非限制性的计算机实现的方法的流程图,该方法可基于可用的计算资源和临床优先级来促进管理各种临床应用程序的执行。
19.图11示出了可在其中促进本文所述的一个或多个实施方案的示例性、非限制性操作环境的框图。
具体实施方式
20.以下具体实施方式仅仅是示例性,并非旨在限制实施方案和/或实施方案的应用或使用。此外,并不意图受前述“背景技术”或“发明内容”部分或者“具体实施方式”部分中提出的任何明示或暗示信息的约束。
21.现在参考附图描述一个或多个实施方案,其中相同的附图标号始终用于表示相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对一个或多个实施方案的更透彻理解。然而,很明显,在各种情况下,可以在没有这些具体细节的情况下实践一个或多个实施方案。
22.本发明的各种实施方案可涉及计算机处理系统、计算机实现的方法、装置和/或计算机程序产品,其基于关于患者健康的临床优先级,促进临床计算机应用程序的执行的高效、有效和自主(例如,没有直接人类指导)管理。例如,本文所述的一个或多个实施方案可涉及基于临床优先级来分析临床应用程序,该临床优先级涉及与接收临床应用程序的结果相关联的紧迫性。例如,具有高临床优先级的临床应用程序可以是处理在一个或多个时间敏感的紧急医学治疗中使用的数据的应用程序。本文所述的各种实施方案可以重定向计算资源,使得具有高临床优先级的计算机程序应用程序和/或任务可在具有较低临床优先级的其他未决应用程序和/或任务之上被迅速执行。本文所述的一个或多个实施方案可采用一个或多个人工智能和/或深度学习算法来使永久的计算机应用程序和/或任务以及高优先级计算机应用程序和/或任务能够运行并满足时延要求,以促进积极的患者结果。因此,可利用医学环境中采用的计算机系统的全计算潜力,以迅速的方式执行高临床优先级的应用程序和/或任务。
23.计算机处理系统、计算机实现的方法、装置和/或计算机程序产品采用硬件和/或软件来解决本质上高度技术性的问题(例如,跨用于医学目的的计算机系统分配计算资源),这些问题不是抽象的并且不能由人类作为一组精神行为来执行。例如,在基于临床优先级确定用于将资源导向临床应用程序的有效手段时,个人或多个个人无法容易地和/或有效地确定与计算机系统的计算资源相关的未决临床应用程序的计算需求。
24.此外,通过定义基于临床优先级分配计算机资源的计算机资源方案,本文所述的一个或多个实施方案可构成对常规临床应用程序执行的技术改进。另外,本文所述的各种实施方案可通过减少执行高临床优先级任务的计算机应用程序和/或执行响应于来自医学设备的医学数据流的永久任务的应用程序的时延,展示对常规临床应用程序执行的技术改进。
25.此外,本文所述的一个或多个实施方案可通过管理有限的一组计算资源来执行多个医学应用程序,同时最小化时间敏感应用程序和/或任务所经历的时延,从而具有实际应用。例如,本文所述的各种实施方案可将计算资源划分成多个池,其中每个医学应用程序被分配给相应池。可基于可用的计算资源和医学应用程序的需求来定义资源池。由此,具有高临床优先级的多个应用程序可在单独的计算资源池上运行,而不会延迟彼此的执行。本文所述的一个或多个实施方案还可控制每个资源池所采用的执行顺序。由此,一个或多个实施方案可抢占执行一个或多个应用程序,以加速与高临床优先级相关联的另一个应用程序的执行。
26.如本文所用,术语“临床优先级”可指基于医学治疗和/或诊断的时间敏感性,与计
算机应用程序和/或任务的执行相关联的优先级水平。例如,具有高临床优先级的计算机应用程序和/或任务可以是在一个或多个紧急医学情况(例如,涉及中风、中暑和/或严重创伤的情况)的治疗和/或诊断中利用所得数据的应用程序和/或任务。用于促进不太紧急的医学意义的治疗和/或诊断的计算机应用程序和/或任务可与较低的临床优先级相关联。由此,临床优先级可描述与计算机应用程序和/或任务的执行相关联的时间敏感性,其中临床优先级随着执行变得对时间更加敏感而增加。例如,与具有高临床优先级的计算机应用程序和/或任务的执行中的延迟所导致的负面影响相比,具有低临床优先级的计算机应用程序和/或任务的执行中的延迟对医学治疗和/或诊断的有效性具有较小的负面影响。
27.图1示出了示例性、非限制性系统100的框图,该系统可基于临床优先级来管理各种计算机应用程序的执行。为简洁起见,省略了对本文描述的其他实施方案中采用的类似元素的重复描述。本发明的各种实施方案中的系统(例如,系统100等)、装置或过程的方面可构成包含在一个或多个机器中的一个或多个机器可执行部件(例如,包含在与一个或多个机器相关联的一个或多个计算机可读介质中)。当由一个或多个机器(例如,计算机、计算设备、虚拟机等)执行时,此类部件可使机器执行所述操作。
28.如图1所示,系统100可包括一个或多个服务器102、一个或多个网络104、输入设备106和/或临床计算机108。服务器102可包括管理部件110。管理部件110还可包括通信部件112、监视部件114、优先级部件116和/或资源分配部件118。此外,服务器102可包括至少一个存储器120或与该至少一个存储器相关联。服务器102还可包括系统总线122,该系统总线可耦接到各种部件,诸如但不限于管理部件110和相关联的部件、存储器120和/或处理器124。虽然图1中示出了服务器102,但是在其他实施方案中,各种类型的多个设备可与图1所示的特征相关联或包括图1所示的特征。此外,服务器102可与一个或多个云计算环境通信。
29.一个或多个网络104可包括有线和无线网络,包括但不限于蜂窝网络、广域网(“wan”)(例如,互联网)或局域网(“lan”)。例如,服务器102可使用几乎任何期望的有线或无线技术与一个或多个输入设备106和/或临床计算机108通信(反之亦然),所述有线或无线技术包括例如但不限于:蜂窝、wan、无线保真(“wi-fi”)、wi-max、wlan、蓝牙技术、它们的组合等。此外,尽管在所示的实施方案中,管理部件110可被提供在一个或多个服务器102上,但是应当理解,系统100的架构不限于此。例如,管理部件110或管理部件110的一个或多个部件可位于另一个计算机设备处,诸如另一个服务器设备、客户端设备等。
30.一个或多个输入设备106可包括一个或多个计算机化设备,其可包括但不限于:个人计算机、台式计算机、膝上型计算机、蜂窝电话(例如,智能电话)、计算机化平板电脑(例如,包括处理器)、智能手表、键盘、触摸屏、鼠标、它们的组合等。在各种实施方案中,可采用一个或多个输入设备106来将一个或多个执行请求125输入到系统100中,从而与服务器102和/或一个或多个临床计算机108共享(例如,经由直接连接和/或经由一个或多个网络104)所述数据。例如,一个或多个输入设备106可向通信部件112发送数据(例如,经由直接连接和/或经由一个或多个网络104)。另外,一个或多个输入设备106可包括一个或多个显示器,其可向用户呈现由系统100生成的一个或多个输出。例如,一个或多个显示器可包括但不限于:阴极管显示器(“crt”)、发光二极管显示器(“led”)、电致发光显示器(“eld”)、等离子显示面板(“pdp”)、液晶显示器(“lcd”)、有机发光二极管显示器(“有机发光二极管”)、它们的组合等。
31.在各种实施方案中,一个或多个输入设备106和/或一个或多个网络104可用于将一个或多个设置和/或命令输入到系统100中。例如,在本文所述的各种实施方案中,一个或多个输入设备106可用于操作和/或操纵服务器102和/或相关联的部件。另外,一个或多个输入设备106可用于显示由服务器102和/或相关联的部件生成的一个或多个输出(例如,显示、数据、可视化等)。此外,在一个或多个实施方案中,一个或多个输入设备106可被包括在云计算环境中,和/或可操作地耦接到该云计算环境。在一个或多个实施方案中,一个或多个输入设备106可用于生成和/或共享一个或多个执行请求125,该一个或多个执行请求可描绘将由临床计算机108执行的一个或多个任务。例如,执行请求125可指示一个或多个临床计算机108收集和/或处理与医学治疗、观察和/或诊断有关的期望数据。
32.一个或多个临床计算机108可以是用于实现执行请求125和/或促进一个或多个医学治疗、观察和/或诊断的一个或多个计算机系统。例如,一个或多个临床计算机108可执行各种医学成像过程,诸如但不限于:磁共振成像(“mri”)、超声波、计算机断层摄影术(ct)扫描、x射线、女性健康过程(例如,乳房x线照相术)、患者生命信号监视(例如,监视血压和/或呼吸信号)、心电图(“ekg”)、来自重症监护病房的实况视频流、它们的组合等。在另一个示例中,一个或多个临床计算机108可执行各种数据处理过程,诸如但不限于:图像调整(例如,噪声和/或移动校正)、数据传输、电子健康记录管理、医学诊断确定、医学数据库分析(例如,包括患者的病史、药物和/或过程)、电子处方、预约日程安排、医学设备管理、医院管理、医学账单、它们的组合等。在各种实施方案中,一个或多个临床计算机108可被医学专业人员用来收集关于患者状况的数据(例如,执行测试和/或扫描)和/或管理医学设备(例如,控制一个或多个医学仪器)。
33.另外,一个或多个临床计算机108可包括一个或多个临床应用程序126。一个或多个临床应用程序126可以是可由一个或多个临床计算机108执行的一个或多个计算机程序,以执行由执行请求125描绘的各种任务。例如,中风评估临床应用程序126可以是计算机程序,其指示一个或多个临床计算机108以定义的顺序操作一个或多个扫描仪和/或传感器,以便收集关于患者状况的规定量和/或类型的数据。在另一个示例中,ct扫描临床应用程序126可以是指示一个或多个临床计算机108根据一个或多个定义的参数执行ct扫描的计算机程序。在各种实施方案中,一个或多个执行请求125可包括一个或多个设置(例如,由医学专业人员经由一个或多个输入设备106定义),该一个或多个设置可指导一个或多个临床应用程序126在完成期望任务时的性能。
34.在一个或多个实施方案中,由一个或多个临床计算机108执行的每个功能可由一个或多个相关联的临床应用程序126来促进。另外,可经由一个或多个临床计算机108采用一个或多个临床应用程序126来实现由一个或多个输入设备106输入到系统100中的执行请求125。例如,系统100的一个或多个用户(例如,医学专业人员)可采用一个或多个输入设备106来输入一个或多个执行请求125,该一个或多个执行请求待由一个或多个临床计算机108完成和/或由一个或多个临床应用程序126实现。执行请求125可经由一个或多个网络104和/或直接电连接与一个或多个服务器102和/或临床计算机108共享。
35.此外,一个或多个执行请求125可由临床优先级来表征。在一个或多个实施方案中,相应执行请求125可由继承临床优先级来表征。例如,执行请求125可由基于类型的临床优先级来表征。例如,一个或多个数据库(例如,存储在一个或多个存储器120中)可列出可
由输入设备106提交和/或由临床计算机108实现的执行请求125的类型以及与每种类型相关联的临床优先级。
36.在一些实施方案中,执行请求125的临床优先级可基于其生成的上下文而变化。例如,当生成针对医学扫描的执行请求125以促进例行检查时,该执行请求可具有低临床优先级,但是当生成该执行请求125以观察外伤患者的状况时,该执行请求可具有高临床优先级。执行请求125的上下文可由一个或多个输入设备106在执行请求125的开发中定义。例如,执行请求125可描绘针对临床应用程序126的结果的预期目的,和/或针对临床应用程序126的需求;其中可基于预期目的和/或需求来定义临床优先级。在一些实施方案中,与执行请求125相关联的临床优先级可由一个或多个输入设备106预定义。例如,医学专业人员可采用一个或多个输入设备106将执行请求125输入到系统100中,并在执行请求125内定义临床优先级。
37.在各种实施方案中,通信部件112可经由一个或多个网络104和/或直接电连接从一个或多个输入设备106和/或临床计算机108接收数据。此外,通信部件112可与管理部件110的一个或多个相关联的部件共享所接收的数据。例如,通信部件112可接收由一个或多个输入设备106生成和/或输入的一个或多个执行请求125。在另一个示例中,通信部件112可从一个或多个临床计算机108接收数据,例如关于:一个或多个临床计算机108的计算资源、由临床计算机108执行的临床应用程序126、在用于由临床计算机108执行的队列中的临床应用程序126、它们的组合等。
38.在一个或多个实施方案中,监视部件114可监视与一个或多个临床计算机108的计算资源128的供应相关联的任务。例如,监视部件114可监视一个或多个临床计算机108,以确定一个或多个临床应用程序126何时被执行。在另一个示例中,监视部件114可监视一个或多个输入设备106,以检测一个或多个执行请求125的生成和/或提交。
39.在一个或多个实施方案中,优先级部件116可向由一个或多个输入设备106生成的执行请求125分配一个或多个临床优先级。例如,优先级部件116可分析执行请求125,以基于其类型来确定相关联的临床优先级。例如,优先级部件116可基于所包括的标识符和/或将被用来实现执行请求125的相应临床应用程序126来标识执行请求125的类型。此外,优先级部件116可参考临床优先级数据库(例如,存储在存储器120中),该临床优先级数据库描绘了用于每种类型的可能执行请求125的相应临床优先级。
40.在另一个示例中,优先级部件116可分析执行请求125,以基于执行请求125中描述的上下文来确定相关联的临床优先级。例如,执行请求125可描述与执行请求125的生成相关联的预期目的(例如,可描述执行请求125是关于危及生命的伤害而生成的),并且优先级部件116可基于预期目的向执行请求125分配临床优先级。在另一个示例中,执行请求125可描述与实现相关联的时间敏感度和/或紧迫性(例如,执行请求125可被标记为紧急),并且优先级部件116可基于时间敏感度和/或紧迫性向执行请求125分配临床优先级。在进一步的实例中,执行请求125可描述请求的来源(例如,可描述医学设施的单元,诸如重症监护病房,和/或提交执行请求125的医学专业人员),并且优先级部件116可基于该来源向执行请求125分配临床优先级。
41.在各种实施方案中,优先级部件116可采用一个或多个人工智能技术来从过去的临床优先级分配中学习和/或确定待分配给新的执行请求125的临床优先级。例如,优先级
部件116可采用一个或多个机器学习模型来从预先分配了临床优先级的过去的执行请求125中学习(例如,由医学专业人员采用输入设备106来生成请求),并且应用所学的经验教训来将临床优先级分配给没有预先分配临床优先级的所接收的执行请求125。例如,优先级部件116可基于与具有相同或类似参数(例如,关于相同类型的临床应用程序126、预期用途和/或生成源)的过去的执行请求125相关联的临床优先级,向执行请求125分配临床优先级。
42.在一个或多个实施方案中,资源分配部件118可确定一个或多个临床计算机108之间的计算机资源分配。例如,一个或多个临床计算机108可具有有限量的计算资源128,其中资源分配部件118可确定临床计算机108的计算容量。例如,一个或多个临床计算机108的计算资源128可包括但不限于:中央处理单元(“cpu”)核、计算机存储器、加速器处理核(例如,图形处理单元(“gpu”)核)、加速器存储器、它们的组合等。一个或多个临床计算机108可利用计算资源128来执行一个或多个临床应用程序126。因此,可用于实现执行请求125的计算资源128的量可取决于临床计算机108的容量和/或当前正在用于执行临床应用程序126的计算资源128的量。
43.图2示出了根据本文所述的一个或多个实施方案的示例性、非限制性资源分配部件118的示意图,该部件还包括所需资源部件202、可用资源部件204和/或计算机容量部件206。为简洁起见,省略了对本文描述的其他实施方案中采用的类似元素的重复描述。
44.在各种实施方案中,所需资源部件202可确定实现一个或多个执行请求125所需的计算资源128。例如,所需资源部件202可确定实现执行请求125将需要多少cpu核和/或加速器核,和/或实现执行请求125所需的计算机和/或加速器存储器的量。在一个或多个实施方案中,实现执行请求125所需的计算资源128可取决于待实现的执行请求125的类型和/或由执行请求125指导的任务的类型。
45.在一个或多个实施方案中,可用资源部件204可跟踪临床计算机108的计算资源128的可用性。例如,可用资源部件204可跟踪临床计算机108的每个计算资源128的状态。随着临床计算机108执行临床应用程序126,并由此占用计算资源128,可用资源部件204可更新计算资源128的状态。因此,在各种实施方案中,可用资源部件204可标识由临床计算机108所占用的计算资源128以及在给定时刻空闲用于占用的计算资源128。
46.在一个或多个实施方案中,计算机容量部件206可基于临床计算机108的计算资源128来确定临床计算机108的计算容量。例如,计算机容量部件206可确定计算资源128是否启用了一个或多个计算特征。例如,计算机容量部件206可标识计算资源128的一个或多个存储器单元,以确定一个或多个临床计算机108的存储容量。在另一个实例中,计算机容量部件206可标识包括在计算资源128中的cpu和/或加速器,以确定一个或多个临床计算机108的数据处理容量。在进一步的实例中,计算机容量部件206可分析计算资源128,以确定一个或多个临床计算机108是否可例如:采用一个或多个存储器交换过程、利用虚拟存储器、驱逐和/或加载存储器数据、它们的组合等。
47.图3示出了根据本文所述的一个或多个实施方案的示例性、非限制性管理部件110的图,该管理部件还包括资源池部件302。为简洁起见,省略了对本文描述的其他实施方案中采用的类似元素的重复描述。在各种实施方案中,资源池部件302可将临床计算机108的计算资源128划分成分配给相应临床应用程序126的所定义的资源池。
48.在一个或多个实施方案中,资源池部件302可将计算资源128(例如,cpu核、cpu存储器、gpu、其他加速器、永久存储、网络存储等)划分成多个资源池。每个资源池可以是可用于执行临床应用程序126的计算资源128的集合。由资源池部件302定义的资源池的数量可取决于与高临床优先级相关联的临床应用程序126的数量和/或永久临床应用程序126的数量。根据本文所述的各种实施方案,优先级部件116可标识与可由一个或多个临床计算机108执行的多个临床应用程序126中的每一个临床应用程序相关联的临床优先级的级别。由此,资源池部件302可标识具有高临床优先级的临床应用程序126的数量。例如,在优先级部件116经由优先级值描绘临床优先级的情况下,资源池部件302可针对每个临床应用程序126定义资源池,该临床应用程序由大于或等于所定义的阈值的优先级值表征。在另一个示例中,在优先级部件116经由优先级标识符描绘临床优先级的情况下(例如,临床应用程序126可被标记为“高优先级”或“正常优先级”),资源池部件302可针对由高临床优先级标识符表征的每个临床应用程序126定义资源池(例如,针对被标记为“高优先级”的每个临床应用程序126)。在一个或多个实施方案中,资源池部件302可针对每个高临床优先级临床应用程序126定义相应资源池。
49.另外,资源池部件302可针对每个永久临床应用程序126定义相应资源池。在各种实施方案中,永久临床应用程序126可以是要求对执行请求125和/或医学设备数据处理的低时延响应的临床应用程序126。例如,永久临床应用程序126可以是临床应用程序126,其中临床应用程序126的性能可取决于临床应用程序126与一个或多个输入(例如,由执业医师和/或医学设备经由一个或多个输入设备106输入)之间的时延。永久临床应用程序126的示例可包括但不限于:高急性患者监视、临床医生图像操纵分析、临床设备和医学设备(例如,医学服务)、数据收集和聚合、体绘制交互式图像体操纵、它们的组合等。
50.通过将资源池的总数定义为高临床优先级临床应用程序126和永久临床应用程序126的函数,资源池部件302可确保高临床优先级临床应用程序126和永久临床应用程序126能够按需访问计算资源128并且具有低激活时延。此外,资源池部件302可定义资源池,使得每个资源池的计算资源128不重叠。例如,在资源池部件302定义三个资源池“a”、“b”和“c”的情况下;分配给资源池a的计算资源128可不同于分配给资源池b和c的那些计算资源128。同样,分配给资源池b的计算资源128可不同于分配给资源池a和c的那些计算资源128。此外,分配给资源池c的计算资源128可不同于分配给资源池a和b的那些计算资源128。由此,由资源池部件302定义的每个资源池可以是可用于一个或多个临床计算机108的总计算资源128的不同的、非重叠的子集分配。
51.在各种实施方案中,资源池部件302还可将一个或多个临床应用程序126的执行分配给资源池。例如,每个高临床优先级临床应用程序126和/或永久临床应用程序126可被分配相应资源池,其中临床应用程序126的执行通过采用分配给资源池的计算资源128的子集来实现。例如,在临床应用程序126包括两个高临床优先级应用程序126和一个永久临床应用程序126的情况下,资源池部件302可定义至少三个资源池(例如,资源池“a”、“b”和“c”)。
52.此外,在一个或多个实施方案中,资源池的形成可用于根据资源池到临床应用程序126的分配来保留计算资源128。例如,分配给资源池a的临床应用程序126不能采用分配给资源池b的计算资源128。至少因为高临床优先级临床应用程序126和/或永久临床应用程序126已经经由资源池保留了计算资源128,所以资源池部件302可使这些临床应用程序126
能够按需并且以低激活时延访问它们的分配的计算资源128。此外,可同时执行临床应用程序126,而不会经历时延损害。例如,在资源池c上运行的永久临床应用程序126可与在资源池a上运行的高临床优先级临床应用程序126同时执行,因为分配给资源池a和c的计算资源128彼此不同。
53.此外,在一个或多个实施方案中,每个资源池的计算容量(例如,如根据本文所述的各种实施方案由计算机容量部件206确定的)可变化。例如,资源池部件302可基于执行分配给资源池的高临床优先级临床应用程序126或永久临床应用程序126所需的资源(例如,如根据各种实施方案由所需资源部件202确定的)来定义分配给资源池的计算资源128的组成。由此,资源池部件302可将临床应用程序126分配给具有足够分配的计算资源128的资源池,以促进执行。
54.在各种实施方案中,资源池部件302可基于高临床优先级临床应用程序126是否预期同时运行来将重叠的计算资源128分配给多个资源池。例如,在第一高临床优先级临床应用程序126不可能与第二高临床优先级临床应用程序126同时执行的情况下,分配给第一高临床优先级临床应用程序126的第一资源池可与分配给第二高临床优先级临床应用程序126的第二资源池共享一个或多个计算资源128。由于第一高临床优先级应用程序和第二高临床优先级应用程序126不可能同时执行,所以在第一高临床优先级临床应用程序126的执行期间采用共享计算资源128不可能与第二高临床优先级临床应用程序126的执行冲突,反之亦然。
55.在一个或多个实施方案中,资源池部件302可基于临床应用程序126执行的历史记录来确定多个高临床优先级临床应用程序126将被同时执行的似然性。例如,监视部件114可生成应用程序日志304,其跟踪一个或多个临床计算机108何时执行每个临床应用程序126和/或每个临床应用程序126在执行期间运行了多长时间。资源池部件302可分析应用程序日志304,以确定给定临床应用程序126多长时间同时运行一次,并且由此资源池部件302可计算表征给定临床应用程序126将在未来同时运行的概率的似然值。在似然值低于所定义的阈值(例如,经由一个或多个输入设备106定义)的情况下,资源池部件302可在分配给或待分配给给定临床应用程序126的资源池之间共享一个或多个计算资源128(例如,可将相同的计算资源128分配给与给定临床应用程序126相关联的资源池中的每个资源池)。在似然值大于或等于所定义的阈值的情况下,资源池部件302可确保不同的计算资源128被分配给,分配给或待分配给给定临床应用程序126的资源池中的每个资源池(例如,可确保相同的计算资源128没有被分配给与给定临床应用程序126相关联的多个资源池)。
56.在一个或多个实施方案中,可预定义给定的高临床优先级临床应用程序126同时运行的似然性。例如,表征给定高临床优先级临床应用程序126将与另一个高临床优先级临床应用程序126同时运行的概率的似然值可存储在一个或多个存储器120中。例如,每个高临床优先级临床应用程序126可与多个似然值相关联,其中来自多个似然值的每个似然值可表征给定高临床优先级临床应用程序126与另一个高临床优先级临床应用程序126的相应组合。
57.在各种实施方案中,资源池部件302可确定计算资源128是否可在两个资源池之间共享。例如,其中第一高临床优先级临床应用程序126被分配给资源池a,并且第二高临床优先级临床应用程序126被分配给资源池b;资源池部件302可基于表征第一高临床优先级临
床应用程序126将需要与第二高临床优先级临床应用程序126同时运行的概率的似然值来确定计算资源128是否可被分配给资源池a和b。另外,在一个或多个实施方案中,资源池部件302可确定计算资源128是否可在三个或更多个资源池之间共享。例如,其中第一高临床优先级临床应用程序126被分配给资源池a,第二高临床优先级临床应用程序126被分配给资源池b,并且第三高临床优先级临床应用126程序被分配给资源池c;资源池部件302可基于表征三个高临床优先级临床应用程序126中没有两个高临床优先级临床应用程序需要同时运行的概率的似然值来确定计算资源128是否可被分配给所有三个资源池a、b和c。
58.在各种实施方案中,资源池部件302可基于高临床优先级临床应用程序126对计算资源128的未充分利用,将相同的计算资源128分配给多个资源池(例如,由此使计算资源128成为重叠资源)。例如,在第一高临床优先级应用程序126执行期间利用少于百分之百的给定计算资源128的性能容量的情况下,给定计算资源128也可被分配给被分配给第二高临床优先级应用程序126的第二资源池,该第二高临床优先级应用程序在执行期间也利用少于百分之百的计算资源128的性能容量。例如,高临床优先级临床应用程序126在执行期间可能未充分利用临床计算机108的cpu,这是由于计算的显著部分被卸载到gpu和/或其他加速器。当gpu和/或其他加速器执行计算时,cpu核可以是空闲的。在此空闲周期期间,cpu核可以用于执行另一个高临床优先级临床应用程序126。由此,未充分利用的计算资源128可由多个资源池共享,而不会妨碍相应高临床优先级临床应用程序126的执行。
59.另外,资源池部件302可定义包括共享的(例如,重叠的)计算资源和排他的(例如,非重叠的)计算资源128两者的资源池。例如,在资源池部件302将多个计算资源128分配给第一资源池的情况下,计算资源128中的一个或多个计算资源可以是与另一个资源池共享的重叠资源,而一个或多个其他计算资源128可以是排他地分配给第一资源池的非重叠资源。例如,用于第一ct扫描仪的第一高临床优先级ct图像重建临床应用程序126可采用排他地分配给第一资源池的一组gpu,但是也可使用与用于第二ct扫描仪的第二高临床优先级ct图像重建临床应用程序126共享的一组cpu核(例如,其中该组cpu核是由资源池部件302分配给第一资源池和第二资源池两者的重叠计算资源)。
60.在各种实施方案中,资源池部件302可基于由所需资源部件202和/或计算机容量部件206生成的一个或多个确定来确定计算资源128是否未被临床应用程序126充分利用。例如,所需资源部件202可确定临床应用程序126在执行期间从计算资源128需要何种资源。此外,计算机容量部件206可确定代表计算资源128的性能容量的计算资源128的一个或多个特性。计算资源128可用的总性能容量与临床应用程序126的计算要求之间的差异可指示临床应用程序126对计算资源128的未充分利用。
61.在各种实施方案中,资源池部件302还可将那些不具有高临床优先级的非永久临床应用程序126分配给针对高临床优先级临床应用程序126和/或永久临床应用程序126所定义的资源池。例如,资源池部件302可通过定义来建立资源池:基于高临床优先级临床应用程序126和/或永久临床应用程序126的数量的资源池的数量;以及基于高临床优先级临床应用程序126和/或永久临床应用程序126的计算要求以及计算资源128的计算容量的资源池的组成。此外,资源池部件302可将能够由临床计算机108执行的剩余临床应用程序126分配给所建立的资源池。例如,剩余的临床应用程序126可以是以下两种临床应用程序126:被优先级部件116优先化为具有正常优先级的临床应用程序(例如,由小于所定义的阈值
和/或被标记为“正常优先级”的优先级表征的临床应用程序);并且不是永久临床应用程序126(例如,不是由临床计算机108永久地执行的和/或具有低时延依赖性)。在一个或多个实施方案中,资源池部件302可向资源池分配:高临床优先级临床应用程序126或永久临床应用程序126;和一个或多个正常临床优先级、非永久临床应用程序126。
62.例如,资源池部件302可向同一资源池分配用于使用ct图像进行中风评估的临床应用程序126(其可具有高临床优先级)、以及用于去除ct心脏图像中的运动伪像的临床应用程序126(其可具有正常临床优先级)。在另一个示例中,资源池部件302可向同一资源池分配用于ct图像重建的临床应用程序126(其可具有高临床优先级)、以及用于放射治疗的器官分割的临床应用程序126(其可具有正常临床优先级)。
63.在一个或多个实施方案中,资源池部件302可基于正常临床优先级、非永久临床应用程序126需要与分配给给定资源池的高临床优先级临床应用程序126或永久临床应用程序126同时执行的概率,将正常临床优先级、非永久临床应用程序126分配给资源池。例如,在第一高临床优先级临床应用程序126被分配给第一资源池的情况下,资源池部件302可标识哪些正常临床优先级、非永久临床应用程序126最不可能与第一高临床优先级临床应用程序126同时执行。则资源池部件302可将一个或多个所标识的正常临床优先级、非永久临床应用程序126分配给第一资源池。由此,至少由于分配给第一资源池的一个或多个正常临床优先级、非永久临床应用程序126是最不可能与第一高临床优先级临床应用程序126同时执行的那些应用程序,计算资源128被分配给第一高临床优先级临床应用程序126的概率被最小化。
64.在一个或多个实施方案中,资源池部件302可基于临床应用程序126执行的历史记录,确定给定资源池的相应高临床优先级临床应用程序126或永久临床应用程序126将与一个或多个正常临床优先级、非永久临床应用程序126同时执行的似然性。例如,资源池部件302可分析应用程序日志304,以确定给定临床应用程序126多长时间同时运行一次,并且由此资源池部件302可计算表征给定临床应用程序126将在未来同时运行的概率的似然值。在似然值低于所定义的阈值(例如,经由一个或多个输入设备106定义)的情况下,资源池部件302可将临床应用程序126分配给相同的资源池。在似然值大于或等于所定义的阈值的情况下,资源池部件302可将临床应用程序126分配给不同的资源池。
65.在一个或多个实施方案中,可预定义临床应用程序126同时运行的似然性。例如,表征一个或多个正常临床优先级、非永久临床应用程序126将与高临床优先级临床应用程序126或永久临床应用程序126同时运行的概率的似然值可存储在一个或多个存储器120中。例如,每个高临床优先级临床应用程序126可与多个似然值相关联,其中来自多个似然值的每个似然值可表征给定高临床优先级临床应用程序126与另一个临床应用程序126的相应组合。
66.分配给资源池的临床应用程序126的数量可取决于:资源池的数量、正常临床优先级、非永久临床应用程序126的数量;和/或高临床优先级应用程序126和/或永久临床应用程序126与正常临床优先级、非永久临床应用程序126同时执行的概率。此外,每资源池的临床应用程序126的数量可变化。例如,第一资源池可被分配给比一个或多个其他资源池更多的临床应用程序126。例如,其中第一资源池与很少采用的高临床优先级临床应用程序126相关联(例如,如与其他高临床优先级临床应用程序126相比),并且第二资源池与常规采用
的高临床优先级临床应用程序126相关联(例如,如与其他高临床优先级临床应用程序126相比);资源池部件302可向第一资源池分配比第二资源池更多的正常临床优先级、非永久临床应用程序126。尽管第一资源池被分配给更多的临床应用程序126,但是第一高临床优先级临床应用程序126的执行与一个或多个正常临床优先级、非永久临床应用程序126的执行冲突的似然性可保持较低,这至少是由于第一高临床优先级临床应用程序126被采用的频率较低。
67.图4示出了根据本文所述的一个或多个实施方案的示例性、非限制性的计算机实现的方法400的流程图,该方法可被资源池部件302所采用以建立资源池并将临床应用程序126分配给资源池。为简洁起见,省略了对本文描述的其他实施方案中采用的类似元素的重复描述。
68.在402处,计算机实现的方法400可包括由可操作地耦接到处理器124的系统100确定(例如,经由资源池部件302)可由一个或多个临床计算机108执行的高临床优先级临床应用程序126和永久临床应用程序126的数量。根据本文所述的各种实施方案,优先级部件116可描绘与每个临床应用程序126相关联的临床优先级(例如,经由优先级值和/或优先级指示符)。在402处,资源池部件302可标识和/或计数与高临床优先级相关联的那些临床应用程序126。另外,资源池部件302可标识永久运行的临床计算机108并且要求对执行请求125的低时延响应的那些临床应用程序126(例如,诸如关于高急性患者监视、临床医生图像操纵和分析等的临床应用程序126)。在402处,资源池部件还可对永久临床应用程序126进行计数。
69.在404处,计算机实现的方法400可包括由系统100定义(例如,经由资源池部件302)多个资源池,其中每个资源池可被分配给相应高临床优先级临床应用程序126或永久临床应用程序126。例如,根据本文所述的各种实施方案,资源池的数量可以是在404处确定的高临床优先级临床应用程序126和永久临床应用程序126的数量的函数。例如,资源池的总数可等于一个或多个临床计算机108可采用的高临床优先级临床应用程序126和永久临床应用程序126的总数。
70.在406处,计算机实现的方法400可包括由系统100确定(例如,经由所需资源部件202和/或资源池部件302)高临床优先级临床应用程序126和永久临床应用程序126的计算要求。在408处,计算机实现的方法400可包括由系统100向资源池中的每个资源池分配(例如,经由资源池部件302)计算资源128。例如,资源池部件302可在资源池中划分临床计算机108的计算资源128,使得每个资源池具有足够的计算资源128来执行所分配的高临床优先级临床应用程序126或永久临床应用程序126。
71.根据各种实施方案,分配给资源池的计算资源128可排他地用于资源池的临床应用程序126,但具有有限例外。例如,分配给资源池a的计算资源128可由分配给资源池a的临床应用程序126排他地采用,使得分配给其他资源池的临床应用程序126不能采用分配给资源池a的计算资源128。根据本文所述的各种实施方案,所分配的计算资源128的排他性的第一例外可由资源池部件302实现,其中第一资源池的高临床优先级临床应用程序126或永久临床应用程序126不可能与第二资源池的高临床优先级临床应用程序126或永久临床应用程序126同时执行。另外,根据本文所述的各种实施方案,在高临床优先级临床应用程序126或永久临床应用程序126未充分利用计算资源128的情况下,所分配的计算资源128的排他
性的第二例外可由资源池部件302实现。在此类例外的情况下,资源池部件302可将相同的计算资源128分配给第一资源池和第二资源池。由此,计算资源128的分配可在第一资源池与第二资源池之间重叠,使得分配给任一资源池的临床应用程序126可共享计算资源128。
72.在410处,计算机实现的方法400可包括由系统100向资源池分配(例如,经由资源池部件302)正常优先级、非永久临床应用程序126。根据本文所述的各种实施方案,资源池部件302可基于正常优先级、非永久临床应用程序126将与给定资源池的高临床优先级临床应用程序126或永久临床应用程序126同时执行的概率,将正常优先级、非永久临床应用程序126分配给资源池。
73.图5示出了根据本文所述的一个或多个实施方案的示例性、非限制性系统100的图,该系统还包括优先级权重部件502和/或抢占部件504。为简洁起见,省略了对本文描述的其他实施方案中采用的类似元素的重复描述。在各种实施方案中,优先级权重部件502和/或抢占部件504可控制临床应用程序126如何在每个资源池内执行。在一个或多个实施方案中,优先级权重部件502可设置静态或动态计算资源128优先级权重,以管理同一资源池的临床应用程序126采用所分配的计算资源128的顺序。在一个或多个实施方案中,抢占部件504可抢占完成在给定资源池上执行的一个或多个工作负载(例如,临床应用程序126),以实现具有较高临床优先级的执行请求125。
74.例如,优先级权重部件502可关于每个相应资源池,针对所分配的临床应用程序126中的每个所分配的临床应用程序设置静态或动态计算资源128优先级权重。静态或动态计算资源128优先级权重可以是描绘所分配的计算资源128上的计算处理时间的相对份额的数学值。例如,在分配给资源池的临床应用程序126中,资源池的高临床优先级临床应用程序126或永久应用程序126可被分配最高权重值(例如,值2048)。此外,分配给资源池的正常临床优先级、非永久临床应用程序126可被分配较低的权重值(例如,值1)。例如,资源池的高临床优先级临床应用程序126或永久应用程序126可以分配权重值2048,并且资源池的正常临床优先级、非永久临床应用程序126可被分配权重值1;导致高临床优先级临床应用程序126或永久应用程序126在给定持续时间内获得2048倍于正常临床优先级、非永久临床应用程序126的处理时间量。
75.在各种情况下,可优选的是,与高临床优先级相关联的执行请求125由临床计算机108尽可能快地实现。例如,当利用临床计算机108的全计算潜力来实现与高临床优先级相关联的执行请求125时,可实现患者护理的实质性改进。例如,高临床优先级可指示由于数据收集和/或处理延迟可能对医学治疗和/或诊断产生的负面影响而使所述延迟最小化的偏好。
76.在一个或多个实施方案中,抢占部件504可暂停和/或终止一个或多个工作负载(例如,临床应用程序126)的执行,以释放计算资源128来实现具有较高临床优先级的执行请求125。例如,资源池的高临床优先级临床应用程序126或永久临床应用程序的执行可被当前正在采用资源池的计算资源的一个或多个正常临床优先级、非永久临床应用程序126禁止。通过抢占完成工作负载,抢占部件504可释放资源池的计算资源128,以促进实现具有高临床优先级的执行请求125。由此,抢占部件504可避免延迟,否则该延迟会以其他方式由于等待工作负载待完成和/或用少于资源池可实现的全计算容量来实现执行请求125而导致。
77.在各种实施方案中,抢占部件504抢占完成操作的正常临床优先级、非永久临床应用程序126的方式可取决于由资源分配部件118做出的一个或多个确定。例如,抢占部件504是否暂停或终止操作的临床应用程序126可取决于一个或多个临床计算机108的计算容量(例如,存储器容量和/或可用性)。在另一个示例中,如何暂停操作的正常临床优先级、非永久临床应用程序126可取决于由计算资源128启用的一个或多个特征(例如,临床计算机108是否可执行存储器摇摆和/或访问虚拟存储器)。
78.图6示出了根据本文所述的一个或多个实施方案的示例性、非限制性计算机实现的方法600的流程图,该方法可由抢占部件504实现。为简洁起见,省略了对本文描述的其他实施方案中采用的类似元素的重复描述。
79.在602处,计算机实现的方法600可包括由可操作地耦接到处理器124的系统100检测(例如,经由监视部件114)待在一个或多个临床计算机108上实现的一个或多个执行请求125。根据本文所述的各种实施方案,一个或多个执行请求125可经由一个或多个输入设备106生成。另外,执行请求125可指示采用一个或多个临床应用程序126来执行收集和/或处理数据的一个或多个任务,以便于医学治疗、观察和/或诊断。
80.在604处,计算机实现的方法600可包括由系统100确定(例如,经由监视部件114)是否存在当前正在给定资源池的计算资源128上执行的工作负载。例如,在602处检测到执行请求时,临床计算机108可执行一个或多个工作负载(例如,临床应用程序126)。其中给定资源池的计算资源128没有执行工作负载(例如,没有执行一个或多个正常临床优先级、非永久临床应用程序126),计算机实现的方法600可以行进到606并实现执行请求125。在606处,计算机实现的方法600可由系统100采用(例如,经由一个或多个临床计算机108)资源池的一个或多个临床应用程序126来促进执行请求125的实现。在临床计算机108执行工作负载(例如,执行一个或多个临床应用程序126)的情况下,计算机实现的方法600可行进到608。例如,在给定资源池的一个或多个计算资源128正被一个或多个临床应用程序126使用的情况下。
81.在608,计算机实现的方法600可包括由系统100确定(例如,经由优先级部件116)一个或多个执行请求125是否具有比当前正在执行的工作负载更高的临床优先级。例如,步骤608可包括确定一个或多个执行请求125是否与临床应用程序126相关联,该临床应用程序具有比当前正在采用资源池的计算资源的临床应用程序126更高的临床优先级。根据本文所述的各种实施方案,优先级部件116可将执行请求125的临床优先级与操作工作负载的临床优先级进行比较。在操作工作负载具有较高临床优先级的情况下(例如,在操作临床应用程序126是资源池的高临床优先级临床应用程序126或永久临床应用程序126的情况下),计算机实现的方法600可行进到610。在610处,系统100可行进以实现计算机实现的方法700(例如,在图7中描绘的),该方法可完成操作工作负载的执行并重新评估一个或多个执行请求125。在一个或多个执行请求125具有较高临床优先级的情况下(例如,在操作的临床应用程序126是正常临床优先级、非永久临床应用程序126以及一个或多个执行请求125与资源池的高临床优先级临床应用程序126或永久临床应用程序126相关联的情况下),计算机实现的方法600可行进到612。
82.在612处,计算机实现的方法600可包括由系统100确定(例如,经由资源分配部件118)一个或多个临床计算机108是否具有足够的计算资源128以用于工作负载暂停和存储
器存储。例如,步骤612可包括确定给定资源池的一个或多个计算资源128是否启用工作负载暂停和存储器存储。根据本文所述的各种实施方案,资源分配部件118可确定资源池的临床应用程序126可访问的计算资源128是否能够暂停当前正在执行的工作负载。另外,其中用于工作负载暂停的足够的计算资源128是可用的,资源分配部件118还可确定资源池可访问的一个或多个计算资源128是否包括足够的存储器以存储暂停的工作负载的进度。例如,资源分配部件118(例如,经由所需资源部件202、可用资源部件204和/或计算机容量部件206)可确定:在可访问的计算资源128上是否存在可用的足够的释放系统存储器来存储暂停的工作负载的存储器并实现执行请求125;存储器交换操作是否是一个或多个可访问的计算资源128的启用特征;和/或可访问的计算资源128是否可利用虚拟存储器来促进数据存储要求。例如,在612处,计算机实现的方法600可确定分配给给定资源池的计算资源128是否包括能够执行存储器页面交换以满足存储器存储要求的一个或多个加速器(例如,gpu)。
83.响应于在612处确定分配给给定资源池的一个或多个计算资源128能够暂停工作负载并且具有足够的存储器存储以促进暂停;计算机实现的方法600可行进到614。在614处,系统100可行进以实现计算机实现的方法800(例如,在图8中描绘的),该方法可经由工作负载暂停技术抢占完成工作负载,以有利于执行请求125的加速实现。例如,响应于确定实现高临床优先级执行请求125将仅利用cpu资源,并且在一个或多个临床计算机108处存在可用的足够的释放系统存储器以保持暂停的工作负载的存储器,或在实现执行请求125的同时执行暂停的工作负载的存储器交换,计算机实现的方法600可行进到614。在另一个实例中,响应于确定实现执行请求125将利用cpu资源和加速器(例如,gpu)资源,并且在一个或多个临床计算机108上存在足够的释放系统存储器来保持暂停的工作负载的存储器,和在实现执行请求125的同时由在一个或多个加速器设备上的暂停的工作负载所分配的所有存储器页面,计算机实现的方法600可行进到614。在另一个实例中,响应于确定实现执行请求125将利用cpu资源和加速器(例如,gpu)资源,并且一个或多个所分配的计算资源128支持加速器存储器超额预订和虚拟存储器页面交换,计算机实现的方法600可行进到614。
84.响应于在612处确定资源池不包括能够暂停工作负载的计算资源128或足够的存储器存储以促进暂停;计算机实现的方法600可行进到616。在616处,计算机实现的方法600可包括由系统100确定(例如,经由资源分配部件118)一个或多个所分配的计算资源128是否已经启用工作负载暂停以及存储器驱逐和加载容量。例如,在616处,计算机实现的方法600可确定可访问的计算资源128是否包括能够执行按需存储器驱逐和加载以满足存储器存储要求的一个或多个加速器(例如,gpu)。例如,其中实现执行请求125将利用加速器(例如,gpu)资源,但是一个或多个所分配的计算资源128既不具有足够的空闲存储器存储,也不支持加速器存储器超额预订和虚拟存储器页面交换;在616处,计算机实现的方法600可确定(例如,经由资源分配部件118,包括计算机容量部件206)一个或多个临床计算机108是否支持加速器存储器按需驱逐和加载。
85.响应于确定可访问的计算资源128支持工作负载暂停和按需存储器驱逐和加载,计算机实现的方法600可行进到618。在618处,系统100可行进以实现计算机实现的方法900(例如,在图9中描绘的),该方法可经由工作负载暂停技术抢占完成工作负载,以有利于执行请求125的加速实现。响应于确定可访问的计算资源128不支持工作负载暂停或不支持按
需存储器驱逐和加载,计算机实现的方法600可行进到620。在620处,系统100可行进以实现计算机实现的方法1000(例如,在图10中描绘的),该方法可经由终止工作负载执行来抢占完成工作负载,以利于执行请求125的加速实现。
86.图7示出了根据本文所述的一个或多个实施方案的示例性、非限制性的计算机实现的方法700的流程图,该方法可由抢占部件504实现以管理指向同一资源池的多个工作负载请求。为简洁起见,省略了对本文描述的其他实施方案中采用的类似元素的重复描述。如图7所示,响应于在608处计算机实现的方法600的“否”确定,系统100可实现计算机实现的方法700。例如,当执行请求125具有比当前正在采用资源池的计算资源128的工作负载更低或相等的临床优先级时,计算机实现的方法700可由系统100实现。
87.在702处,计算机实现的方法700可包括由系统100完成(例如,经由一个或多个临床计算机108)当前正在执行的工作负载的执行。在完成工作负载后,计算机实现的方法700可行进到704,以重新评估执行请求125。
88.在704处,计算机实现的方法700可包括由系统100确定(例如,经由监视部件114)在队列中是否存在另一个工作负载待使用给定资源池的计算资源128来执行。例如,可存在资源池的一个或多个计算资源128等待实现一个或多个附加工作负载。在一个或多个附加工作负载没有排队的情况下,计算机实现的方法700可行进到706,并实现执行请求125。在706处,计算机实现的方法700可由系统100采用(例如,经由一个或多个临床计算机108)一个或多个临床应用程序126来促进执行请求125的实现。在一个或多个附加工作负载被排队的情况下,计算机实现的方法700可行进到708。
89.在708处,计算机实现的方法700可包括由系统100开始(例如,经由一个或多个临床计算机108)一个或多个已排队的工作负载的执行。此外,在710处,计算机实现的方法700可包括行进到计算机实现的方法600的步骤608。例如,在608处,可重新评估执行请求125,以确定执行请求125是否具有比先前排队的工作负载更高的临床优先级,该先前排队的工作负载现在是当前正在执行的工作负载。由此,可根据计算机实现的方法600继续处理执行请求125。
90.图8示出了根据本文所述的一个或多个实施方案的示例性、非限制性的计算机实现的方法800的流程图,该方法可由抢占部件504实现,以促进抢占一个或多个工作负载(例如,一个或多个操作的正常临床优先级、非永久临床应用程序126)以实现一个或多个高临床优先级执行请求125。为简洁起见,省略了对本文描述的其他实施方案中采用的类似元素的重复描述。如图8所示,响应于在612处计算机实现的方法600的“是”确定,系统100可实现计算机实现的方法800。例如,在下列情况下计算机实现的方法800可由系统100实现:执行请求125具有比当前正在资源池的一个或多个计算资源128上完成的工作负载更高的临床优先级,可访问的计算资源128启用工作负载暂停;并且可访问的计算资源128具有足够的存储器存储容量。
91.在802处,计算机实现的方法800可包括由系统100暂停(例如,经由抢占部件504)当前正在一个或多个临床计算机108上执行的一个或多个工作负载。由此,系统100可抢占完成工作负载,并释放资源池的计算资源128以实现执行请求125。在804处,计算机实现的方法800可包括存储暂停的工作负载的存储器,以促进稍后恢复。例如,其中实现执行请求125需要cpu资源并且不是加速器资源;抢占部件504可指示暂停的工作负载的存储器被存
储在可访问的计算资源128上。在另一个示例中,在实现执行请求125需要cpu资源和加速器资源的情况下;抢占部件504可指示加速器存储器超额预订和虚拟存储器页面交换,以促进存储暂停的工作负载的存储器。
92.在806处,计算机实现的方法800可由系统100采用(例如,经由一个或多个临床计算机108)一个或多个临床应用程序126来促进执行请求125的实现。在完成执行请求125之后,计算机实现的方法800可行进到808。在808处,计算机实现的方法800可包括基于存储的存储器恢复暂停的工作负载。
93.图9示出了根据本文所述的一个或多个实施方案的示例性、非限制性的计算机实现的方法900的流程图,该方法可促进一个或多个工作负载的抢占,以实现一个或多个高临床优先级执行请求125。为简洁起见,省略了对本文描述的其他实施方案中采用的类似元素的重复描述。如图9所示,响应于在616处计算机实现的方法600的“是”确定,系统100可实现计算机实现的方法900。例如,在下列情况下计算机实现的方法900可由系统100实现:执行请求125具有比当前正在给定资源池的计算资源128上完成的工作负载更高的临床优先级,可访问的计算资源128启用工作负载暂停;并且可访问的计算资源128没有足够的存储器存储容量,但是支持存储器按需驱逐和加载协议。
94.在902处,计算机实现的方法900可包括由系统100暂停(例如,经由抢占部件504)当前正在一个或多个临床计算机108上执行的一个或多个工作负载。由此,系统100可抢占完成工作负载,并释放临床计算机108的计算资源128以实现执行请求125。在904处,计算机实现的方法900可包括驱逐一个或多个暂停的工作负载的存储器以用于存储。例如,临床计算机108的一个或多个加速器可将暂停的工作负载的一个或多个存储器页面驱逐到一个或多个外部存储器设备(例如,存储器120)以存储在临床计算机108外部。
95.在906处,计算机实现的方法900可由系统100采用(例如,经由一个或多个临床计算机108)一个或多个临床应用程序126来促进执行请求125的实现。在完成执行请求125之后,计算机实现的方法900可行进到908。在908处,计算机实现的方法900可包括加载在904处被驱逐的一个或多个暂停的工作负载的存储器。例如,可访问的计算资源128可包括一个或多个加速器,其可加载暂停的工作负载的一个或多个存储器页面。在910处,计算机实现的方法900可基于在908处加载的存储器来恢复一个或多个暂停的工作负载。
96.图10示出了根据本文所述的一个或多个实施方案的示例性、非限制性的计算机实现的方法1000的流程图,该方法可由抢占部件504实现,以促进抢占一个或多个工作负载来实现一个或多个高临床优先级执行请求125。为简洁起见,省略了对本文描述的其他实施方案中采用的类似元素的重复描述。如图10所示,响应于在616处计算机实现的方法600的“否”确定,系统100可实现计算机实现的方法1000。例如,在下列情况下计算机实现的方法1000可由系统100实现:执行请求125具有比当前正在可访问的计算资源128上完成的工作负载更高的临床优先级,但是可访问的计算资源128不能支持工作负载暂停。
97.在1002处,计算机实现的方法1000可包括由系统100冻结(例如,经由抢占部件504)当前正在一个或多个临床计算机108上执行的一个或多个工作负载。在1004处,计算机实现的方法1000可以包括转储(例如,经由一个或多个临床计算机108)一个或多个冻结工作负载的状态。在各种实施方案中,一个或多个临床计算机108可在终止之前周期性地和/或按需转储工作负载状态。此外,在1006处,计算机实现的方法1000可包括终止(例如,经由
一个或多个临床计算机108)一个或多个冻结工作负载的执行。由此,系统100可抢占完成工作负载,并释放资源池的计算资源128以实现执行请求125。
98.在1008处,计算机实现的方法1000可由系统100采用(例如,经由一个或多个临床计算机108)一个或多个临床应用程序126来促进执行请求125的实现。在完成执行请求125之后,计算机实现的方法1000可行进到1010。在1010处,计算机实现的方法1000可包括由系统100检索(例如,经由一个或多个临床计算机108)一个或多个终止的工作负载的状态。例如,一个或多个临床计算机108可检索在1004处转储的工作负载状态。在1012处,计算机实现的方法1000可包括由系统100基于所检索的状态启动(例如,经由可访问的计算资源128)一个或多个终止的工作负载的执行。
99.为了为本文所述的各种实施方案提供附加上下文,图11和以下讨论旨在提供可在中实现本文所述的实施方案的各种实施方案的合适计算环境1100的简要一般描述。虽然上文已在可在一个或多个计算机上运行的计算机可执行指令的一般上下文中描述了实施方案,但本领域的技术人员将认识到,这些实施方案也可与其他程序模块结合和/或作为硬件和软件的组合来实现。
100.通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、部件、数据结构等。此外,本领域的技术人员将会理解,本发明的方法可以用其他计算机系统配置来实践,包括单处理器或多处理器计算机系统、小型计算机、大型计算机、物联网(“iot”)设备、分布式计算系统,以及个人计算机、手持计算设备、基于微处理器的或可编程的消费电子产品等,它们中的每一个可操作地耦接至一个或多个相关联的设备。
101.本文实施方案的所例示的实施方案还可以在分布式计算环境中实践,在该环境中,由通过通信网络链接的远程处理设备执行特定任务。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。例如,在一个或多个实施方案中,计算机可执行部件可从可包括一个或多个分布式存储器单元或由一个或多个分布式存储器单元构成的存储器执行。如本文所用,术语“存储器”和“存储器单元”可互换。此外,本文所述的一个或多个实施方案可以分布式方式执行计算机可执行部件的代码,例如,多个处理器组合或协同工作以执行来自一个或多个分布式存储器单元的代码。如本文所用,术语“存储器”可涵盖一个位置处的单个存储器或存储器单元,或者一个或多个位置处的多个存储器或存储器单元。
102.计算设备通常包括各种介质,该各种介质可以包括计算机可读存储介质、机器可读存储介质和/或通信介质,其中在本文中这两个术语的使用彼此不同,如下所述。计算机可读存储介质或机器可读存储介质可以是可由计算机访问的任何可用存储介质,并且包括易失性和非易失性介质、可移动和不可移动介质。以举例的方式而非限制,计算机可读存储介质或机器可读存储介质可以结合用于存储信息诸如计算机可读或机器可读指令、程序模块、结构化数据或非结构化数据的任何方法或技术来实现。
103.计算机可读存储介质可包括但不限于随机存取存储器(“ram”)、只读存储器(“ram”)、电可擦除可编程只读存储器(“eeprom”)、闪存存储器或其他存储器技术、光盘只读存储器(“cd-rom”)、数字通用盘(“dvd”)、蓝光盘(“bd”)或其他光盘存储装置、磁带盒、磁带、磁盘存储器或其他磁存储设备、固态驱动器或其他固态存储设备或可用于存储所需信息的其他有形和/或非暂态介质。就这一点而言,本文中应用于存储装置、存储器或计算机
可读介质的术语“有形”或“非暂态”应理解为仅排除传播暂态信号本身作为修饰语,并且不放弃不仅是传播暂态信号本身的所有标准存储装置、存储器或计算机可读介质的权利。
104.计算机可读存储介质可以由一个或多个本地或远程计算设备访问,例如,通过访问请求、查询或其他数据检索协议,以实现关于由介质存储的信息的各种操作。
105.通信介质通常在数据信号中包含计算机可读指令、数据结构、程序模块或其他结构化或非结构化数据,该数据信号可以是诸如调制数据信号,例如载波或其他传输机制,并包括任何信息传递或传输介质。术语“调制数据信号”或“信号”是指设置或改变其一个或多个特征以在一个或多个信号中编码信息的信号。以举例的方式而非限制,通信介质包括有线介质,诸如有线网络或直接有线连接,以及无线介质,诸如声学、rf、红外和其他无线介质。
106.再次参考图11,用于实现本文所述方面的各种实施方案的示例性环境1100包括计算机1102,计算机1102包括处理单元1104、系统存储器1106和系统总线1108。系统总线1108将包括但不限于系统存储器1106的系统部件耦合到处理单元1104。处理单元1104可以是各种可商购获得的处理器中的任何一种处理器。双微处理器和其他多处理器架构也可用作处理单元1104。
107.系统总线1108可以是可使用多种可商购获得的总线架构中的任一种总线架构进一步互连到存储器总线(具有或不具有存储器控制器)、外围总线和局部总线的若干类型的总线结构中的任一种总线结构。系统存储器1106包括rom 1110和ram 1112。基本输入/输出系统(“bios”)可存储在非易失性存储器诸如rom、可擦除可编程只读存储器(“eprom”)、eeprom中,其中bios包含基本例程,该基本例程有助于诸如在启动期间在计算机1102内的元件之间传输信息。ram 1112还可包括高速ram,诸如用于高速缓存数据的静态ram。
108.计算机1102还包括存储装置1114(例如,内部硬盘驱动器(“hdd”),包括eide、sata)、一个或多个外部存储设备1116(例如,磁软盘驱动器(“fdd”)1116、记忆棒或闪存驱动器读取器、存储卡读取器等)和光盘驱动器1120(例如,其可从cd-rom盘、dvd、bd等读取或写入)。虽然存储装置1114被示出为位于计算机1102内,但存储装置1114也可被配置为在合适的基础结构(未示出)中用于外部使用。另外,虽然在环境1100中未示出,但除了存储装置1114之外,或代替该存储设备,可使用固态驱动器(“ssd”)。存储装置1114、外部存储设备1116和光盘驱动器1120可分别通过接口1124、外部存储接口1126和光盘驱动器接口1128连接到系统总线1108。用于外部驱动具体实施的接口1124可包括通用串行总线(“usb”)和电气与电子工程师协会(“ieee”)13114接口技术中的至少一者或两者。其他外部驱动连接技术在本文所述的实施方案的设想内。另外,示例性环境1100可包括连接到系统总线1108的一个或多个加速器设备11211,诸如gpu。
109.驱动器及其相关联的计算机可读存储介质提供数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机1102,驱动器和存储介质以合适的数字格式容纳任何数据的存储。尽管上文对计算机可读存储介质的描述涉及相应类型的存储设备,但本领域的技术人员应当理解,计算机可读的其他类型的存储介质(无论是目前存在的还是将来开发的)都也可用于示例性操作环境中,并且此外,任何此类存储介质可包含用于执行本文所述的方法的计算机可执行指令。
110.多个程序模块可存储在驱动器和ram 1112中,包括操作系统1130、一个或多个应
用程序1132、其他程序模块1134和程序数据1136。操作系统、应用程序、模块和/或数据的全部或部分也可被高速缓存在ram 1112中。本文所述的系统和方法可利用各种可商购获得的操作系统或操作系统的组合来实现。
111.计算机1102可任选地包括仿真技术。例如,超级管理程序(未示出)或其他中介可仿真用于操作系统1130的硬件环境,并且仿真的硬件可任选地不同于图11所示的硬件。在此类实施方案中,操作系统1130可包括在计算机1102处托管的多个虚拟机(“vm”)中的一个vm。此外,操作系统1130可为应用程序1132提供运行时环境,诸如java运行时环境或.net框架。运行时环境是允许应用程序1132在包括运行时环境的任何操作系统上运行的相符执行环境。类似地,操作系统1130可支持容器,并且应用程序1132可采用容器的形式,其是轻质的、独立的、可执行的软件包,该软件包包括例如用于应用程序的代码、运行时、系统工具、系统库和设置。
112.此外,计算机1102可利用安全模块诸如可信处理模块(“tpm”)来启用。例如,在tpm的情况下,引导部件在下一次引导部件中散列化,并且在加载下一个引导部件之前等待结果与安全值的匹配。该过程可发生在计算机1102的代码执行栈中的任何层,例如应用于应用程序执行层级或操作系统(“os”)内核层级,从而实现任何代码执行层级的安全性。
113.用户可通过一个或多个有线/无线输入设备(例如,键盘1138、触摸屏1140和指向设备诸如鼠标1142)将命令和信息输入到计算机1102中。其他输入设备(未示出)可包括麦克风、红外(“ir”)遥控器、射频(“rf”)遥控器或其他遥控器、操纵杆、虚拟现实控制器和/或虚拟现实头戴式耳机、游戏板、触笔、图像输入设备(例如相机)、手势传感器输入设备、视觉移动传感器输入设备、情绪或面部检测设备、生物识别输入设备(例如指纹或虹膜扫描仪)等。这些和其他输入设备通常通过输入设备接口1144连接到处理单元1104,该输入设备接口可耦接至系统总线1108,但这些和其他输入设备可通过其他接口连接,诸如并行端口、ieee 13114串行端口、游戏端口、usb端口、ir接口、接口等。
114.监视器1146或其他类型的显示设备也可经由接口(诸如视频适配器1148)连接到系统总线1108。除了监视器1146之外,计算机通常包括其他外围输出设备(未示出),诸如扬声器、打印机等。
115.计算机1102可使用经由有线和/或无线通信到一个或多个远程计算机(诸如,远程计算机1150)的逻辑连接而在联网环境中操作。远程计算机1150可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他公共网络节点,并且通常包括相对于计算机1102所述的许多或所有元件,但为了简洁起见,仅示出了存储器/存储设备1152。所描绘的逻辑连接包括到局域网(“lan”)1154和/或更大网络(例如,广域网(“wan”)1156)的有线/无线连接。此类lan和wan联网环境常见于办公室和公司中,并且有利于企业范围内的计算机网络,诸如内联网,所有这些网络均可连接到全球通信网络,例如互联网。
116.当在lan联网环境中使用时,计算机1102可通过有线和/或无线通信网络接口或适配器1158连接到本地网络1154。适配器1158可促进与lan 1154的有线或无线通信,该lan还可包括设置在其上的无线接入点(“ap”),用于在无线模式下与适配器1158通信。
117.当在wan联网环境中使用时,计算机1102可包括调制解调器1160或可经由用于通过wan 1156建立通信的其他装置(诸如通过互联网)连接到wan 1156上的通信服务器。调制
解调器1160(其可为内部或外部的以及有线或无线设备)可经由输入设备接口1144连接到系统总线1108。在联网环境中,相对于计算机1102或其部分示出的程序模块可存储在远程存储器/存储设备1152中。应当理解,所示的网络连接是示例,并且可使用在计算机之间建立通信链路的其他装置。
118.当在lan或wan联网环境中使用时,除了如上所述的外部存储设备1116之外或作为其替代,计算机1102可访问云存储系统或其他基于网络的存储系统。一般来讲,计算机1102与云存储系统之间的连接可例如分别通过适配器1158或调制解调器1160通过lan 1154或wan 1156建立。在将计算机1102连接到相关联的云存储系统时,外部存储接口1126可在适配器1158和/或调制解调器1160的帮助下管理由云存储系统提供的存储,如同其他类型的外部存储装置那样。例如,外部存储接口1126可被配置成提供对云存储源的访问,如同这些源物理地连接到计算机1102一样。
119.计算机1102可操作为与以无线通信方式可操作地设置的任何无线设备或实体通信,例如打印机、扫描仪、台式计算机和/或便携式计算机、便携式数据助理、通信卫星、与无线可检测标签(例如,自助服务机、书报亭、商店货架等)相关联的任何设备件或位置。这可包括无线保真(“wi-fi”)和无线技术。因此,通信可以是与常规网络一样的预定义结构,或者仅仅是至少两个设备之间的自组织通信。
120.上面已描述的内容仅包括系统、计算机程序产品和计算机实现的方法的示例。当然,无法为了描述本公开的目的而描述部件、产品和/或计算机实现的方法的每种可想到的组合,但本领域的普通技术人员可以认识到,本公开的许多进一步组合和/或置换是可能的。此外,关于在具体实施方式、权利要求书、附录和附图中使用术语“包括”、“具有”、“拥有”等的程度,此类术语旨在以类似于术语“包括”的方式为包括性的,如“包括”在权利要求中被用作过渡词时那样解释。已经出于说明的目的给出了各种实施方案的描述,但这些描述并不旨在是穷举的或限于所公开的实施方案。在不脱离所描述的实施方案的范围和精神的情况下,许多修改和变型对于本领域的普通技术人员而言将是显而易见的。选择本文使用的术语是以最好地解释实施方案的原理、优于市场上发现的技术的实际应用或技术改进,或者使得本领域的其他普通技术人员能够理解本文公开的实施方案。
121.附图中的流程图和框图示出了根据本发明的各种实施方案的系统、方法和计算机程序产品的可能具体实施的架构、功能和操作。在这方面,流程图或框图中的每一框可表示指令的模块、片段或部分,其包括用于实施指定逻辑功能的一个或多个可执行指令。在一些另选实施中,框中所指出的功能可不按图中所指出的次序发生。例如,实际上可基本同时执行按顺序示出的两个框,或者有时候可以按相反的顺序执行所述框,这取决于所涉及的功能。还将指出,框图和/或流程图图示的每一框以及框图和/或流程图图示中的框的组合可由执行指定功能或动作或者实施专用硬件和计算机指令的组合的基于专用硬件的系统来实施。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1