并行矩阵乘法

39视图(30天)
默罕默德
默罕默德 2015年5月20日
编辑: 乔尔·林奇 2023年5月14日15:08
我正在寻找一个简短的教程/例子解释我们如何并行矩阵乘法。注意,目前矩阵的大小是200 * 200(40000个元素)。谢谢。

接受的答案

詹姆斯Tursa
詹姆斯Tursa 2015年5月20日
在MATLAB矩阵相乘的最好办法是使用*运营商,像平时一样。这将调用bla例程,高度优化的并行算法在背景中。如果你有稀疏矩阵,*操作符将调用专门的稀疏矩阵相乘的例程。你将会非常很难自己做得更好。
4评论
乔尔·林奇
乔尔·林奇 2023年5月14日在15:07
编辑:乔尔·林奇 2023年5月14日15:08
“如果你有稀疏矩阵,*操作符将调用专门的稀疏矩阵相乘的例程。你将会非常很难自己做得更好。”
不幸的是,这句话是非常误导,如果不是错误的。至少R2023,稀疏矩阵乘法在CPU的仅限于单个线程。詹姆斯的测试没有表现出这一点,但是它很容易看到的:
N = 20000;
密度= 0.2;
一个= sprand (N, N,密度);
b =兰德(N, 1);
Nmax_threads = maxNumCompThreads (“自动”)
Nmax_threads = 2
时间(@ ()A * b)
ans = 0.0510
maxNumCompThreads (1);
时间(@ ()A * b)
ans = 0.0506
这非常奇怪,因为MKL支持多线程稀疏矩阵数学相当长一段时间。金宝app直到这个更新,最好的最适合大型稀疏矩阵问题是使用gpuArray,甚至商业卡能做的更好。

登录置评。

更多的答案(0)

类别

找到更多的在运营商和基本操作帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!