基于超级计算机的高通量任务处理方法转让专利

申请号 : CN202110209486.X

文献号 : CN112882810B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李庚孟祥飞冯景华庞晓磊菅晓东李菲菲贾子傲郑刚李长松

申请人 : 国家超级计算天津中心

摘要 :

本发明涉及一种基于超级计算机的高通量任务处理方法,包括获取待执行任务的任务参数,所述任务参数包括任务物理信息和任务执行信息,所述任务物理信息包括作业链类型和应用程序类型,所述任务执行信息包括待执行任务对应的作业链数量M,作业链之间的逻辑关系、每一作业链的作业数量N,作业结构文件、作业之间的逻辑关系以及执行精度;根据所述待执行任务的任务参数从预设的数据库中获取对应的工作流模板生成M个与M个作业链一一对应的工作流;根据当前计算资源将所述M个工作流分配到所述超级计算机对应的计算节点上并行执行,并将最终的任务执行结果存储至所述数据库中。本发明提高了高通量计算任务的计算效率。

权利要求 :

1.一种基于超级计算机的高通量任务处理方法,其特征在于,包括:获取待执行任务的任务参数,所述任务参数包括任务物理信息和任务执行信息,所述任务物理信息包括作业链类型和应用程序类型,所述任务执行信息包括待执行任务对应的作业链数量M,作业链之间的逻辑关系、每一作业链的作业数量N,作业结构文件、作业之间的逻辑关系以及执行精度,其中M和N均为正整数,M大于等于1000;

根据所述待执行任务的任务参数从预设的数据库中获取对应的工作流模板生成M个与M个作业链一一对应的工作流;

其中,每个待执行的任务包括M个并行的作业链,每一作业链对应生成一个可以自动执行的工作流,每一作业链包括多个作业,多个作业按照作业间的逻辑关系连接,M个工作流之间按照作业链之间的逻辑关系连接;

根据当前超级计算机的计算资源和M个工作流所需的计算资源在超级计算机确定所需节点,以及每一节点上所要分配的工作流;

将每一工作流分配至对应的节点上,所述节点执行对应的工作流,得到每一工作流的输出结果;

根据每一工作流的输出结果、作业链之间的逻辑关系、应用程序类型,从所述数据库中调取对应的应用程序进行执行,获取最终的任务执行结果,并将最终的任务执行结果存储至所述数据库中;

通过为应用程序构建集成数据接口来调用格式文件与所述数据库交互,驱动数据运转,从而执行工作流中的每一作业;

所述为应用程序构建集成数据接口包括:

获取所述应用程序的运行特征;

从所述运行特征中分离出所述应用程序对应的交互操作信息、参数配置信息、资源需求信息、数据文件信息四个层次信息;

分别基于各层次信息获取各层次信息的数类共性特征,抽象数值模拟活动,得到层次化组件模型,所述层次化组件模型包括描述层、定制层、工具层和状态层,将所述描述层、定制层、工具层和状态层进行封装,得到所述集成数据接口,其中,所述描述层用于供交互工具使用,提供组件的功能与使用操作信息;所述定制层用于为预设问题配置对应的解决策略;所述工具层用于描述应用程序的资源需求、交互模式的运行特征,为数值模拟工作流中任务的自动执行提供基础;所述状态层用于描述应用程序的执行过程。

2.根据权利要求1所述的基于超级计算机的高通量任务处理方法,其特征在于,在所述节点执行对应的工作流的过程中,还包括:将所述工作流的每一作业的执行结果以及所述数据库中预先存储的工作流的该作业的预设执行结果进行相互校验;

若所述执行结果与所述预设执行结果的误差超过预设的误差范围,则判断所述预设执行结果的准确度是否高于所述执行结果:若是,则将所述预设执行结果替换所述执行结果;

否则,将所述执行结果替换所述预设执行结果。

3.根据权利要求1所述的基于超级计算机的高通量任务处理方法,其特征在于,所述节点执行对应的工作流,得到每一工作流的输出结果,包括:所述节点依次执行对应工作流中的每一作业,每一作业得到一个作业输出结果,每一作业将其对应的作业输出结果作为该工作流中下一作业的输入,直至该工作流中最后一个作业输出该工作流的输出结果。

4.根据权利要求3所述的基于超级计算机的高通量任务处理方法,其特征在于,所述节点依次执行对应工作流中的每一作业,每一作业得到一个作业输出结果,包括:获取当前作业对应的结构作业结构文件;

根据所述任务物理信息从所述作业结构文件中提取对应的原始数据;

