问题标签 [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.
macos - OSX 上的英特尔 MKL 中不存在 Scalapack?
我在 OSX 10.8 上安装了 ifort composer 2013 SP1 update 1 (103),但显然我没有 scalapack 库。OSX 上没有提供 scalapack(它在 linux/win 上)还是我做错了什么?
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 会出现这种行为吗?再次感谢您的支持!
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
我仔细检查了参数并与在线参考进行了比较,以查看值是否正确,我似乎没有发现问题。
代码是:
optimization - ScaLapack 操作,单词和消息计数
我想知道是否有人知道任何论文或工作笔记来计算 Scalapack 例程执行了多少操作,尤其是它们发送了多少消息以及多少字。
在操作计数方面,我总是可以浏览 Golub 和 Van Loan 的优秀矩阵计算或检查 Lapack 的 LAWN 41 并假设它们对于 ScaLapack 没有太大变化,但我找不到任何关于消息和字数的信息,这是我之前的最后手段通过代码。
fortran - 编写打印执行时间的可配置 scalapack 线性系统求解器
我正在尝试调整以下示例程序,以在我的实验中用作粗粒度并行基准。
我在代码中添加了以下几行:
现在,我得到的经过时间似乎根本不一致 - 多次运行导致执行时间完全不同。
我正在使用 qsub 将其作为集群作业运行。有没有办法通过预订系统获取执行时间,而无需更改代码?
对于我的实验,我需要少量的大块。当我尝试增加 SCAEX.dat 中的块大小时:
例如来自:
至:
我得到:
parallel-processing - 调整 dgemm 示例代码以使用 sgemm (scalapack)
我需要使以下程序(来自http://www.netlib.org/scalapack/examples/pblas.tgz)与 SGEMM 一起使用。我需要更改什么才能使其正常工作?我对 Fortran 的了解非常有限,我几乎将其视为黑盒并将其用作我的虚拟集群的基准。
matrix - MPI I/0 从文件块循环中读取子矩阵
我有一个巨大的矩阵,需要对该矩阵的巨大子矩阵执行矩阵运算。该矩阵存储在文件中的 CMOed 二进制文件中。使用 MPI_FILE_CREATE_DARRY() 将这个矩阵作为一个整体块循环读取没有问题,但我无法弄清楚如何在子矩阵上这样做,因此只有矩阵的一部分位于内存中的块循环......感谢您的建议!
matrix - 分布式下/上三角矩阵的上/下部分就地恢复
我想知道是否存在任何可以将三角矩阵转换回一般矩阵的 Scalapack 例程,即将下/上部分复制到上/下部分 - 我还找不到。我知道使用 p?geadd 和对角线操作存在一个简单的解决方法,但是它消耗的内存是理论上需要的两倍,我买不起......所以对我来说这似乎很奇怪,Scalapack/PBLAS 没有'不提供任何解决这个相对简单问题的例程。如果有人知道的比我多,请告诉我!
-谢谢