问题标签 [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 投票
2 回答
598 浏览

macos - OSX 上的英特尔 MKL 中不存在 Scalapack?

我在 OSX 10.8 上安装了 ifort composer 2013 SP1 update 1 (103),但显然我没有 scalapack 库。OSX 上没有提供 scalapack(它在 linux/win 上)还是我做错了什么?

0 投票
1 回答
356 浏览

c - BLACS 上下文值和多个 MPI 通信器

我正在尝试使用 BLACS/Scalapack(C 接口,英特尔 MKL 版本)进行一些测试,使用多个 MPI 通信器:特别是,我想要获得的是一组对应于(一对一)的 BLACS 上下文/网格一组(不相交的)MPI 通信器。虽然我在使用单个“全局”通信MPI_COMM_WORLD器(我希望你能给我一些关于以下问题的建议。

在调用 BLACS 上下文变量值更新后,我有点困惑Cblacs_gridinit:让我们假设从与通信器对应的“全局”上下文开始MPI_COMM_WORLD。我可以通过调用获得相应的 BLACS 上下文:

并在其上创建一个网格

与,例如,char c_blacsGridOrdering('R')

本例中的 globalContext 值为 0。

在我的代码中使用 6 个 MPI 任务的某个时刻,正在创建一个localCommunicator对应于具有 id 的 4 个任务组的 MPI 通信器 () [0;3]:此时我想为此创建一个新的 BLACS 上下文 ( localContext) “本地”通信器和其上的本地网格。我可以用代码做到这一点

其中上述函数调用序列仅由本地通信器中包含的任务执行。

localContext在调用 之后,该值Csys2blacs_handle等于 1(对于本地通信器的每个任务),但随后的调用将其修改并设置为 0 Cblacs_gridinit

显然,这会在我的其余代码中引起一些问题,因为例如,如果我尝试检索localContext与调用对应的 MPI 通信器,Cblacs2sys_handle我会得到一个与初始globalCommunicator.

很可能我犯了一些非常愚蠢的错误(缺少对某些 BLACS 函数的调用??),或者我不清楚多个 MPI 通信器和 BLACS 上下文/网格之间的相互作用,但我找不到我的代码有什么问题。

您对上述问题有什么建议吗?非常感谢您的帮助!

更新 1

我的问题有一个更新,这可能有助于找到解决方案或至少解释观察到的问题:如果我在任务网格的大小使得所有可用的 MPI 任务都包括在内,例如MKL_INT i_nTaskRow(1)MKL_INT i_nTaskCol(MPI_COMM_WORLD size)。BLACS 会出现这种行为吗?再次感谢您的支持!

0 投票
1 回答
1401 浏览

c++ - MKL ScaLapack 问题

我正在尝试从http://acts.nersc.gov/scalapack/hands-on/etc/pddttrdrv/pddttrdrv.c.html运行一个简单的 Hello World (MKL) ScaLapack 示例,但我偶然发现了一个问题(我正在使用MPICH2 和我的操作系统是 Windows)。

当我使用 MPI 标志运行代码时

-localonly 2

我得到:

PDDTTRF, D&C alg.: only 1 block per proc

我仔细检查了参数并与在线参考进行了比较,以查看值是否正确,我似乎没有发现问题。

代码是:

0 投票
0 回答
26 浏览

optimization - ScaLapack 操作,单词和消息计数

我想知道是否有人知道任何论文或工作笔记来计算 Scalapack 例程执行了多少操作,尤其是它们发送了多少消息以及多少字。

在操作计数方面,我总是可以浏览 Golub 和 Van Loan 的优秀矩阵计算或检查 Lapack 的 LAWN 41 并假设它们对于 ScaLapack 没有太大变化,但我找不到任何关于消息和字数的信息,这是我之前的最后手段通过代码。

0 投票
1 回答
118 浏览

parallel-processing - 使用 scalapack 的线性系统的结果随处理器数量而变化

我使用了Jonathan代码并试图解决 A*X=B,但我的结果会根据处理器的数量而变化。任何人都可以在这方面帮助我。

矩阵 A 和 B 是 scalapack 示例。只是以二进制格式重写它们。所以它们可以被上述程序使用。

和乙

例如对于一个处理器:

mpirun -np 1 ./array 9 A.dat B.dat

对于 2 个处理器

对于 6 个处理器,我会收到一个错误

mpirun -np 6 ./a.out 9 A.dat B.dat

使用 scalapack 示例不会发生这种情况。

0 投票
1 回答
549 浏览

compiler-errors - 编译示例 scalapack 应用程序的问题

当我做:

我得到:

这可能与库链接的顺序有关吗?

如何使用 MPI 运行示例程序

0 投票
1 回答
100 浏览

fortran - 编写打印执行时间的可配置 scalapack 线性系统求解器

我正在尝试调整以下示例程序,以在我的实验中用作粗粒度并行基准。

我在代码中添加了以下几行:

现在,我得到的经过时间似乎根本不一致 - 多次运行导致执行时间完全不同。

我正在使用 qsub 将其作为集群作业运行。有没有办法通过预订系统获取执行时间,而无需更改代码?

对于我的实验,我需要少量的大块。当我尝试增加 SCAEX.dat 中的块大小时:

例如来自:

至:

我得到:

0 投票
1 回答
509 浏览

parallel-processing - 调整 dgemm 示例代码以使用 sgemm (scalapack)

我需要使以下程序(来自http://www.netlib.org/scalapack/examples/pblas.tgz)与 SGEMM 一起使用。我需要更改什么才能使其正常工作?我对 Fortran 的了解非常有限,我几乎将其视为黑盒并将其用作我的虚拟集群的基准。

0 投票
0 回答
108 浏览

matrix - MPI I/0 从文件块循环中读取子矩阵

我有一个巨大的矩阵,需要对该矩阵的巨大子矩阵执行矩阵运算。该矩阵存储在文件中的 CMOed 二进制文件中。使用 MPI_FILE_CREATE_DARRY() 将这个矩阵作为一个整体块循环读取没有问题,但我无法弄清楚如何在子矩阵上这样做,因此只有矩阵的一部分位于内存中的块循环......感谢您的建议!

0 投票
1 回答
62 浏览

matrix - 分布式下/上三角矩阵的上/下部分就地恢复

我想知道是否存在任何可以将三角矩阵转换回一般矩阵的 Scalapack 例程,即将下/上部分复制到上/下部分 - 我还找不到。我知道使用 p?geadd 和对角线操作存在一个简单的解决方法,但是它消耗的内存是理论上需要的两倍,我买不起......所以对我来说这似乎很奇怪,Scalapack/PBLAS 没有'不提供任何解决这个相对简单问题的例程。如果有人知道的比我多,请告诉我!

-谢谢