根据作业链之间的逻辑关系和应用程序类型从所述数据库中调用对应的应用程序,将所述原始数据输入对应的应用程序中执行生成目标数据;

将所述目标数据按照预设的筛选规则进行筛选,得到该作业的输出结果,将该作业的输出结果存储至所述数据库中。

5.根据权利要求4所述的基于超级计算机的高通量任务处理方法,其特征在于,所述数据库中采用JSON、CSV或XML的格式文件来存储和流通。

6.根据权利要求1所述的基于超级计算机的高通量任务处理方法,其特征在于,所述方法还包括:实时监测每一工作流的运行状态、运行进度和资源使用情况,并进行可视化显示。

7.根据权利要求6所述的基于超级计算机的高通量任务处理方法,其特征在于,所述方法还包括:当监测到工作流的状态为异常状态时,生成错误事件,并将错误信息存储至所述数据库中的日志信息中;

通过预设的容错服务从所述日志中周期性地获取错误信息,并对所述错误信息进行识别和分类;

基于错误类别启动对应的自动纠错服务进行纠错处理。

8.根据权利要求1所述的基于超级计算机的高通量任务处理方法,其特征在于,所述方法还包括:通过API接口或web交互,从所述数据库中获取任务执行结果,供其他数据库调用或者外部访问读取。

说明书 :

基于超级计算机的高通量任务处理方法

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种基于超级计算机的高通量任务处理方法。

背景技术

[0002] 现有的超级计算机通常用来执行大规模、长时间的高性能计算任务,这计算任务通常仅包括几个作业链,但每个作业链所需占用的计算资源很多,执行周期很长,因此高性能计算通常关注于短时间内提供的巨大计算能力,例如气候气象预测、石油勘探等。而在实际的使用过程中,有非常多的用户需要执行任务量小、运行时间短的计算任务,这类任务通常包含很多个需要同时并行执行的作业链,通常在一千个以上,这类任务称为高通量任务。这些作业链相较于高性能计算的作业链占用计算资源相对较少,执行周期也较短,例如材料计算模拟,这种计算任务往往计算过程复杂、任务数目繁多、任务配置准备时间长,相比于高性能计算关注于短时间内提供的巨大计算能力,执行高通量任务更关注于在一段时间内完成的工作数目。如果直接采用超级计算机的执行高性能计算的技术来执行高通量计算任务,将极大地降低超级计算系统的使用效率,使得高通量任务处理效率低。因此,如何利用超级计算机的计算资源来提高高通量计算任务的执行效率,成为亟待解决的技术问题。

发明内容

[0003] 本发明目的在于,提供一种基于超级计算机的高通量任务处理方法,提高了高通量计算任务的计算效率。
[0004] 根据本发明第一方面,提供了一种基于超级计算机的高通量任务处理方法,包括:
[0005] 获取待执行任务的任务参数,所述任务参数包括任务物理信息和任务执行信息,所述任务物理信息包括作业链类型和应用程序类型,所述任务执行信息包括待执行任务对应的作业链数量M,作业链之间的逻辑关系、每一作业链的作业数量N,作业结构文件、作业之间的逻辑关系以及执行精度,其中M和N均为正整数,M大于等于1000;
[0006] 根据所述待执行任务的任务参数从预设的数据库中获取对应的工作流模板生成M个与M个作业链一一对应的工作流;
[0007] 根据当前计算资源将所述M个工作流分配到所述超级计算机对应的计算节点上并行执行,并将最终的任务执行结果存储至所述数据库中。
[0008] 本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种基于超级计算机的高通量任务处理方法可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:
[0009] 本发明通过建立高通量、自动流程的计算流程,提高了高通量计算任务的计算效率。
[0010] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

附图说明

[0011] 图1为本发明实施例提供的基于超级计算机的高通量任务处理方法流程图。

具体实施方式

