scalapack

    0热度

    1回答

    当我这样做: mpif77 example1.f -L scalapack/scalapack-1.8.0/ -lscalapack -L scalapack/blacs/BLACS/LIB -l:blacsF77init_MPI-LINUX-0.a -l:blacs_MPI-LINUX-0.a -l:blacsF77init_MPI-LINUX-0.a -L scalapack/blas/BLA

    0热度

    1回答

    我正在尝试将following example program用作我实验中的粗粒度并行基准。 我加了以下几行代码: START_TIME = MPI_WTIME() * <- added this CALL PDGESV(N, NRHS, MEM(IPA), 1, 1, DESCA, MEM(IPPIV), $ MEM(IPB), 1, 1, DESCB, INFO)

    0热度

    1回答

    我想知道是否存在任何可能将三角形矩阵转换回普通矩阵的Scalapack例程,即将下部/上部复制到上/下部 - 我还找不到它。 我知道存在一个简单的工作区,使用p?geadd来处理对角线,但是那个消耗的内存是理论上需要的两倍,我承担不起这个...... 所以对我来说这似乎很奇怪,Scalapack/PBLAS不提供任何常规解决这个相对简单的问题。如果有人知道比我更多,请让我知道! -Thanks

    1热度

    1回答

    我想复制一个(nxn)矩阵,它是通过(pxq)进程网格分布到所有进程,以便每个进程都有整个(nxn)矩阵,类似于来自mpi的allgather操作。 我明白,scalapacks pdgemr2d例程是要走的路,但示例和文档并没有帮助我弄清楚。我的想法是引入第二个blacs上下文,它仅包含一个进程,也是mpi_root。 pdgemr2d将所有信息复制到此1x1网格。 mpi_root然后播放到所

    1热度

    1回答

    当处理器网格不使用所有可用的MPI内核时,我遇到Scalapack问题。说我也知道格设置Pc*Pr<=NP 当我安装的过程网格 Cblacs_get(0, 0, &ctxt); const char *order = (column_major ? "Col" : "Row"); Cblacs_gridinit(&ctxt, order, procrows, proccols); Cblac

    0热度

    1回答

    我需要使以下程序(从http://www.netlib.org/scalapack/examples/pblas.tgz)与SGEMM一起工作。我需要改变以使其工作?我对Fortran的知识非常有限,我非常认为这是一个黑盒子,并将其用作我虚拟群集的基准。 PROGRAM PDPBLASDRIVER * * -- PBLAS example code -- * University of

    0热度

    1回答

    作为我的研究的一部分,我已经使用ScaLAPACK计算了不同带状系统的并行解决方案。我感兴趣的报告实现加速既是军衔为基质,[R,其带宽的功能,b。 这将如何更好地实现? 这是我选择的宇宙的两个值: [R在{10,000 25,000 50,000 75,000 100,000 500,000 1,000,000 5,000,000 10,000,000} b在{2 4 8 16 32 64 128

    0热度

    1回答

    我想写一些c代码来使用scalapack中的pzheevd例程来查找大型矩阵的所有特征值。我有以下简单的例子,它已经硬编码了一个简单的4x4矩阵。使用单个进程,2个进程或4个我可以得到正确的特征值(-2.0396,-2,2,2.0396)。然而,使用不相称的数字(如3)返回的特征值是不正确的,即使它看起来像所有矩阵元素被正确分配。 要构建的代码使用: mpicc -g test.c -llapac

    0热度

    1回答

    我已经使用Jonathan的code并试图解决A * X = B,但是我的结果基于处理器的数量而变化。任何人都可以在这方面帮助我。 ! Use MPI-IO to read a diagonal matrix distributed block-cycliCALLy, ! use Scalapack to solve ax=b. ! Program array USE mpi

    0热度

    2回答

    我想创建一个并行程序,它大量使用SCALAPACK。 SCALAPACK的基础是BLACS,它本身依靠MPI进行进程间通信。 我想用定义数量的进程(例如机器上的内核数量)启动程序并让算法决定如何使用这些进程进行计算。 作为一个测试用例,我想使用10个进程。这些过程中的9个应该排列成一个网格(BLACS_GRIDINIT),第10个过程应该等到其他过程完成。 不幸的是,OpenMPI崩溃是因为上一个