问题标签 [scalapack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
78 浏览

fortran - 在 SCALAPACK 中找到分布式向量范数的有效方法

使用 scalapack 考虑以下代码:

它是我尝试的迭代求解器的一部分,问题是如果我的处理器网格是二维的,我的向量在这些 procs 上没有任何元素,因此 dnrm2 产生零或norm变量。因此导致一些proc从循环中提前退出,挂起整个循环。

除了手动广播等之外,确保正确分配规范值的正确方法是什么?

注意:这适用于 1-d procs 分布,请参阅: Inconsistent rows allocation in scalapack

下面给出的是我从维基百科文章中写的一个简单的 Bi-CGSTAB 求解器,它分别从文件 b.dat 和 A.dat 读取向量和矩阵。并继续使用 bicgstab_self_sclpk 例程解决它。下面打印的是值norm


对于 rank=4 运行:

一切都在这里。


对于排名 = 7 运行

如果需要,可以在这里下载矩阵文件:https ://github.com/ipcamit/temp_so

0 投票
1 回答
26 浏览

mpi - 在进程之间平衡一组不同大小的矩阵块的算法

我想在进程之间平衡一组矩阵块。矩阵块具有不同的大小,尽管通常一个单独的块占主导地位,具有相似的大小或什至大于所有其他块的组合。进程的数量可能比块的数量大得多和小得多。每个块可以存储在单个进程中,也可以作为 ScaLAPACK 阵列分布。平衡应在质量上满足以下条件:

  • 没有进程应该接收比 target_load = sum(size(blocks[:])) / n_procs 更多的矩阵元素
  • 任何块都不应分布在比 size(block) / target_load 更多的进程上。MPI 通信器可能从 mpi_comm_world 中分离出来
  • MPI 通信器不能重叠(块 1 和 2 都分布在进程 0:4 上很好,但块 1 分布在进程 0:3 上,块 2 分布在进程 2:5 上是不行的;未分布的块可以任意堆叠在分布式块之上)

我知道这种分布将取决于应用前两个条件的强度和优先级(第三个条件应该严格适用)。尽管如此,是否有任何算法有助于对这些条件进行一些解释?

0 投票
0 回答
13 浏览

scalapack - 用于分配阵列的阻塞因子是什么?

descinit示例的文档中,我们在分布式数组的描述符中找到以下属性(参数 4 和 5):

这里描述的阻塞因素是什么?

0 投票
0 回答
77 浏览

fortran - 何时从 lapack 切换到 scalack?

我有一个关于 scalapack 和系统分辨率的一般性问题。我在密集矩阵上使用 DGESV (Fortran)。从多大的规模切换到 Scalapack 才有意义?从 10 000 X 10 000 ? 100 000 到 100 000?是否有一个一般性的答案,还是逐案?

感谢您的见解