一种嵌套式工作流设置方法技术

技术编号:19778148 阅读:20 留言:0更新日期:2018-12-15 11:15
本发明专利技术涉及一种嵌套式工作流设置方法,包括:比较外层计算节点的输入锚点与外层连接模块的输出锚点,若外层计算节点的全部输入锚点不存在于任何外层连接模块的输出锚点中,则将该外层计算节点的ID放入外层工作流第一级中的外层计算节点ID列表;步骤S300,比较外层工作流第一级中的外层连接模块ID列表中的外层连接模块的输出锚点与外层计算节点的输入锚点,在相同的情况下将该外层计算节点的ID放入外层工作流第二级中的外层计算节点ID列表;将外层工作流各级中的外层计算节点ID列表依次添加外层任务执行顺序列表中。本发明专利技术能够获得同一软件框架内不同执行模块的任意拓扑组合的工作流以及作业中不同软件框架的工作流。

【技术实现步骤摘要】
一种嵌套式工作流设置方法
本专利技术涉及一种嵌套式工作流设置方法。
技术介绍
超级计算机是一个巨大的计算机系统,主要用来承担重大的科学研究、国防尖端技术和国民经济领域的大型计算课题及数据处理任务,如大范围天气预报,整理卫星照片,原子核物理的探索,研究洲际导弹、宇宙飞船等。因此,超级计算机上通常安装着大量计算机软件,以方便在不同应用中根据需要进行调用。然而,由于不同应用领域需要的计算机软件组合不同,每个计算机软件的参数配置不同,处理的数据量不同,因此需要在作业执行前对计算环境进行配置。在涉及多个软件协同的作业中,往往需要对各个相互独立的软件的执行顺序进行个性化的定制。单个软件中各个计算模块也需要按其耦合关系以及作业的具体情况对执行顺序进行定制。对于定制后的软件或计算模块,则需要进一步在作业脚本中确定其执行顺序。当在作业中执行多个软件或者个别软件的众多计算模块时,往往需要花费大量的精力来制定工作流。因此仍然需要工作流设置方法以便准确、方便、快捷地制定工作流。
技术实现思路
为解决上述技术问题,本专利技术提供了一种嵌套式工作流设置方法,包括以下步骤:步骤S100,获得外层计算节点及其ID、输入锚点和输出锚点;获得外层连接模块及其ID、输入锚点和输出锚点;步骤S200,比较外层计算节点的输入锚点与外层连接模块的输出锚点,若外层计算节点的全部输入锚点不存在于任何外层连接模块的输出锚点中,则将该外层计算节点的ID放入外层工作流第一级中的外层计算节点ID列表;比较外层工作流第一级的外层计算节点的输出锚点与外层连接模块的输入锚点,若外层连接模块的输入锚点与任何第一级外层计算节点的输出锚点相同,则将该外层连接模块的ID放入外层工作流第一级中的外层连接模块ID列表;步骤S300,比较外层工作流第一级中的外层连接模块ID列表中的外层连接模块的输出锚点与外层计算节点的输入锚点,在相同的情况下将该外层计算节点的ID放入外层工作流第二级中的外层计算节点ID列表;比较外层工作流第二级的外层计算节点的输出锚点与外层连接模块的输入锚点,若外层连接模块的输入锚点与任何第二级外层计算节点的输出锚点相同,则将该外层连接模块的ID放入外层工作流第二级中的外层连接模块ID列表;步骤S400,重复步骤S300,直至所有外层计算节点和外层连接模块都放入外层工作流各级中的外层计算节点ID列表和外层连接模块ID列表;步骤S500,将外层工作流各级中的外层计算节点ID列表依次添加外层任务执行顺序列表中。本专利技术能够获得同一软件框架内不同执行模块的任意拓扑组合的工作流以及作业中不同软件框架的工作流。附图说明图1是本专利技术的工作流拓扑结构示意图;图2是本专利技术的嵌套式工作流的示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,将结合附图对本专利技术作进一步地详细描述。这种描述是通过示例而非限制的方式介绍了与本专利技术的原理相一致的具体实施方式,这些实施方式的描述是足够详细的,以使得本领域技术人员能够实践本专利技术,在不脱离本专利技术的范围和精神的情况下可以使用其他实施方式并且可以改变和/或替换各要素的结构。因此,不应当从限制性意义上来理解以下的详细描述。作业中执行不同任务的计算机软件所采用的数据结构不同,例如上游软件的输出数据可能需要经过转换才能作为下游软件的输入数据;此外,上游软件也可能输出多种不同的数据,而下游软件需要其中的部分数据作为输入数据;因此需要在脚本文件中制定工作流以顺利完成作业。在本专利技术的一个实施例中,提供一种嵌套式工作流设置方法。通常,工作流基本要素包括节点(例如软件、计算模块等)、锚点(例如数据文件等)和连接(例如数据转换模块等),三者的的不同组合,将形成一对一、一对多、多对一、多对多等不同的工作流形式。节点、锚点、连接应包括但不限于ID、展示名称等参数,其中ID为字符串,且具有唯一性可辨识性。嵌套式工作流包括两层:外层工作流由无耦合关系的独立作业脚本按照一定的图顺序组成,内层工作流由内部独立作业脚本中具有前耦合的模块按照一定的图顺序组成。嵌套式工作流设计在由服务器作为后端提供,用户通过电脑上的浏览器上实现。进一步地,所述脚本文件包括执行外层工作流的第一级可执行脚本,其中所述外层工作流包括由计算机软件组中各个计算机软件形成的外层计算节点以及用于接收上游外层计算节点的输出数据并将其转换成下游外层计算节点的输入数据的外层连接模块,每个外层计算节点具有一个或多个用于接收输入数据的输入锚点和一个或多个用于输出数据的输出锚点,每个外层连接模块具有一个或多个用于接收来自上游外层计算节点输出锚点的输出数据的输入锚点以及一个或多个用于输出数据作为下游外层计算节点输入数据的输出锚点,所述第一级可执行脚本包括各个外层计算节点的计算顺序。进一步地,所述工作流包括外层工作流,所述外层工作流是执行作业中多个作为外层计算节点的计算机软件的顺序,所述外层计算节点通过外层连接模块相互连接,所述外层连接模块用于接收上游外层计算节点的输出数据并将其转换成下游外层计算节点的输入数据,每个外层计算节点具有一个或多个用于接收输入数据的输入锚点和一个或多个用于输出数据的输出锚点,每个外层连接模块具有一个或多个用于接收来自上游外层计算节点输出锚点的输出数据的输入锚点以及一个或多个用于输出数据作为下游外层计算节点输入数据的输出锚点。进一步地,所述外层工作流包括源节点、中间节点和尾节点,所述源节点是所有输入锚点都不从外层连接模块的输出锚点接收输入数据的外层计算节点;所述中间节点是具有至少一个输入锚点从外层连接模块的输出锚点接收输入数据的外层计算节点,并且该外层计算节点的至少一个输出锚点的输出数据作为至少一个外层连接模块的输入锚点的输入数据;所述尾节点是具有至少一个输入锚点从外层连接模块的输出锚点接收输入数据的外层计算节点,并且该外层计算节点的所有输出锚点的输出数据都没有作为外层连接模块的输入锚点的输入数据;所述第一级可执行脚本包括依次执行源节点、中间节点和尾节点的计算顺序。进一步地,所述脚本文件还包括用于执行至少一个所述外层计算节点的内层工作流的第二级可执行脚本,其中所述内层工作流包括一个或多个内层计算节点以及用于接收上游内层计算节点的输出数据并将其存储后作为下游内层计算节点的输入数据的数据连接模块,每个内层计算节点具有一个或多个用于接收输入数据的输入锚点和一个或多个用于输出数据的输出锚点,每个数据连接模块具有一个用于接收来自上游内层计算节点的输出锚点的输出数据的输入锚点以及一个或多个用于输出数据作为下游内层计算节点输入数据的输出锚点,所述第二级可执行脚本包括各个内层计算节点的计算顺序并且嵌入所述第一级可执行脚本中对应于所述外层计算节点的位置。具体而言,所述方法包括以下步骤:步骤S100,获得外层计算节点及其ID、输入锚点和输出锚点;获得外层连接模块及其ID、输入锚点和输出锚点;步骤S200,比较外层计算节点的输入锚点与外层连接模块的输出锚点,若外层计算节点的全部输入锚点不存在于任何外层连接模块的输出锚点中,则将该外层计算节点的ID放入外层工作流第一级中的外层计算节点ID列表;比较外层工作流第一级的外层计算节点的输出锚点与外层连接模块的输入锚点,若外层连接模块的输入锚点与任何第一级外层计算节点的输本文档来自技高网...

