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
n=0
print('parent process is {0}'.format(os.getpid())) #獲取父進程id
for i in range(4):
#控制矩陣的行列數字變化
n=n+1
if n % 3 == 0:
m = m + 1
n = 1
#查看下標變化是否正確
print('下標變化:',m-1,n-1)
p = multiprocessing.Process(target=matrix_muti,args=(m-1,n-1,)) #固定格式,使用4個子進程求矩陣的乘積
p.start() #開始
p.join()
復制時候運行了下,發現復制到Pycharm時代碼縮進變了,需要手動調整下,不然會報錯
貼出運行結果如下:
轉載于:https://blog.51cto.com/13155409/2120153
python實現簡單的并行矩陣乘法相關教程
清華架構師整理分布式系統文檔從實現原理到系統實現收藏吧
清華架構師整理分布式系統文檔:從實現原理到系統實現,收藏吧 文章末尾有福利!!! 微服務、云原生、Kubernetes、Service Mesh是分布式領域的熱點技術,它們并不是憑空出現的,一定繼承了某些“前輩”的優點。我們不僅要了解這些技術,還要深入理解其發展
Jsp+Ssm+Mysql實現簡單的OA辦公管理系統
Jsp+Ssm+Mysql實現簡單的OA辦公管理系統 Jsp+Ssm+Mysql實現簡單的OA辦公管理系統 主要實現的功能有員工注冊登錄,自動計算當前月遲到、 早退、加班、缺勤天數并根據圖表展示, 任務管理(任務發布、更新、刪除、進度條展示完成度), 通知管理(通知發布、更
spring security oauth2 簡單內存方式配置
spring security oauth2 簡單內存方式配置 spring security oauth2 簡單配置說明 modules !-- 項目依賴-- modulespring-security-oauth2-dependencies/module !-- 認證服務器-- modulespring-security-oauth2-server/module !--資源服務器-- modulespring-sec
java代碼實現Ceph連接
java代碼實現Ceph連接 一、簡要概述 Ceph做為優秀的性能、可靠性和可擴展性而設計的統一的、分布式文件系統; 二、系統架構 Ceph 系統架構可以劃分為以下四部分: Clients:數據用戶 客戶端 cmds:Metadata server cluster,元數據服務器(緩存和同步分布式元
Python面向對象習題
Python面向對象習題 隊列類。隊列是具有先進先出特性的數據結構。一個隊列就像是一行隊伍,數據從前端被移除,從后端被加入。這個類必須支持一下幾種方法。 并且實現以下的功能 class Line(object):#定義一個類def __init__(self): #定義方法 self.__Line = [
2021編程語言「后浪」趨勢預測:JavaScript、Python熱度不減,但
2021編程語言「后浪」趨勢預測:JavaScript、Python熱度不減,但崛起最快的卻是它... 選自Medium,作者:Mr Herath 本文轉自機器之心( nearhuman2014 ) 原文鏈接: https://medium.com/better-programming/what-will-be-the-best-back-end-programming-lang
如何用Python優雅的登錄校園網?
如何用Python優雅的登錄校園網? 點擊上方“ 菜鳥學Python ”,選擇“ 星標 ”公眾號 超級無敵干貨第一時間推給你!!! 前言 今天這篇文章的思路來源于校園網,很多的校園網在每次連接時都需要進入一個網址進行登錄,這個步驟真的是非常非常的麻煩(大學生都
C#反射技術在多語言實現中的實際用處參考讓初學者學技術有個針對
C#反射技術在多語言實現中的實際用處參考,讓初學者學技術有個針對性【附源碼】... 為什么80%的碼農都做不了架構師? 做軟件,有點兒類似鐵人三項比賽?賽跑、射擊、游泳?光某個環節突出,也沒多大用,需要整體能力都強,能把整體都可以搞定,才容易得到比賽