[发明专利]一种基于格子Boltzmann理论CPU/MIC协同计算的大涡模拟方法在审

专利信息
申请号: 201310229161.3 申请日: 2013-06-09
公开(公告)号: CN103324531A 公开(公告)日: 2013-09-25
发明(设计)人: 卢晓伟;张清 申请(专利权)人: 浪潮电子信息产业股份有限公司
主分类号: G06F9/48 分类号: G06F9/48
代理公司: 暂无信息 代理人: 暂无信息
地址: 250014 山东*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明提供一种基于格子Boltzmann理论CPU/MIC协同计算的大涡模拟方法,包括采用LBM方法的大涡模拟方法、CPU端、MIC众核协处理器端以及CPU+MIC协同计算模式,其中:CPU端负责将要进行大涡模拟的网格数据分割,向MIC卡传递大涡模拟所需要的值,CPU+MIC协同计算模式的框架搭建以及任务调度和参数初始化工作,而且在整个网格的计算任务中,CPU也会以Openmp多线程模式,依次通过迁移碰撞,边界处理的多次迭代获取得速度、密度和流函数的宏观参量;MIC众核协处理器负责网格点的迁移和碰撞过程,对边界进行处理,根据分布函数并行求得速度、密度和流函数等宏观参量,在MIC卡上也采用openmp多线程的方式来运算。
搜索关键词: 一种 基于 格子 boltzmann 理论 cpu mic 协同 计算 模拟 方法
【主权项】:
一种基于格子Boltzmann理论CPU/MIC协同计算的大涡模拟方法, 其特征在于包括采用LBM方法的大涡模拟方法、CPU端、MIC众核协处理器端以及CPU+MIC协同计算模式,其中:CPU端负责将要进行大涡模拟的网格数据分割,向MIC卡传递大涡模拟所需要的值,CPU+MIC协同计算模式的框架搭建以及任务调度和参数初始化工作,而且在整个网格的计算任务中,CPU也会以Openmp多线程模式,依次通过迁移碰撞,边界处理的多次迭代获取得速度、密度和流函数的宏观参量;MIC众核协处理器负责网格点的迁移和碰撞过程,对边界进行处理,根据分布函数并行求得速度、密度和流函数等宏观参量,在MIC卡上也采用openmp多线程的方式来运算; CPU端将要进行大涡模拟的网格数据分割,向MIC卡传递大涡模拟所需要的值,以openmp多线程模式,并行执行迁移碰撞,边界处理来获取速度、密度和流函数的宏观参量,具体包括:LES_MIC算法中,根据网格的划分,在对划分边界要做一些特殊的处理,在迁移过程中,每个点的计算需要其周围9个方向的分布函数值,因此,需要在分布函数中多存储1或2行用于下一步时层的计算,并且在每次迭代之后在节点与节点之间、MIC卡之间进行边界数据的交换;CPU负责CPU+MIC协同计算模式的框架搭建以及任务调度,具体包括:单节点服务器采用由双路6核CPU和2块KNF MIC卡组成的桌面服务器,在CPU+MICs协同计算中,把双路CPU和MIC卡都作为计算设备,这样每个单节点就相当于有3个计算设备,每个设备通过一个OpenMP线程进行控制;本方法是数据级并行,所以采用静态数据划分的方式,每次各个设备读取设定好的网格数据以及边界处理需要的数据,然后分别进行数据处理,相邻设备需要交换数据,迭代多次,直到所有设备计算完成所有网格数据,由CPU输出结果;MIC众核协处理器负责网格点的迁移和碰撞过程,对边界进行处理,根据分布函数并行求得速度、密度和流函数的宏观参量,在MIC卡上也采用openmp多线程的方式来运算;根据对LBM算法中求解离散方程和边界处理的串行算法的热点分析和并行性分析,每个网格点的迁移、碰撞、宏观量统计、平衡态分布函数计算和边界处理的计算都是数据并行的;求解离散方程可以采用迁移碰撞的过程,宏观量统计、平衡态分布函数计算和碰撞过程中对每个网格的计算之间没有任何依赖性,因此,让MIC中的每个线程负责一个网格划分中的一行网格点的计算,每行网格点的计算利用MIC上的向量化技术进一步加速;分布函数的迁移只涉及到该格点周围的其他格点,或通过单个线程对全局存储器中相关分布函数的读操作来实现;在LBM算法中,对边界要做特殊的处理,包括:非平衡外推,反弹,对于边界上的每个格点之间的计算也没有数据的依赖性,因此,利用OpenMP多线程负责边界格点的计算;OpenMP的线程模型设计:根据MIC核心数目设置内核的线程数;具体步骤如下:步骤一:CPU+MIC协同计算框架搭建在单节点上,共有M+1个设备,一个CPU+M个MIC卡,采用OpenMP的fork‑join模式搭建单节点上的框架,当程序开始执行的时候只有一个主线程存在,需要进行并行计算的时候,主线程派生出附加线程,即启用M+1个OpenMP线程, 0~M‑1号进程控制所有MIC设备,M号线程控制CPU设备,按照数据的分配设计,每个设备进行输入数据的分发读写;在CPU+2MICs平台上, 主线程控制输入数据的动态分发,0号线程控制MIC0设备,1号线程控制MIC1设备,2号线程控制CPU设备;在CPU和MIC卡上,对于分布函数,其大小要比网格大小大两行,同时方便代码的书写,要对最上面的设备和最下面的设备要做+2行的数据定义,其中有一行在代码中不需要使用;单节点上CPU+MICs协同计算的外围框架的伪代码如下所示:定义一些变量//在迭代范围之内 int DEVICE_NUM  //设备数for(int i=0;i
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310229161.3/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

tel code back_top