数值程序的数据处理系统

文档序号:26051313发布日期:2021-07-27 15:26阅读:70来源:国知局
数值程序的数据处理系统
本申请涉及数据处理
技术领域
,特别地涉及一种数值程序的数据处理系统。
背景技术
:用于模拟仿真计算的数值程序通常需要将被模拟仿真的对象离散表示为一定维度(一维、二维、三维、四维、甚至更多维)和分辨率的网格及其上的数据,然后在网格上对相应数学模型进行数值积分求解。数值程序的计算量通常很大,需要利用mpi(消息传递接口)等把数值程序并行化为多进程协同计算的并行程序,以利用高性能计算机众多的处理器核来加速计算,其中数值程序一个网格上的网格点集会被分拆为若干子集,每个进程负责一个子集对应的数值计算,进程间基于mpi等交换部分网格点上的数据。后续把网格点集在不同进程间的分派称为并行剖分。在进行积分运行的过程中,数值程序会不断将模拟仿真计算的结果输出到文件,也会从文件中输入数据,即数值程序有输入和输出数据的需求。用于气候研究和气象海洋预报的地球系统模式和耦合数值预报模式(统称耦合模式)是典型的数值程序,由大气、陆面、海洋、海冰等分量模式通过耦合器的耦合集成而来。数值程序的应用广泛,但是相关技术中提供的数值程序的计算系统,应用不够灵活。技术实现要素:针对上述问题,本申请提供一种数值程序的数据处理系统,包括:输入配置模块,用于获取输入配置信息,所述输入配置信息包括:用于设置第一文件中变量的第一存储网格的第一配置信息和用于设置并行读入数据的m个i/o进程的设置信息;综合管理模块,至少用于基于所述第一配置信息注册所述第一存储网格;数据传递与多维插值管理模块,至少用于完成所述m个i/o进程与数值程序的n个计算进程之间的数据传递;数据并行输入驱动模块,用于建立所述第一存储网格在所述m个i/o进程的第一并行剖分,并操作所述m个i/o进程从所述第一文件中读入变量对应的输入数据,当所述第一存储网格与所述变量的第一计算网格相同时,调用所述数据传递与多维插值管理模块使所述m个i/o进程将所述输入数据发送给n个计算进程,以将所述输入数据并行输入至所述变量。在一些实施例中,所述数据传递与多维插值管理模块还用于对所述变量对应的输入数据进行并行插值计算处理,当所述第一存储网格与所述变量的第一计算网格不同时,所述数据并行输入驱动模块调用所述数据传递与多维插值管理模块对所述变量对应的输入数据进行并行插值计算处理,以使所述变量的第二计算网格与所述第一存储网格相同。在一些实施例中,所述输入配置信息还包括:所述变量对应的输入数据的时间序列与所述数值程序中的时间之间的映射关系,所述数据并行输入驱动模块还用于确定所述输入数据的时间序列信息,并基于所述时间序列信息和所述映射关系,确定所述数值程序是否需要读入所述输入数据,其中,在确定需要读入所述输入数据的情况下,调用所述m个i/o进程读入所述输入数据。在一些实施例中,所述综合管理模块还用于建立所述变量、所述第一存储网格、第一并行剖分信息之间的对应关系,并基于所述对应关系建立搜索关键字;所述数据并行输入驱动模块和/或所述数据传递与多维插值管理模块和/或所述输入配置模块还用于基于所述搜索关键字查找所述对应关系。在一些实施例中,所述数据并行输入驱动模块还用于在所述数值程序的时间和所述输入数据对应的时间不同的情况下,基于所述数值程序的时间对所述对应时间进行插值处理。在一些实施例中,所述数值程序的数据处理系统还包括:输出配置模块,用于管理输出配置信息,所述输出配置信息包括:用于设置所述变量的第二存储网格的第二配置信息;所述综合管理模块,还用于基于第二配置信息注册所述第二存储网格,数据并行输出驱动模块,用于建立所述第二存储网格在所述m个i/o进程的第二并行剖分,并在所述第二存储网格与所述变量的第三计算网格相同时,调用所述数据传递与多维插值管理模块,使n个计算进程将所述变量发送给所述m个i/o进程,以将所述变量并行输出至第二文件。在一些实施例中,所述数据并行输出驱动模块还用于在所述第二存储网格与所述第三计算网格不同的情况下,调用所述数据传递与多维插值管理模块对所述变量对应的数据进行并行插值计算处理,以使所述变量的第四计算网格与所述第二存储网格相同。在一些实施例中,所述输出配置信息还包括:输出时间配置信息;所述数值程序的数据处理系统还包括:输出时钟管理模块,用于基于所述输出时间配置信息确定所述变量的输出时间;所述数据并行输出驱动模块还用于调用所述输出时钟管理模块确定输出时间,以基于所述输出时间输出变量至第二文件。在一些实施例中,所述输出时间包括以下之一:周期性输出时间、非周期性输出时间。在一些实施例中,所述数据并行输出驱动模块还用于将输出属性信息写入到所述第二文件,所述数据并行输出驱动模块还用于统计并行输出所述变量的输出信息。本申请提供的一种数值程序的数据处理系统,通过输入配置模块来管理输入配置信息,综合管理模块基于所述第一配置信息向注册第一存储网格,数据并行输入驱动模块基于第二配置信息建立第一存储网格在所述m个i/o进程的第一并行剖分,并调用所述m个i/o进程从第一文件中读入变量对应的输入数据,在第一存储网格与变量的第一计算网格相同时,调用所述数据传递与多维插值管理模块使所述m个i/o进程将所述输入数据发送给n个计算进程,以将所述输入数据并行输入至所述变量,能够通过输入配置信息指定存储网格和并行剖分,可以提高数值程序应用的灵活性。附图说明在下文中将基于实施例并参考附图来对本申请进行更详细的描述。图1为本申请实施例提供的一种数值程序的数据处理系统的结构示意图;图2为本申请实施例提供的另一种数值程序的数据处理系统的结构示意图。具体实施方式为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。如果申请文件中出现“第一\第二\第三”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
技术领域
的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。基于相关技术中存在的问题,本申请实施例提供一种数值程序的数据处理系统,图1为本申请实施例提供的一种数值程序的数据处理系统的结构示意图,如图1所示,数值程序的数据处理系统100包括:输入配置模块101、综合管理模块102、数据传递与多维插值管理模块103和数据并行输入驱动模块104,其中,输入配置模块101,用于管理输入配置信息,所述输入配置信息包括:用于设置第一文件中变量的第一存储网格的第一配置信息和用于设置并行读入数据的m个i/o进程的设置信息。本申请实施例中,输入配置模块101可以向用户提供数值程序从第一文件中输入单个或一组变量的配置文件接口,提供存储、管理和查找配置文件的功能,用户可以在无需修改数值程序的代码的情况下,就能改变数值程序的变量的输入设置。本申请实施例中,输入配置模块中存放了描述与文件中变量对应的存储网格的规范,用户可以通过输入配置模块101输入第一配置信息来设置变量的第一存储网格。本申请实施例中,可以通过输入配置模块101输入用户指定的输入/输出(i/o)进程,从而确定并行剖分的第二配置信息。本申请实施例中,存储网格为存放在文件中的数据所在的网格,计算网格为变量在数值程序中所在的网格。本申请实施例中,变量用于在数值程序运行过程中存储数据。本申请实施例中,数值程序可以是耦合模式。例如,地球系统模式和耦合数值预报模式。本申请实施例中,数值程序具有n个计算进程。综合管理模块102,至少用于基于所述第一配置信息注册所述第一存储网格。本申请实施例中,管理模块102可以将管理数值程序中的变量、网格与并行剖分,管理变量、网格与并行剖分之间的对应关系。管理模块102向数值程序提供注册变量、网格和并行剖分的应用程序接口,也能根据输入/输出配置信息建立输入/输出变量的存储网格。当确定了第一配置信息后,管理模块可以基于所述第一配置信息向数值程序的数据处理系统注册所述第一存储网格。数据传递与多维插值管理模块103,至少用于完成m个i/o进程与数值程序的n个计算进程之间的数据传递。本申请实施例中,数据传递与多维插值管理模块103可以基于管理模块102管理的信息,完成变量在n个计算进程与m个i/o进程之间的传递,可以是将变量从n个计算进程输入至m个i/o进程,也可以是将变量从m个i/o进程输入至n个计算进程。在一些实施例中,数据传递与多维插值管理模块103还用于在计算网格与存储网格不同时完成变量的并行插值计算。数据并行输入驱动模块104,用于建立所述第一存储网格在所述m个i/o进程的第一并行剖分,并操作所述m个i/o进程从所述第一文件中读入变量对应的输入数据,在所述第一存储网格与所述变量的第一计算网格相同时,调用所述数据传递与多维插值管理模块使所述m个i/o进程将所述输入数据发送给n个计算进程,以将所述输入数据并行输入至所述变量,其中,0<m≤n。本申请实施例中,0<m≤n。本申请实施例中,数据并行输入驱动模块104向数值程序提供了应用程序接口,数据并行输入驱动模块104可以调用输入配置模块101,并基于输入配置信息,完成一个变量或一组变量对应的输入数据并行输入。本申请实施例中,数据并行输入驱动模块104首先根据变量对应的输入数据在第一文件中的时间序列信息,确定在当前数值程序时间是否需要从第一文件读入输入数据。当需要读入输入数据时,数据并行输入驱动模块104先建立存储网格在m个i/o进程上的i/o第一并行剖分,然后让m个i/o进程从第一文件并行读入输入数据,再调用数据传递与多维插值管理模块103完成变量从m个i/o进程到n个计算进程的插值计算和数据传递。数据并行输入驱动模块104最后根据当前数值程序时间和所读入输入数据的时间,自动完成时间相关的插值。本申请实施例中,输入数据可以是气候研究和气象海洋预报等相关的数据。本申请提供的一种数值程序的数据处理系统100,通过输入配置模块101来管理输入配置信息,管理模块102基于基于所述第一配置信息向注册所述第一存储网格,数据并行输入驱动模块104基于第二配置信息建立第一存储网格在所述m个i/o进程的第一并行剖分,并调用所述m个i/o进程从第一文件中读入变量对应的输入数据,在所述第一存储网格与所述变量的第一计算网格相同时,调用所述数据传递与多维插值管理模块103使所述m个i/o进程将所述输入数据发送给n个计算进程,以将所述输入数据并行输入至所述变量,能够通过输入配置信息指定存储网格和并行剖分,可以提高数值程序应用的灵活性。在一些实施例中,所述数据传递与多维插值管理模块还用于对所述变量对应的数据进行并行插值计算处理,在所述第一存储网格与所述变量的第一计算网格不同的情况下,所述数据并行输入驱动模块调用所述数据传递与多维插值管理模块对所述变量对应的输入数据进行并行插值计算处理,以使所述变量的第二计算网格与所述第一存储网格相同。本申请实施例中,通过对变量对应的输入数据进行插值处理,使得变量的计算网格由第一计算网格变为第二计算网格,以使所述变量的第二计算网格与所述第一存储网格相同。当第二计算网格与所述第一存储网格相同时,数据并行输入驱动模块调用所述数据传递与多维插值管理模块使所述m个i/o进程将所述输入数据发送给n个计算进程,以将所述输入数据并行输入至所述变量。示例性地,本申请实施例提供的数值程序的数据处理系统,应用于n个计算进程运行的并行数值程序,根据用户指定的i/o进程数m,其中,0<m≤n。可以完成数值程序的变量v从第一文件的并行输入。m个i/o进程先从第一文件中并行读入变量相应数据d1,然后当d1所在的存储网格g1与v所在的计算网格g2相同时,m个i/o进程把d1发送给n个计算进程,n个计算进程得到的d1就是v的输入数据;当d1所在的存储网格g1与v所在的计算网格g2不同时,完成d1从g1到g2的插值后得到d2,然后n个计算进程得到d2,n个计算进程中的d2就是v的输入数据。在一些实施例中,输入配置模块中还制定了描述存放输入数据的文件名的规范,包括文件所在目录、文件名前缀、文件名后缀、文件名中时间的格式。在一些实施例中,输入配置模块中制定了描述数据文件中所保存变量的时间信息的格式的规范,支持数据的周期性和非周期性时间序列。配置文件模块中制定了描述变量在数据文件中的时间与在数值程序中的时间的映射关系的规范。用户可以基于输入配置模块中指定的规范,进行输入配置,例如,可以配置所述变量对应的输入数据的时间序列与所述数值程序中的时间之间的映射关系,也即所述输入配置信息还包括:所述变量对应的输入数据的时间序列与所述数值程序中的时间之间的映射关系。所述数据并行输入驱动模块还用于确定所述输入数据的时间序列信息,并基于所述时间序列信息和所述映射关系,确定所述数值程序是否需要读入所述输入数据,其中,在确定需要读入所述输入数据的情况下,调用所述m个i/o进程读入所述输入数据。在一些实施例中,所述综合管理模块还用于建立所述变量、所述第一存储网格、第一并行剖分信息之间的对应关系,并基于所述对应关系建立搜索关键字;所述数据并行输入驱动模块和/或所述数据传递与多维插值管理模块和/或所述输入配置模块还用于基于所述搜索关键字查找所述对应关系。本申请实施例中,所述第一并行剖分信息是所述数据并行输入驱动模块进行第一并行剖分后得到的。在一些实施例中,所述数据并行输入驱动模块还用于在所述数值程序的时间和所述输入数据对应的时间不同的情况下,基于所述数值程序的时间对所述对应时间进行插值处理。基于前述的各个实施例,本申请实施例再提供一种数值程序的数据处理系统,图2为本申请实施例提供的另一种数值程序的数据处理系统的结构示意图,如图2所示,所述数据处理系统100还包括:输出配置模块105,用于管理输出配置信息,所述输出配置信息包括:用于设置所述变量的第二存储网格的第二配置信息;所述综合管理模块102还用于基于第二配置信息注册所述第二存储网格,数据并行输出驱动模块106,用于建立所述第二存储网格在所述m个i/o进程的并行剖分,并在所述第二存储网格与所述变量的第三计算网格相同时,调用所述数据传递与多维插值管理模块使n个计算进程将所述变量发送给所述m个i/o进程,以将所述变量并行输出至第二文件。本申请实施例中,输出配置模块105向用户提供输出数值程序的单个或一组变量(多个变量组成一组)的配置文件接口,提供了存储、管理和查找输出配置文件的功能,使用户在无需修改数值程序代码的情况下,就能改变数值程序的输出设置。输出配置模块105中制定了描述变量的存储网格的规范,支持对不同维度(包括一维到多维)的存储网格的描述,支持以立即数形式或文件数据方式设置网格各格点的坐标值信息(坐标值信息来自于配置文件中设置的立即数,或来自从指定数据文件中读入的数据)。输出配置模块105中制定了描述变量输出时钟的规范,支持周期(例如:“周期3小时”表示数值模拟的每3小时输出一次,则模拟1天输出8次)、时间点(例如:第3小时、第9小时、第17小时分别输出)和时间区间(例如从第3小时到第11小时)共计三类时钟设定方式,支持时钟设定方式间的级联,表1为本申请实施例提供的一种输出时钟设定方式间的级联示意表,如表1所示,在模拟开始后的第3~10天中的每天的第3、9、17时输出变量。支持以模拟起始时间或日历时间为基准设定时间点和时间区间(例如:数值程序模拟的起始时间为2020年12月1日08时,当以模拟起始时间为基准时,第9小时的时间点表示当天的下午5时;当以日历时间为基准时,第9小时的时间点则表示当天的上午9点)。表1为本申请实施例提供的一种输出时钟设定方式间的级联示意表时间区域:第3天到第10天,以模拟起始时间为基准周期:1天时间点:第3、第9、第17小时,以日历时间为基准输出配置模块105中制定了描述输出变量值时在时间方向上的统计方式的规范,统计方式包括瞬时值、时间区间内的平均值、时间区间内的最大值、时间区间内的最小值。输出配置模块105中制定了在数据文件中保存变量输出时间的格式的规范。输出配置模块105中制定了描述当数据存储网格不同于变量在数值程序中的网格时的描述输出变量时的插值方案配置的规范。输出配置模块105中制定了描述各变量在数据文件中的变量名、数据类型、注解的规范。输出配置模块105中制定了描述输出数据文件名的规范,包括文件所在目录、文件名前缀、文件名后缀、文件名中时间的格式、更新文件名中时间的周期。本申请实施例中,输出配置模块105可以接收用户的输入,确定用于设置所述变量的第二存储网格的第三配置信息和用于设置并行剖分的第三配置信息。本申请实施例中,所述第一存储网格和所述第二存储网格可以相同,也可以不同。数据并行输出驱动模块块106向数值程序提供了应用程序接口,使得数值程序能调用数据并行输出驱动模块106,完成变量的并行输出。数据并行输出驱动模块106调用输出配置模块105,并基于输出配置信息,完成一个变量或一组变量的并行输出。数据并行输出驱动模块当应该输出数据时,该数据并行输出驱动模块先调用数据传递与多维插值管理模块103,建立第二存储网格在m个i/o进程上的i/o并行剖分,完成变量从n个计算进程到m个i/o进程的插值计算和数据传递;然后再让m个i/o进程并行输出变量到第二文件。本申请实施例提供的数值程序的数据处理系统可以完成变量的并行输入和并行输出。通过输出配置模块105、输入配置模块102可以接收用户的配置信息,可以配置存储网格和并行剖分,既能通过程序接口、也能通过配置信息指定数据的存储网格,提高了指定存储网格的灵活性,从而使得数值程序的应用更灵活。在一些实施例中,所述数据并行输出驱动模块还用于在所述第二存储网格与所述第三计算网格不同的情况下,调用所述数据传递与多维插值管理模块对所述变量对应的数据进行并行插值计算处理,以使所述变量的第四计算网格与所述第二存储网格相同。承接上面的示例,本申请实施例提供的数值程序的数据处理系统,应用于n个计算进程运行的并行数值程序,根据用户指定的i/o进程数m,其中,0<m≤n。能够完成数值程序的变量v从第二文件的并行输入,当所指定的数据存储网格g1与v所在的计算网格g2相同时,n个计算进程先把v发送给m个i/o进程,然后m个i/o进程完成v到第二文件的并行输出;当所指定的数据存储网格g1与v所在的计算网格g2不同时,完成v从g1到g2的插值后得到v2,然后m个i/o进程得到v2,m个i/o进程再把v2写入到指定第二文件。在一些实施例中,所述输出配置信息还包括:输出时间配置信息;所述数据处理系统还包括:输出时钟管理模块,用于基于所述输出时间配置信息确定所述变量的输出时间。本申请实施例中,输出时钟管理模块各输出变量的输出时钟,包括周期、时间区间、时间点三类时钟,及它们之间的级联。该输出时钟管理模块根据输出配置信息,建立输出变量的输出时钟。给定一个变量的输出时钟,该输出时钟管理模块能确定在当前数值程序时间是否应该输出变量。所述数据并行输出驱动模块还用于调用所述输出时钟管理模块确定输出时间,在达到所述输出时间的情况下,建立所述第二存储网格在所述m个i/o进程的并行剖分,并在所述第二存储网格与所述变量的第三计算网格相同时,调用所述数据传递与多维插值管理模块使n个计算进程将所述变量发送给所述m个i/o进程,以将所述变量并行输出至第二文件。在一些实施例中,所述输出时间包括以下之一:周期性输出时间、非周期性输出时间。本申请实施例提供的数值程序的数据处理系统,除周期性数据输出外,还支持非周期性数据输出,提供了描述数据输出时间的配置文件规范。在一些实施例中,所述数据并行输出驱动模块还用于将输出属性信息写入到所述第二文件,所述数据并行输出驱动模块还用于统计并行输出所述变量的输出信息。本申请实施例中,所述输出属性信息包括:输出时间,以及变量的类型、注解等信息。本申请实施例中,所述输出信息可以包括:输出数据的瞬时值、时间区间内的平均值、时间区间内的最大值、时间区间内的最小值等。本申请实施例中,可以在在数值程序中开发调用综合管理模块的程序,完成对变量、网格和并行剖分的注册;并在输入配置模块中输入输入配置文件,并在输出配置模块中输入输出配置文件;在数值程序中开发调用数据并行输入/输出驱动模块,完成对变量的并行输入/输出。应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1