[0012] 为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于超级计算机的高通量任务处理方法的具体实施方式及其功效,详细说明如后。
[0013] 本发明实施例提供了一种基于超级计算机的高通量任务处理方法,如图1所示,包括:
[0014] 步骤S1、获取待执行任务的任务参数,所述任务参数包括任务物理信息和任务执行信息,所述任务物理信息包括作业链类型和应用程序类型,应用程序类型指的是超级计算机上执行待执行任务所需的应用程序类型,所述任务执行信息包括待执行任务对应的作业链数量M,作业链之间的逻辑关系、每一作业链的作业数量N,作业结构文件、作业之间的逻辑关系以及执行精度;
[0015] 其中,M和N均为正整数,M大于等于1000,进一步的M的取值范围可设置为[1000,10000]。
[0016] 步骤S2、根据所述待执行任务的任务参数从预设的数据库中获取对应的工作流模板生成M个与M个作业链一一对应的工作流;
[0017] 可以理解的是,每个待执行的任务包括M个并行的作业链,每一作业链对应生成一个可以自动执行的工作流,每一作业链包括多个作业,多个作业按照作业间的逻辑关系连接。M个工作流之间按照作业链之间的逻辑关系连接,需要说明的是,也可能无需连接,具体根据应用需求来设定,例如,需要分别输出并行的M个工作流的输出结果,则M个工作流无需再进行关联,直接输出各自对应的结果即可。再如最终需要输出一个结果,则需将M个工作流的输出结果进行关联,并按照计算需求获取最重的执行结果进行输出。当然,也可输出[1,M]之间任意一值对应的的数量的结果。同时并行M个作业链实现了高通量计算,基于M个作业链生成对应M个能够自动计算的工作流,实现了自动流程。
[0018] 作为示例,所述工作流为有向无环的逻辑工作流。
[0019] 步骤S3、根据当前计算资源将所述M个工作流分配到所述超级计算机对应的计算节点上并行执行,并将最终的任务执行结果存储至所述数据库中。
[0020] 本发明实施例通过建立高通量、自动流程的计算流程,提高了高通量计算任务的计算效率。
[0021] 作为示例,现有的天河系列超级超算系统上每年运行的任务数有30%左右来用于材料模拟计算。因此,本发明实施例所述方法可直接应用于天河超级计算机系统来执行模拟计算任务,例如可用于建立材料基因数据库。
[0022] 作为一种示例,所述步骤S3中,根据当前计算资源将所述M个工作流分配到所述超级计算机对应的计算节点上并行执行,包括:
[0023] 步骤S31、根据当前超级计算机的计算资源和M个工作流所需的计算资源在超级计算机确定所需节点,以及每一节点上所要分配的工作流;
[0024] 步骤S32、将每一工作流分配至对应的节点上,所述节点执行对应的工作流,得到每一工作流的输出结果;
[0025] 步骤S33、根据每一工作流的输出结果、作业链之间的逻辑关系、应用程序类型,从所述数据中调取对应的应用程序进行执行,获取最终的任务执行结果。
[0026] 作为一种示例,步骤S32中,在所述节点执行对应的工作流的过程中,还包括:
[0027] 步骤S302、将所述工作流的每一作业的执行结果以及所述数据库中预先存储的工作流的该作业的预设执行结果进行相互校验;
[0028] 步骤S312、若所述执行结果与所述预设执行结果的误差超过预设的误差范围,则判断所述预设执行结果的准确度是否高于所述执行结果:
[0029] 若是,则将所述预设执行结果替换所述执行结果;
[0030] 否则,将所述执行结果替换所述预设执行结果。
[0031] 可以理解的是,预设的误差范围可根据任务参数里的执行精度来设定。通过步骤S302和步骤S303可以实现当前执行的工作流数据与工作流模板数据的相互校验,提高了任务执行结果的准确性。
[0032] 作为一种示例,所述步骤S32中,所述节点执行对应的工作流,得到每一工作流的输出结果,包括:
[0033] 步骤S321、所述节点依次执行对应工作流中的每一作业,每一作业得到一个作业输出结果,每一作业将其对应的作业输出结果作为该工作流中下一作业的输入,直至该工作流中最后一个作业输出该工作流的输出结果。
[0034] 作为一种示例,所述步骤S321中,所述节点依次执行对应工作流中的每一作业,每一作业得到一个作业输出结果,包括:
[0035] 步骤S3211、获取当前作业对应的结构作业结构文件;
[0036] 步骤S3212、根据所述任务物理信息从所述作业结构文件中提取对应的原始数据;
[0037] 步骤S3213、根据作业链之间的逻辑关系和应用程序类型从所述数据库中调用对应的应用程序,将所述原始数据输入对应的应用程序中执行生成目标数据;
[0038] 步骤S3214、将所述目标数据按照预设的筛选规则进行筛选,得到该作业的输出结果,将该作业的输出结果存储至所述数据库中。
[0039] 高通量、自动流程计算会产生大量的数据,高通量计算的本质也是为了快速地汇聚和积累各种性质地数据,建立一个高效的、方便的、快速的、智能的数据库与高通量、自动流程计算相辅相成,相互补充。数据库贯穿在整个任务执行的流程中,整个任务执行过程中的数据、指令、信息、输入、输出都是在所述数据库中存储或获取,通过数据库进行管理和调用。
[0040] 作为一种示例,可采用python、mongoDB、JSON的技术创建数据库,并实现对数据的全流程自动控制。在可扩展的ceph分布式存储系统上部署非关系型数据库mongoDB来管理数据,部署redis存储系统和CouchDB数据库来管理工作流,部署关系型数据库管理系统MySQL来管理用户信息。其中MongoDB是一个基于分布式文件存储的数据库,支持JSON文件,具有强大的查询语言。通过这样一个数据库实现控制并行计算、数据结果分析、数据传输、数据验证。同时前端用户与数据管理系统可以交互访问,文件下载,结果展示和数据查询。
[0041] 具体地,数据库中用于预先存储根据工作流设置的模板数据、具体可包括工作流输入、工作流执行逻辑控制、计算结果提取等模板,从而实现模板复用,提高任务执行的效率。可采用JSON文本的格式来存储,预先定义了关键字信息,关键子信息可以设置为根据输入信息进行更改或者不能更改的形式。除了JSON格式文件外,所述数据库中还可采用CSV或 XML的格式文件来存储和流通,通过为应用程序构建集成数据接口来调用所述格式文件与所述数据库交互,驱动数据运转,从而执行工作流中的每一作业。
[0042] 作为一种示例,所述为应用程序构建集成数据接口包括:
[0043] 步骤S41、获取所述应用程序的运行特征;
[0044] 步骤S42、从所述运行特征中分离出所述应用程序对应的交互操作信息、参数配置信息、资源需求信息、数据文件信息四个层次信息;
[0045] 步骤S43、分别基于各层次信息获取各层次信息的数类共性特征,抽象数值模拟活动,得到层次化组件模型,所述层次化组件模型包括描述层、定制层、工具层和状态层,将所述描述层、定制层、工具层和状态层进行封装,得到所述集成数据接口,其中,所述描述层用于供交互工具使用,提供组件的功能与使用操作信息;所述定制层用于为预设问题配置对应的解决策略;所述工具层用于描述应用程序的资源需求、交互模式的运行特征,为数值模拟工作流中任务的自动执行提供基础;所述状态层用于描述应用程序的执行过程。
[0046] 此外,数据库还可对文本,图片,二进制等多类型的执行结果数据能够进行分类和高速存储,形成可检索数据库所述方法还包括:通过API接口或web交互,从所述数据库中获取任务执行结果,供其他数据库调用或者外部访问读取。
[0047] 为了能够实时监控多任务的资源使用情况和工作状态等信息,所述方法还可包括:步骤S5、实时监测每一工作流的运行状态、运行进度和资源使用情况,并进行可视化显示。
[0048] 为了保证整个任务执行过程的顺利进行,除了对整个任务执行过程进行监测外,还需对应设置容错机制,能够根据实时反馈实现自动纠错与恢复续算,作为一种示例,容错服务可采取非侵入方式以独立服务的形式提供,采用可插拔式的解耦设计,这样使得容错服务自身的稳定性不会影响高通量、自动流程计算的整体效率。实现容错的统一服务接口,支持并发处理各流程实例的错误、并对容错过程及状态进行管理。作为示例,具体包括以下步骤:
[0049] 步骤S51、当监测到工作流的状态为异常状态时,生成错误事件,并将错误信息存储至所述数据库中的日志信息中;
[0050] 其中,异常状态可包括任务异常退出、数据无效等。
[0051] 步骤S52、通过预设的容错服务从所述日志中周期性地获取错误信息,并对所述错误信息进行识别和分类;
[0052] 步骤S53、基于错误类别启动对应的自动纠错服务进行纠错处理。
[0053] 作为示例任务执行过程中的错误分为三类:1)第一类错误是超级计算系统本身报的错误,比如系统维护、内存不足、作业排队报错等;2)第二类错误是应用程序运行的底层环境报的错误,比如缺少底层数学库依赖、软件安装或者版本不正确等;3)第三类错误是由于计算参数设置不合理导致应用运行本身报错,这是最常见的,也是最多的错误。可以根据错误类型设计对应的容错策略,自动启动纠错动作 ,保证了任务执行过程的顺利进行,提高了任务执行的效率。
[0054] 本发明实施例还提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明实施例所述的方法。
[0055] 本发明实施例还提供一种计算机可读存储介质,所述计算机指令用于执行本发明实施例所述的方法。
[0056] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。