gpt4 book ai didi

c - 矩阵乘法与 mpi

转载 作者:行者123 更新时间:2023-12-04 12:58:30 27 4
gpt4 key购买 nike

我是并行编程的新手。我正在尝试将两个矩阵相乘。我将问题划分如下:

令运算为 mat3 = mat1 x mat2我正在将 mat2 广播到通信器中的所有进程,并将 mat1 的行切割成 strip 并将它们分散到通信器组中的进程。在所有进程都拥有整个 mat2 和 mat1 的相应 strip 之后,它们将 strip 与 mat2 相乘,然后我将 gather 操作与进程的本地结果一起使用,并将整个结果累加到根进程中。

我想知道在通用计算机中是否有更好的问题划分来乘以两个矩阵。

我的实现是在 OpenMPI 中。

最佳答案

关于矩阵乘法的文献中有多种算法可以扩展到 MPI 范例。例如:

> 1Dsystolic [1] 
> 2D-systolic, Cannon’s algorithm [2];
> Fox’s algorithm [3];
> Berntsen’s algorithm [4];
> DNS algorithm [5].

如果您忽略矩阵属性(稀疏等),它基本上会恢复数据如何在进程之间分配以最小化同步和负载不平衡(分配在每个进程之间的工作量)。

在此recent work您可以看到两种不同的数据分发方式以及它们之间的比较。

论文:

[1] Golub G.H and Van C.H L., “Matrix Computations.”,Johns Hopkins University Press, 1989.
[2] Whaley R. C., Petitet A., Dongarra J. J., “Automated empirical optimizations of software and the ATLAS project” Parallel Computing 27, 1.2 (2001), 3.35.
[3] Fox G. C., Otto S. W., and Hey A. J. G., “Matrix algorithms on a hypercube I:
Matrix multiplication”,Parallel Computing, vol. 4, pp. 17-31. 1987.
[4] Berntsen J.,“Communication efficient matrix multiplication on hypercubes, Parallel Computing”, vol. 12, pp. 335-342, 1989.
[5] Ranka S. and Sahni S., “Hypercube Algorithms for Image Processing and Pattern Recognition”, Springer- Verlag, New York, NY, 1990.

关于c - 矩阵乘法与 mpi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13402727/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com