【技术保护点】
1.一种嵌套式工作流设置方法,包括以下步骤:步骤S100,获得外层计算节点及其ID、输入锚点和输出锚点;获得外层连接模块及其ID、输入锚点和输出锚点;步骤S200,比较外层计算节点的输入锚点与外层连接模块的输出锚点,若外层计算节点的全部输入锚点不存在于任何外层连接模块的输出锚点中,则将该外层计算节点的ID放入外层工作流第一级中的外层计算节点ID列表;比较外层工作流第一级的外层计算节点的输出锚点与外层连接模块的输入锚点,若外层连接模块的输入锚点与任何第一级外层计算节点的输出锚点相同,则将该外层连接模块的ID放入外层工作流第一级中的外层连接模块ID列表;步骤S300,比较外层工作流第一级中的外层连接模块ID列表中的外层连接模块的输出锚点与外层计算节点的输入锚点,在相同的情况下将该外层计算节点的ID放入外层工作流第二级中的外层计算节点ID列表;比较外层工作流第二级的外层计算节点的输出锚点与外层连接模块的输入锚点,若外层连接模块的输入锚点与任何第二级外层计算节点的输出锚点相同,则将该外层连接模块的ID放入外层工作流第二级中的外层连接模块ID列表;步骤S400,重复步骤S300,直至所有外层计算节点和外层连接模块都放入外层工作流各级中的外层计算节点ID列表和外层连接模块ID列表;步骤S500,将外层工作流各级中的外层计算节点ID列表依次添加外层任务执行顺序列表中。...

