基于DAG调度的稀疏矩阵并行数值分解计算方法及装置与流程
- 国知局
- 2024-07-31 23:13:36
本发明涉数值计算力学中的结构仿真,尤其涉及一种基于dag调度的稀疏矩阵并行数值分解计算方法及装置。
背景技术:
1、有限元仿真分析广泛应用于航天、航空、汽车、重工、船舶、电子电器等领域,已经成为工业产品正向创新研制必不可少的手段与方法。而随着工业的快速发展和产品复杂度的不断提高,相应的有限元仿真计算规模也不断增加。由此导致仿真计算时间呈现爆发式增长,已经成为制约产品快速迭代的关键因素。与此同时,由于摩尔定律的失效,现代处理器硬件朝着多核众核化方向发展,并且出现了计算能力不一致的“大小核”处理器,如何充分利用现代处理器架构实现高效的有限元仿真计算缩短仿真时间,进而缩短产品研发周期加速产品迭代进程成为至关重要的问题。
2、现在与本发明较为接近的mkl pardiso求解器,包含了多种稀疏矩阵直接求解算法,并实现基于共享内存多线程并行计算方法,但该求解器在“大小核”处理器上的并行计算性能较低,这难以满足当前大规模有限元分析的快速求解需求。
技术实现思路
1、本发明的目的在于提供一种基于dag调度的稀疏矩阵并行数值分解计算方法及装置,能够应对cpu核心计算能力不一致的场景,并且在任意核心数上实现高效地稀疏矩阵cholesky分解计算。
2、第一方面,本发明提供一种基于dag调度的稀疏矩阵并行数值分解计算方法,包括:
3、获取有限元仿真计算中的稀疏矩阵;
4、将稀疏矩阵的消去树中的超节点划分成若干个块;
5、用有向无环图来表示基于块的数值分解中的任务依赖关系;
6、预先统计每个块的依赖任务数量,每当一个依赖任务完成都会使该块的依赖数减一,一旦块的依赖数为零,将该块包含的计算任务添加到计算队列中并在计算完成之后产生新的任务。
7、进一步地,将稀疏矩阵的消去树中的超节点划分成若干个块,包括:
8、将一个包含ncol个列的超节点被划分成多个规则的块,bsize表示默认的全局块划分的尺寸,除了超节点底部和最右侧的块,其余的块的尺寸都是bsize乘bsize;
9、根据以下方式改变超节点内部的块尺寸local_size,当ncol小于bsize时,为了保证每个块的计算量,将内部尺寸调整为
10、;
11、将这些块与相邻的块进行合并来避免太小的块带来的性能损失。
12、进一步地,用有向无环图来表示基于块的数值分解中的任务依赖关系,包括:
13、对于对角线上的块,只有被所有的子孙块更新完之后才能进行分解;对于非对角线块,除了被所有的子孙块更新完之后还需要等待同一列的对角线块分解完之后才能求解,完成求解后对相应的祖先块进行更新。
14、进一步地,所述方法还包括:
15、所有计算队列中的任务并行处理,并且不需要任何显式的同步,所有任务的计算与产生实现流水线计算。
16、第二方面,本发明提供一种基于dag调度的稀疏矩阵并行数值分解计算装置,包括:
17、获取单元,用于获取有限元仿真计算中的稀疏矩阵;
18、划分单元,用于将稀疏矩阵的消去树中的超节点划分成若干个块;
19、表示单元,用于用有向无环图来表示基于块的数值分解中的任务依赖关系;
20、统计单元,用于预先统计每个块的依赖任务数量,每当一个依赖任务完成都会使该块的依赖数减一,一旦块的依赖数为零,将该块包含的计算任务添加到计算队列中并在计算完成之后产生新的任务。
21、进一步地,所述划分单元,用于:
22、将一个包含ncol个列的超节点被划分成多个规则的块,bsize表示默认的全局块划分的尺寸,除了超节点底部和最右侧的块,其余的块的尺寸都是bsize乘bsize;
23、根据以下方式改变超节点内部的块尺寸local_size,当ncol小于bsize时,为了保证每个块的计算量,将内部尺寸调整为
24、;
25、将这些块与相邻的块进行合并来避免太小的块带来的性能损失。
26、进一步地,所述表示单元,用于:
27、对于对角线上的块,只有被所有的子孙块更新完之后才能进行分解;对于非对角线块,除了被所有的子孙块更新完之后还需要等待同一列的对角线块分解完之后才能求解,完成求解后对相应的祖先块进行更新。
28、进一步地,所有计算队列中的任务并行处理,并且不需要任何显式的同步,所有任务的计算与产生实现流水线计算。
29、本发明的有益效果:本发明提供的基于dag调度的稀疏矩阵并行数值分解计算方法及装置,设计了基于超节点的二次块划分策略,解决了传统并行计算方法难以应对不同形状消去树的缺陷。通过有向无环图来管理不同任务间的依赖关系并实现任务的并行,避免了并行计算中的显式同步带来的性能损失,大幅提高了程序的拓展性。设计了完全流水线化的cholesky数值分解并行计算方法,实现了计算过程中各线程间的完全动态负载均衡,可以在各核心计算能力不一致的多核心处理器上高效地工作。
技术特征:1.一种基于dag调度的稀疏矩阵并行数值分解计算方法,其特征在于,包括:
2.如权利要求1所述的基于dag调度的稀疏矩阵并行数值分解计算方法,其特征在于,将稀疏矩阵的消去树中的超节点划分成若干个块,包括:
3.如权利要求1所述的基于dag调度的稀疏矩阵并行数值分解计算方法,其特征在于,用有向无环图来表示基于块的数值分解中的任务依赖关系,包括:
4.如权利要求1所述的基于dag调度的稀疏矩阵并行数值分解计算方法,其特征在于,所述方法还包括:
5.一种基于dag调度的稀疏矩阵并行数值分解计算装置,其特征在于,包括:
6.如权利要求5所述的基于dag调度的稀疏矩阵并行数值分解计算装置,其特征在于,所述划分单元,用于:
7.如权利要求6所述的基于dag调度的稀疏矩阵并行数值分解计算装置,其特征在于,所述表示单元,用于:
8.如权利要求6所述的基于dag调度的稀疏矩阵并行数值分解计算装置,其特征在于,所有计算队列中的任务并行处理,并且不需要任何显式的同步,所有任务的计算与产生实现流水线计算。
技术总结本发明公开一种基于DAG调度的稀疏矩阵并行数值分解计算方法及装置,该方法包括:获取有限元仿真计算中的稀疏矩阵;将稀疏矩阵的消去树中的超节点划分成若干个块;用有向无环图来表示基于块的数值分解中的任务依赖关系;预先统计每个块的依赖任务数量,每当一个依赖任务完成都会使该块的依赖数减一,一旦块的依赖数为零,将该块包含的计算任务添加到计算队列中并在计算完成之后产生新的任务。本发明能够应对CPU核心计算能力不一致的场景,并且在任意核心数上实现高效地稀疏矩阵Cholesky分解计算。技术研发人员:王宇杰受保护的技术使用者:湖南迈曦软件有限责任公司技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240730/196536.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。