ScaLAPACK — CAE术语解说
ScaLAPACK
老师,在HPC作业中使用的"ScaLAPACK"库与LAPACK有什么区别呢?
LAPACK是在单台机器上运行的线性代数库。ScaLAPACK顾名思义是"Scalable LAPACK",是可以在并行计算环境中将矩阵分散到多个节点进行计算的版本。
矩阵分散具体是怎样进行的呢?
使用"块循环分散"方式。将矩阵按块为单位依次分配给各个进程。例如对于4个进程,矩阵的每个块被循环分配给进程0,1,2,3,0,1,2,3...这样负载就会均衡分配。
在CAE的哪些场景中会使用到它呢?
主要是大规模LU分解和特征值分析。例如在100万自由度的结构分析中使用直接法求解器时,密矩阵部分的分解会在背后使用ScaLAPACK。由于可以并行化到数百个核心以上,原本需要数天的计算可能在数小时内完成。
CAE用户是否会直接调用ScaLAPACK的API呢?
通常不会。它在求解器内部使用,用户大多不需要意识到它的存在。但如果自己开发求解器或编写研究代码,就需要直接调用它。BLACS(通信层)的初始化等有些特殊性,初期可能会遇到一些麻烦。
在最近的GPU计算中,还会使用ScaLAPACK吗?
GPU计算中主要使用NVIDIA的cuSOLVER或Magma等专门库。但在CPU集群中,ScaLAPACK仍然是现役的主力库,许多CAE求解器的数学基础依然在使用它。
正确理解CAE术语是团队内沟通的基础。 — Project NovaSolver还致力于支持实务者的学习。
Project NovaSolver — 面向CAE实务课题的研究开发
"能否更高效地分析ScaLAPACK?"——我们认真倾听实务工作者的声音,致力于改进现有工作流程,推进下一代CAE项目的研究开发。具体功能仍在保密中,但我们会定期为您分享开发进展。
获取进展通知 →相关主题
本文评价
感谢您的反馈!
有参考
价值
价值
希望
更详细
更详细
报告
错误
错误