【技术特征摘要】
1.一种嵌套式工作流设置方法,包括以下步骤:步骤S100,获得外层计算节点及其ID、输入锚点和输出锚点;获得外层连接模块及其ID、输入锚点和输出锚点;步骤S200,比较外层计算节点的输入锚点与外层连接模块的输出锚点,若外层计算节点的全部输入锚点不存在于任何外层连接模块的输出锚点中,则将该外层计算节点的ID放入外层工作流第一级中的外层计算节点ID列表;比较外层工作流第一级的外层计算节点的输出锚点与外层连接模块的输入锚点,若外层连接模块的输入锚点与任何第一级外层计算节点的输出锚点相同,则将该外层连接模块的ID放入外层工作流第一级中的外层连接模块ID列表;步骤S300,比较外层工作流第一级中的外层连接模块ID列表中的外层连接模块的输出锚点与外层计算节点的输入锚点,在相同的情况下将该外层计算节点的ID放入外层工作流第二级中的外层计算节点ID列表;比较外层工作流第二级的外层计算节点的输出锚点与外层连接模块的输入锚点,若外层连接模块的输入锚点与任何第二级外层计算节点的输出锚点相同,则将该外层连接模块的ID放入外层工作流第二级中的外层连接模块ID列表;步骤S400,重复步骤S300,直至所有外层计算节点和外层连接模块都放入外层工作流各级中的外层计算节点ID列表和外层连接模块ID列表;步骤S500,将外层工作流各级中的外层计算节点ID列表依次添加外层任务执行顺序列表中。2.根据权利要求1的所述嵌套式工作流设置方法,还包括以下步骤:步骤S600,对步骤S100获得的外层计算节点,获得该外层计算节点的内层计算节点及其ID、输入锚点和输出锚点,并且获得该外层计算节点的内层连接模块及其ID、输入锚点和输出锚点;步骤S610,比较内层计算节点的输入锚点与内层连接模块的输出锚点,若内层计算节点的全部输入锚点不存在于任何内层连接模块的输出锚点中,则将该内层计算节点的ID放入内层工作流第一级中的内层计算节点ID列表;比较第一级的内层计算节点的输出锚点与内层连接模块的输入锚点,若内层连接模块的输入锚点与任何第一级内层计算节点的输出锚点相同,则将该内层连接模块的ID放入内层工作流第一级中的内层连接模块ID列表;步骤S620,比较内层工作流第一级中的内层连接模块ID列表中的内层连接模块的输出锚点与内层计算节点的输入锚点,在相同的情况下将该内层计算节点的ID放入内层工作流第二级中的内层计算节点ID列表;比较内层工作流第二级的内层计算节点的输出锚点与内层连接模块的输入锚点,若内层连接模块的输入锚点与任何内层工作流第二级的内层计算节点的输出锚点相同,则将该内层连接模块的ID放入内层工作流第二级中的内层连接模块ID列表;步骤S630,重复步骤S620,直至所有内层计算节点和内层连接模块都放入内层工作流各级中的内层计算节点ID列表和内层连接模块ID列表;步骤S640,将内层工作流各级中的内层计算节点ID列表依次添加内层任务执行顺序列表中。3.根据权利要求2的所述嵌套式工作流设置方法,还包括以下步骤:步骤S650,对步骤S600获得的内层计算节点,设定该内层计算节点的配置参数。4.根据权利要求1-3中任一项的所述嵌套式工作流设置方法,其中,在步骤S100中,通过在图形化操作界面上以拖拽式操作方式确定外层计算节点的输入锚点和输出锚点与外层连接模块的输入锚点和输出锚点之间的对应关系,所述图形化操作界面包括用于呈现代表外层计算节点图形的外层节点池、呈现外层连接模块图形的外层连接模块池和外层工作流编辑区,外层计算节点图形上具有分别代表输入锚点和输出锚点的图案,外层连接模块图形上具有分别代表输入锚点和输出锚点的图案,具体包括以下步骤:步骤S110,从外层节点池中拖动外层计算节点图形到外层工作流编辑区,从外层连接模块池中拖动外层连接模块图形到外层工作流编辑区,然后通过拖拽将外层计算节点图形的输入锚点或输出锚点与对应的外层连接模块的输...

【专利技术属性】
技术研发人员:康波孟祥飞李健增刘光明菅晓东彭修乾马庆珍司道军
申请(专利权)人:国家超级计算天津中心
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1