[发明专利]一种海洋数值模式并行框架的设计方法有效
申请号: | 201610243750.0 | 申请日: | 2016-04-14 |
公开(公告)号: | CN105956226B | 公开(公告)日: | 2019-05-03 |
发明(设计)人: | 沈飙;苗春葆;林霄沛;李明悝;钱成春;宋振亚;刘海行;张从 | 申请(专利权)人: | 中国海洋大学 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 266100*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种海洋数值模式并行框架的设计方法,通过对典型的海洋数值模式的计算特征进行分析,将并行功能模块与物理过程计算模块分离开来,并将并行功能封装成一个独立的模块。并行框架的设计只需关注并行功能的实现和并行效率的优化,无需关注具体求解的物理问题,从而具有高度的通用性;而海洋数值模式的开发可以使用并行框架实现并行化,从而可以从数据分解、进程间通讯、并行输入输出等繁琐的细节中解脱出来,更加专注于物理过程的实现。 | ||
搜索关键词: | 一种 海洋 数值 模式 并行 框架 设计 方法 | ||
【主权项】:
1.一种海洋数值模式并行框架的设计方法,其特征在于,包括如下步骤:S1、完成FPOM框架的初始化工作,在使用FPOM框架的功能前,必须首先对其进行调用;S2、释放已分配的资源,每个进行必须在程序结束前对其进行调用;S3、进行均匀网格划分的区域分解:完成x方向的全域网格数、y方向的全域网格数、x方向的进程数、y方向的进程数、边界网格数、用来存储子区域数据所需的x方向最小维度长度、用来存储子区域数据所需的y方向最小维度长度的输入,如果为.FALSE.则在bnx和bny中返回用来存储子区域数据所需的最小维度长度;如果为.TRUE.,则使用bnx和bny中指定的维度长度来存储子区域数据根据指定的进程数,对总网格数进行区域划分,得到各进程存储的子区域的网格数;S4、进行具备负载平衡的区域分解:完成x方向的全域网格数、y方向的全域网格数、全域各网格的负载、x方向的进程数、y方向的进程数、边界网格数、用来存储子区域数据所需的x方向最小维度长度、用来存储子区域数据所需的y方向最小维度长度的输入,如果为.FALSE.则在bnx和bny中返回用来存储子区域数据所需的最小维度长度;如果为.TRUE.,则使用bnx和bny中指定的维度长度来存储子区域数据根据指定的进程数,对总网格数进行区域划分,得到各进程存储的子区域的网格数;根据workload指定的负载进行区域分解,以实现负载平衡,其它与FPOM_DECOMP_UNIFORM相同;S5、边界网格数据更新:由相邻进程更新边界网格的数据,其中<TYPE>可以为CHAR,INT,REAL,分别用来完成character,integer和real类型的边界网格数据更新;S6、进行循环起止范围的转换:完成内网格循环起止范围以及包含边界网格的循环起止范围的转换;S7、进行局部下标与全局下标的转换;S8、进行并行输入输出;S81、并行打开文件:打开文件以进行并行读写操作,其中<TYPE>可以为CHAR,INT,REAL,分别用来进行character,integer和real类型数据的读写操作;S82、并行关闭文件:关闭已打开的并行IO文件;S83、并行读文件:并行读取数据,其中<TYPE>可以为CHAR,INT,REAL,分别用来读取character,integer和real类型的数据;S84、并行写文件:并行写入数据,其中<TYPE>可以为CHAR,INT,REAL,分别用来写入character,integer和real类型的数据;S9、进行数据的散发和收集;S91、数据散发:将根进程中GArray的数据散发到各个进程,其中<TYPE>可以为CHAR,INT,REAL,分别用来散发character,integer和real类型的数据;S92、数据收集:从各进程收集数据存入到根进程的GArray中,其中<TYPE>可以为CHAR,INT,REAL,分别用来收集character,integer和real类型的数据;S93、共享数据:共享GArray的数据,返回一个指向共享数据的句柄,其中<TYPE>可以为CHAR,INT,REAL,分别用来共享character,integer和real类型的数据;S94、关闭共享:关闭wh指向的共享数据;S95、共享数据散发:从根进程将win指向的共享数据散发数据到各进程,其中<TYPE>可以为CHAR,INT,REAL,分别用来散发character,integer和real类型的数据;S96、共享数据收集:从各进程接收数据到根进程中win指向的共享数据,其中<TYPE>可以为CHAR,INT,REAL,分别用来收集character,integer和real类型的数据;S10、完成广播和规约;S101、广播:将以dat为起始的num个数据从根进程广播到其它进程,其中<TYPE>可以为CHAR,INT,REAL,分别用来广播character,integer和real类型的数据;S102、规约:对value进行指定的规约操作,并将结果存入根进程,其中<TYPE>可以为INT,REAL,分别用来规约integer和real类型的数据;S103、组规约:对value进行指定的规约操作,所有进程都可以得到规约结果,其中<TYPE>可以为INT,REAL,分别用来规约integer和real类型的数据;S11、进行屏显调试;S111、显示进程信息:每个进程显示自己的ID以及相关信息;S112、显示信息:根进程或所有进程在标准输出上显示指定的信息;S113、显示子区域数据:根据elefmt指定的格式显示数据A,其中<TYPE>可以为CHAR,INT,REAL,分别用来显示character,integer和real类型的数据。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国海洋大学,未经中国海洋大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610243750.0/,转载请声明来源钻瓜专利网。