【问题标题】:Gaussian elimination forward and backward - parallelization?前向和后向高斯消除 - 并行化?
【发布时间】:2011-03-31 16:04:54
【问题描述】:

有什么办法可以使高斯消除倒退吗?我的意思是,我用矩阵的前向高斯消元法解决了一半(在矩阵下对角线下有零),然后我进行了向后替换。但是对于未来的 MPI 并行化,我看不到太多的前景,所以我认为并行化前向和后向高斯消除可能会更好。你怎么看?

谢谢

【问题讨论】:

  • 不要这样做。如果您正在求解线性系统,则有并行算法用于 LU(以及 QR 或 Cholesky)分解。将 ScaLAPACK 与 PBLAS 一起使用,这适用于 MPI 层的顶部,并且所有内容都为您高效地编程。您肯定不想在这里重新发明轮子,在过去的 40 年中,数值线性代数已经投入了大量工作。

标签: c mpi


【解决方案1】:

您是如何将淘汰的第一步并行化的?

我的意思是,反向并行化基本上是相同的算法,只是从下到上完成。那么为什么不再使用你的算法呢?

我想到的只是一种算法,应该很容易实现:

假设一个大小为 [k x k] 的矩阵,其中 A_x_y 是第 x 行中的第 y 个元素。所以现在像这样倒退:

 i = k
 while(i > 1)
      broadcast A_i_i
      if(line < i)
           do Gaussion elimination step
      i--

重要的部分基本上是你只需要广播一个元素(如果你有一个 LSE,或者两个),因为一行的所有其他部分已经为零 我假设您为每个处理器拆分了几行,这对我来说似乎是最合理的 MPI 数据拆分。

【讨论】:

  • 我有关于将服务器线拆分到处理器的想法,感谢您的评论
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 2013-03-23
  • 2023-03-25
  • 2023-04-09
相关资源
最近更新 更多