方程组求解算法的并行化探讨
- 0 Collaborators
从线性代数角度求解线性方程组有一个经典方法叫做高斯消元法,该方法的基本思路是将方程组的增广矩阵通过初等行变换转换为阶梯矩阵,进而通过迭代求解出方程的解。但高斯消元法有两个严重的缺陷:主元为0时无法求解和主元太小时求解误差过大。列主元消元法是对高斯消元法的一种优化方法,先通过列交换将主元替换为绝对值较大的元素,规避了高斯消元法的以上两个缺陷。本项目着眼于将高斯消元法和优化后的列主元消元法分别用串行、并行两种方式实现,并在Intel提供的DevMesh平台上部署代码,比较运行效率,体会程序并行化的方法及意义。 ...learn more
Project status: Published/In Market
Intel Technologies
oneAPI
Overview / Usage
从线性代数角度求解线性方程组有一个经典方法叫做高斯消元法,该方法的基本思路是将方程组的增广矩阵通过初等行变换转换为阶梯矩阵,进而通过迭代求解出方程的解。但高斯消元法有两个严重的缺陷:主元为0时无法求解和主元太小时求解误差过大。列主元消元法是对高斯消元法的一种优化方法,先通过列交换将主元替换为绝对值较大的元素,规避了高斯消元法的以上两个缺陷。本项目着眼于将高斯消元法和优化后的列主元消元法分别用串行、并行两种方式实现,并在Intel提供的DevMesh平台上部署代码,比较运行效率,体会程序并行化的方法及意义。
Methodology / Approach
在编写并行算法前,对串行算法进行分析可得,整个算法有两重循环,而内循环中又有两个互不干涉的循环体,第一个内循环的作用是把第k行的所有元素都除以主元m[k][k],而第二个内循环则是对矩阵以主元划分的左下角第k列进行消0,因此,鉴于这两个步骤的互不干扰性,我们完全可以把这两步并行化处理以提高整体算法的运行效率。
Technologies Used
Intel OneAPI