System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数值模拟高性能计算,尤其涉及一种离散元模型的共享与分布式内存混合并行计算方法。
技术介绍
1、离散元法(dem)用于模拟块状岩石系统中的大尺度渐进运动,其因在模拟非连续介质问题方面的突出优势,自被提出以来得到不断发展,应用逐渐扩展到岩土、地质、石油、水利水电、材料、化工、机械、生物等各个学科领域。然而,基于离散元法的模型在模拟大规模颗粒或块体的运动和相互作用时因计算量巨大而非常耗时,加之现有算法和程序对大规模计算资源如超算、计算集群的利用能力不足,离散元法在需要考虑大量颗粒或块体运动和相互作用的工程尺度问题中的应用受到极大限制,严重制约了离散元的发展。
2、当前,并行计算已成为克服上述问题的主流方式。在离散元法中,并行计算主要有两种经典的实现方式:共享内存并行和分布式内存并行。其中,内存既包括中央处理器cpu中的内存及内存条中的内存,也包括显卡gpu中的内存及显存;共享内存并行要求不同的进程或指令共享同一块存储空间,其典型架构如openmp,具有数据传输高效,编程实现容易,性能/成本比高等优点,但只能在共享内存的计算系统中运行,共享内存节点上的计算资源,无法引入更多核心来增加更多计算资源。分布式内存并行可由多个具有独立内存的计算单元并联组成分布式并行计算系统提供计算资源,其典型架构如mpi,具有出色的扩展性,但计算单元之间必须进行数据通信以保证计算同步,会耗费额外的计算资源,造成一定资源浪费。共享内存与分布式内存混合并行能够同时继承两者的优点并克服两者的缺点,在获得较高性能/成本比的同时进一步提高受计算
技术实现思路
1、本专利技术的目的在于提供一种离散元模型的共享与分布式内存混合并行计算方法,实现在获得较高性能、成本比的同时进一步提高受计算性能控制的离散元计算规模上限,以实现离散元模型的大规模工程问题应用。
2、为实现上述目的,本专利技术采用的一种离散元模型的共享与分布式内存混合并行计算方法,包括如下步骤:
3、启动主进程,初始化全局信息;
4、控制启动n个从进程,各从进程启动后作为被监听客户端,自动向作为监听服务器的主进程发送通信连接请求,建立主从进程间的通信连接;
5、依据接收到的计算任务,各从进程之间建立定向通信连接,同时创建各自区域模型并存储于各自内存中;
6、在n个从进程间进行分布式内存并行计算,各从进程内进行多核多线程共享内存并行计算,从进程i与从进程j之间设置模型共享区域,模型共享区域内实时交换单元及数据信息,保证各从进程间分布式内存并行计算的同步;
7、合并结果输出,将n个从进程内的计算结果传送至主进程合并输出。
8、其中,在启动主进程,初始化全局信息的步骤中:
9、将目标计算模型空间划分为n个区域并编号,初始化从进程之间定向通信连接数据。
10、其中,在启动主进程,初始化全局信息的步骤中:
11、同时主进程作为监听服务器监听等待n个作为被监听客户端的从进程发送通信连接请求。
12、其中,在控制启动n个从进程,各从进程启动后作为被监听客户端,自动向作为监听服务器的主进程发送通信连接请求,建立主从进程间的通信连接的步骤中:
13、主进程通过通信连接向各从进程分配计算任务。
14、其中,在n个从进程间进行分布式内存并行计算,各从进程内进行多核多线程共享内存并行计算,从进程i与从进程j之间设置模型共享区域,模型共享区域内实时交换单元及数据信息,保证各从进程间分布式内存并行计算的同步的步骤中,各从进程内进行多核多线程共享内存并行计算的过程为:
15、启动从进程i,初始化模型区域i,将模型颗粒和接触对象分成若干组;
16、开始循环计算,由从进程i内多核及多线程同时进行每组对象的力-位移计算和运动计算;
17、进行单元运动计算,由从进程i内多核及多线程同时进行每组单元的运动计算;
18、进行接触力计算,单元力更新,由从进程i内多核及多线程同时进行每组接触对象的接触力计算和每组单元的单元力更新;
19、执行结束时间判断。
20、其中,在执行结束时间判断的步骤中:
21、当到达结束时间,结束执行;当未达到结束时间,继续循环计算。
22、本专利技术的一种离散元模型的共享与分布式内存混合并行计算方法,通过启动主进程,初始化全局信息;控制启动n个从进程,各从进程启动后作为被监听客户端,自动向作为监听服务器的主进程发送通信连接请求,建立主从进程间的通信连接;依据接收到的计算任务,各从进程之间建立定向通信连接,同时创建各自区域模型并存储于各自内存中;在n个从进程间进行分布式内存并行计算,各从进程内进行多核多线程共享内存并行计算,从进程i与从进程j之间设置模型共享区域,模型共享区域内实时交换单元及数据信息,保证各从进程间分布式内存并行计算的同步;合并结果输出,将n个从进程内的计算结果传送至主进程合并输出,实现了在获得较高性能、成本比的同时进一步提高受计算性能控制的离散元计算规模上限,以实现离散元模型的大规模工程问题应用。
本文档来自技高网...【技术保护点】
1.一种离散元模型的共享与分布式内存混合并行计算方法,其特征在于,包括如下步骤:
2.如权利要求1所述的离散元模型的共享与分布式内存混合并行计算方法,其特征在于,在启动主进程,初始化全局信息的步骤中:
3.如权利要求2所述的离散元模型的共享与分布式内存混合并行计算方法,其特征在于,在启动主进程,初始化全局信息的步骤中:
4.如权利要求1所述的离散元模型的共享与分布式内存混合并行计算方法,其特征在于,在控制启动N个从进程,各从进程启动后作为被监听客户端,自动向作为监听服务器的主进程发送通信连接请求,建立主从进程间的通信连接的步骤中:
5.如权利要求1所述的离散元模型的共享与分布式内存混合并行计算方法,其特征在于,在N个从进程间进行分布式内存并行计算,各从进程内进行多核多线程共享内存并行计算,从进程i与从进程j之间设置模型共享区域,模型共享区域内实时交换单元及数据信息,保证各从进程间分布式内存并行计算的同步的步骤中,各从进程内进行多核多线程共享内存并行计算的过程为:
6.如权利要求5所述的离散元模型的共享与分布式内存混合并行
...【技术特征摘要】
1.一种离散元模型的共享与分布式内存混合并行计算方法,其特征在于,包括如下步骤:
2.如权利要求1所述的离散元模型的共享与分布式内存混合并行计算方法,其特征在于,在启动主进程,初始化全局信息的步骤中:
3.如权利要求2所述的离散元模型的共享与分布式内存混合并行计算方法,其特征在于,在启动主进程,初始化全局信息的步骤中:
4.如权利要求1所述的离散元模型的共享与分布式内存混合并行计算方法,其特征在于,在控制启动n个从进程,各从进程启动后作为被监听客户端,自动向作为监听服务器的主进程发...
【专利技术属性】
技术研发人员:孙伟宸,吴恺,曹智淋,谢强,傅翔,班宇鑫,李浩,
申请(专利权)人:重庆大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。