一种数值程序的处理系统技术方案

技术编号:32558664 阅读:21 留言:0更新日期:2022-03-05 12:01
本申请提供的一种数值程序的处理系统,用于完成分布式计算的多维变量的同步/异步并行读入/写出,包括:并行读/写流程控制模块、并行读/写模块、应用程序接口模块及计算节点并行读/写信息管理模块,所述数值程序并行运行在计算机的一组计算节点提供的多个进程上,所述应用程序接口用于接收数值程序的请求信息,在所述请求信息为同步/异步写出请求信息的情况下,所述并行读/写流程控制模块调用所述计算节点并行读/写信息管理模块,把所述同步/异步写出请求信息记录到读/写请求池;所述并行读/写模块对应的并行读/写专用线程从所述读/写请求池获取到尚未响应的同步/异步写出请求信息,并完成尚未响应的同步/异步写出请求信息对应的多维变量的数据到文件的并行写出。对应的多维变量的数据到文件的并行写出。对应的多维变量的数据到文件的并行写出。

【技术实现步骤摘要】
一种数值程序的处理系统


[0001]本申请涉及数值程序的处理领域,特别地涉及数值程序的一种处理系统。

技术介绍

[0002]模拟仿真的数值计算程序,在模拟仿真过程中,会不断将多维变量的中间计算结果输出到文件,也会从文件读入多维变量,即数值程序有输入和输出(I/O)数据的需求。数值程序往往需要一批次读入/写出多个变量(即在读完/写完多个变量后才能进行计算),但是相关技术中,采用I/O系统进行数值程序的处理时,只有读完/写完上一个变量后才能启动下一个变量的读入/写出过程,无法真正实现I/O过程与计算过程重叠。

技术实现思路

