python 多线程并行 矩阵乘法_python实现简单的并行矩阵乘法

本文介绍了一种使用Python实现简单并行矩阵乘法的方法,通过多进程模块`multiprocessing`来分解计算任务,每个进程计算C矩阵的一个元素。代码示例展示了如何创建和启动进程以加速矩阵乘法运算。
摘要由CSDN通过智能技术生成

python实现简单的并行矩阵乘法

python实现简单的并行矩阵乘法

本文采用的矩阵乘法方式是利用一个矩阵的行和二个矩阵的列相乘时不会互相影响。假设A(m,n)表示矩阵的m行,n列。那么C(m,m)=A(m,n) * B(n,m) :

计算C矩阵时候分解成:

process-1:

C(1,1) = A(1,:) * B(:,1)

process-2:

C(1,2) = A(1,:) * B(:,2)

..........

process-m

C(m,m) = A(m,:) * B(:,m)

实现源码:

import multiprocessing #导入多进程模块,实现多进程

import os #验证,打印进程的id

import numpy as np #这个模块是为了实现矩阵乘法

def matrix_muti(i,j):

print('Current process is {0}'.format(os.getpid())) #打印执行该函数时候的进程

A = [[1, 2], [5, 8]]

B = [[4, 8], [6, 5]]

A = np.array(A)

B = np.array(B)

#print(i,j)

try:

print(sum(A[i,:]*B[:,j]))

except:

pass

if __name__ == '__main__':

m=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值