[0003]针对上述问题,本申请提供一种数值程序的处理系统。
[0004]本申请提供了一种数值程序的处理系统,用于完成分布式计算的多维变量的同步/异步并行读入/写出,包括:并行读/写流程控制模块、并行读/写模块、应用程序接口模块及计算节点并行读/写信息管理模块,所述数值程序并行运行在计算机的一组计算节点提供的多个进程上,所述应用程序接口用于接收数值程序的请求信息,在所述请求信息为同步/异步写出请求信息的情况下,所述并行读/写流程控制模块调用所述计算节点并行读/写信息管理模块,把所述同步/异步写出请求信息记录到读/写请求池;所述并行读/写模块对应的并行读/写专用线程从所述读/写请求池获取到尚未响应的同步/异步写出请求信息,并完成尚未响应的同步/异步写出请求信息对应的多维变量的数据到文件的并行写出。
[0005]在一些实施例中,所述并行读/写流程控制模块还使用进程间通信,将同一计算节点上所有进程的所述同步/异步写出请求信息对应多维变量的数据汇集到所述并行读/写专用线程所属的进程,并在所述并行读/写专用线程所属的进程上把所述汇集到的数据进行缓存;所述并行读/写专用线程在写出数据前,使用进程间通信,将缓存中的所述同步/异步写出请求信息对应的数据在所述一组计算节点之间进行重新排列分布,得到即将并行写出的数据,其中,所述重新排列分布后的数据在同一计算节点内和计算节点之间以各数据在文件中的存放位置为关键字升序排列。
[0006]在一些实施例中,在所述请求信息为同步/异步读入请求信息的情况下,所述并行读/写流程控制模块调用所述计算节点并行读/写信息管理模块,把所述同步/异步读入请求信息记录到所述读/写请求池;所述并行读/写专用线程从所述读/写请求池获取到尚未响应的同步/异步读入请求信息,并完成尚未响应的同步/异步读入请求信息对应的多维变量的数据从文件的并行读入;所述并行读/写专用线程使用进程间通信,将已读入的多维变量的数据在一组计算节点之间进行重新排列分布,使各所述并行读/写专用线程的所属进程获取到该进程所需的部分数据。
[0007]在一些实施例中,所述并行读/写流程控制模块还用于在各计算节点上选出一个
进程,并在该进程上启动所述并行读/写专用线程,以运行所述并行读/写模块。
[0008]在一些实施例中,在所述请求信息为初始化系统请求的情况下,所述并行读/写流程控制模块用于控制各个模块进行初始化。
[0009]在一些实施例中,在所述请求信息为结束请求的情况下,所述并行读/写流程控制模块用于控制各个模块及并行读/写专用线程结束运行,并控制各个模块释放各个模块的内存空间。
[0010]在一些实施例中,在所述请求信息为注册全局多维计算空间请求的情况下,所述并行读/写流程控制模块调用所述计算节点并行读/写信息管理模块记录所述全局多维计算空间;在所述请求信息为注册当前进程的局部多维计算空间请求的情况下,所述并行读/写流程控制模块调用所述计算节点并行读/写信息管理模块记录所述局部多维计算空间,并记录所述局部多维计算空间与所述全局多维计算空间的对应关系;在所述请求信息为注册并行分解请求的情况下,所述并行读/写流程控制模块调用所述计算节点并行读/写信息管理模块记录并行分解,并记录所述并行分解与所述全局多维计算空间、当前进程内若干所述局部多维计算空间的对应关系。
[0011]在一些实施例中,所述读/写请求池中记录各请求信息包含相应多维变量与一个所述并行分解的对应关系;所述并行读/写专用线程用于根据所述并行分解,确定多维变量中在各进程中的各数据对应于文件中的存放位置的关键字;所述并行读/写专用线程根据所述并行分解,完成已读入数据在所述一组计算节点之间的重新排列分布,完成要写出数据在所述一组计算节点之间的重新排列分布;所述并行读/写流程控制模块根据所述并行分解,完成已读入的数据在同一计算节点内各个进程间的散发,使各进程获得相应多维变量在该进程上若干所述局部多维计算空间上的数据。
[0012]在一些实施例中,所述数值程序的处理系统还包括:自适应性能优化模块,所述自适应性能优化模块用于唤醒和休眠所述并行读/写专用线程。
[0013]在一些实施例中,所述自适应性能优化模块还用于建立所述读/写请求池中读/写请求的优先级,其中,同步读/写请求的优先级高于异步读/写请求;优先级高的读/写请求被所述并行读/写专用线程先获取到。
[0014]在一些实施例中,当所述应用程序接口接收到的所述请求信息是同步读入请求信息时,所述并行读/写流程控制模块持续等待所述并行读/写专用线程完成该同步读入请求信息对应变量从文件的并行读入,然后控制所述并行读/写专用线程所属的进程使用进程间通信,把已读入的数据散发给同一计算节点内的各个进程;当所述应用程序接口接收到的所述请求信息是关于异步读入的等待请求信息时,所述并行读/写流程控制模块持续等待所述并行读/写专用线程完成该等待请求信息对应的异步读入请求信息对应变量从文件的并行读入,然后控制所述并行读/写专用线程所属的进程使用进程间通信,把已读入的数据散发给同一计算节点内的各个进程。
[0015]在一些实施例中,当所述应用程序接口接收到的所述请求信息是同步写出请求信息时,所述并行读/写流程控制模块持续等待所述并行读/写专用线程完成该同步写出请求信息对应变量到文件的并行写出;当所述应用程序接口接收到的所述请求信息是关于异步写出的等待请求信息时,所述并行读/写流程控制模块持续等待所述并行读/写专用线程完
成该等待请求信息对应的异步写出请求信息对应变量到文件的并行写出。
[0016]本申请提供的一种数值程序的处理系统,用于完成分布式计算的多维变量的同步/异步并行读入/写出,通过应用程序接口接收数值程序的请求信息,在所述请求信息为同步写出请求信息的情况下,在所述请求信息为同步/异步写出请求信息的情况下,所述并行读/写流程控制模块调用所述计算节点并行读/写信息管理模块,把所述同步/异步写出请求信息记录到读/写请求池,然后并行读/写模块对应的并行读/写专用线程从所述读/写请求池获取到尚未响应的同步/异步写出请求信息,并完成尚未响应的同步/异步写出请求信息对应的多维变量的数据到文件的并行写出,能够实现写出数据和计算过程的重叠,提升数值程序的并行写出效率。
附图说明
[0017]在下文中将基于实施例并参考附图来对本申请进行更详细本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数值程序的处理系统,其特征在于,用于完成分布式计算的多维变量的同步/异步并行读入/写出,包括:并行读/写流程控制模块、并行读/写模块、应用程序接口模块及计算节点并行读/写信息管理模块,所述数值程序并行运行在计算机的一组计算节点提供的多个进程上,所述应用程序接口用于接收数值程序的请求信息,在所述请求信息为同步/异步写出请求信息的情况下,所述并行读/写流程控制模块调用所述计算节点并行读/写信息管理模块,把所述同步/异步写出请求信息记录到读/写请求池;所述并行读/写模块对应的并行读/写专用线程从所述读/写请求池获取到尚未响应的同步/异步写出请求信息,并完成尚未响应的同步/异步写出请求信息对应的多维变量的数据到文件的并行写出。2.根据权利要求1所述的数值程序的处理系统,其特征在于,所述并行读/写流程控制模块还使用进程间通信,将同一计算节点上所有进程的所述同步/异步写出请求信息对应多维变量的数据汇集到所述并行读/写专用线程所属的进程,并在所述并行读/写专用线程所属的进程上把所述汇集到的数据进行缓存;所述并行读/写专用线程在写出数据前,使用进程间通信,将缓存中的所述同步/异步写出请求信息对应的数据在所述一组计算节点之间进行重新排列分布,得到即将并行写出的数据,其中,所述重新排列分布后的数据在同一计算节点内和计算节点之间以各数据在文件中的存放位置为关键字升序排列。3.根据权利要求1所述的数值程序的处理系统,其特征在于,当所述应用程序接口接收到的所述请求信息是同步写出请求信息时,所述并行读/写流程控制模块持续等待所述并行读/写专用线程完成该同步写出请求信息对应变量到文件的并行写出;当所述应用程序接口接收到的所述请求信息是关于异步写出的等待请求信息时,所述并行读/写流程控制模块持续等待所述并行读/写专用线程完成该等待请求信息对应的异步写出请求信息对应变量到文件的并行写出。4.根据权利要求1所述的数值程序的处理系统,其特征在于,在所述请求信息为同步/异步读入请求信息的情况下,所述并行读/写流程控制模块调用所述计算节点并行读/写信息管理模块,把所述同步/异步读入请求信息记录到所述读/写请求池;所述并行读/写专用线程从所述读/写请求池获取到尚未响应的同步/异步读入请求信息,并完成尚未响应的同步/异步读入请求信息对应的多维变量的数据从文件的并行读入;所述并行读/写专用线程使用进程间通信,将已读入的多维变量的数据在一组计算节点之间进行重新排列分布,使各所述并行读/写专用线程的所属进程获取到该进程所需的部分数据。5.根据权利要求4所述的数值程序的处理系统,其特征在于,当所述应用程序接口接收到的所述请求信息是同步读入请求信息时,所述并行读/写流程控制模块持续等待所述并行读/写专用线程完成该同步读入请求信息对应变量从文件的并行读入,然后控制所述并行读/写专用线程所属的进程使用进程间通信,把已读入的数据散发给同一...

【专利技术属性】
技术研发人员:李锐喆赵彤
申请(专利权)人:北京卡普拉科技有限公司
类型:发明
国别省市:

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

1