python 多線程并行 矩陣乘法_python實現簡單的并行矩陣乘法

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時代碼縮進變了,需要手動調整下,不然會報錯

貼出運行結果如下:

de6b1f4bce7d4c1c7f3f3a9e7417d3ca.png

轉載于: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%的碼農都做不了架構師? 做軟件,有點兒類似鐵人三項比賽?賽跑、射擊、游泳?光某個環節突出,也沒多大用,需要整體能力都強,能把整體都可以搞定,才容易得到比賽

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538992.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538992.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538992.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

停止Java線程,小心interrupt()方法

轉自http://www.blogjava.NET/jinfeng_wang/archive/2008/04/27/196477.html ---------------------------------------------------------------------------------------------------- 程序是很簡易的。然而,在編程人員面前,多線程呈現出了一組新的難…

python輸入數學表達式并求值_用Python3實現表達式求值

一、題目描述 請用 python3編寫一個計算器的控制臺程序,支持加減乘除、乘方、括號、小數點,運算符優先級為括號>乘方>乘除>加減,同級別運算按照從左向右的順序計算。 二、輸入描述 數字包括"0123456789",小數點…

mac上的mysql管理工具sequel pro

https://blog.csdn.net/wan_zaiyunduan/article/details/54909389 以前用過Plsql、Navicat、Workbench,現在換到mac上,用了現在這一款管理工具,很好用,所以推薦給大家。 完整的MySQL支持 Sequel Pro是一個快速,易于使用的Mac數據庫…

報錯 classes 拒絕訪問_3種方式“移除”快速訪問;為什么移除?你懂的...

Windows 10 在文件資源管理器中引入了"快速訪問"這個功能,每當打開文件資源管理器窗口時,您都會看到常用文件夾和最近訪問的文件的列表,這個功能雖然方便了日常使用,可能會提高工作效率,但是如果是公司的電腦…

java set是重復_java算法題,set內出現重復元素

題目將數字 1…9 填入一個33 的九宮格中,使得格子中每一橫行和的值全部相等,每一豎列和的值全部相等。請你計算有多少種填數字的方案。這個是計蒜客上面的一個模擬題,我采用暴力。public class _3 {/** 將數字 1…9 填入一個33 的九宮格中&am…

Lock的lockInterruptibly()

概述 lockInterruptibly()方法比較特殊,當通過這個方法去獲取鎖時,如果其他線程正在等待獲取鎖,則這個線程能夠響應中斷,即中斷線程的等待狀態。也就使說,當兩個線程同時通過lock.lockInterruptibly()想獲取某個鎖時&…

python中把輸出結果寫到一個文件中_Python3.6筆記之將程序運行結果輸出到文件的方法...

Python3.6筆記之將程序運行結果輸出到文件的方法 更新時間:2018年04月22日 14:27:32 投稿:jingxian 下面小編就為大家分享一篇Python3.6筆記之將程序運行結果輸出到文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小…

hangfire.mysql.core_abp 使用 hangfire結合mysql

abp 官方使用的hangfire 默認使用的是sqlserver的存儲mysql須要引入支持mysql的類庫sql我這邊使用的是Hangfire.MySql.Core數據庫直接用nuget安裝便可app首先按照官方文檔要求,改幾個地方sqlserver分別是 Startup 文件下serverservices.AddHangfire(config >{con…

python 圖標題上移_Python-Matplotlib將圖形標題移動到y軸

我目前在python中使用matplotlib來繪制一些數據,但是我希望圖表的標題位于Y軸上,因為沒有足夠的空間來存儲一個圖形的標題和另一個圖形的x軸標簽.我知道我可以將hspace設置為更大的數字但是,我不想這樣做,因為我計劃將幾個圖表堆疊在一起,如果我調整hspace,那么圖表將是真的簡短…

solr的基礎使用

查詢運算符 例如:http://localhost:8984/solr/mycore/select?q*:* : 指定字段查指定值,如返回所有值q*:* ? 匹配單個字符, 例如: qtitle:??拳 可以匹配標題為“形意拳”的文檔 * 匹配零個或多個字符, 例如: qtitle:*形意拳 或者 qtitl…

同步關鍵詞lock

概述 1、API在JDK的java.util.concurrent.locks下。 2、不是Java關鍵字,是接口。 3、ReentrantLock是JDK唯一實現了Lock接口的類。 public interface Lock {//獲取鎖void lock();//可以響應中斷的鎖void lockInterruptibly() throws InterruptedException;//嘗試…

Java bitset轉string_將java BitSet保存到DB

默認情況下,JPA使用Java序列化來保存未知Serializable類型的屬性(以便將序列化表示存儲為byte []).通常它不是您想要的,因為可以有更有效的方式來表示您的數據.例如,BitSet可以有效地表示為數字(如果它的大小有界),或者byte [],或其他東西(遺憾的是,BitSet不提供進行這些轉換的…

python讀取raw圖片文件_在python下讀取并展示raw格式的圖片實例

raw文件可能有些人沒有,因此,先用一張圖片創建一個raw格式的文件(其實可以是其他類型的格式文件) import numpy as np import cv2 img cv2.imread(cat.jpg) # 這里需要我們在當前目錄下放一張名為cat.jpg的文件 img.tofile(cat.r…

python怎么網絡通信_深入Python中的網絡通信

TCP/IP計算機與網絡設備兩情侶要談戀愛,相互通信,那么雙方就必須有規則。基于相同的方法,不同的硬件、操作系統之間的通信,都需要一種規則。而我們就把這種規則稱為協議(protocol)。TCP/IP 是互聯網相關各類協議族的總稱。TCP/IP是…

ReadWriteLock讀寫文件

概述 ReadWriteLock是一個接口,在它里面只定義了兩個方法:一個讀的鎖和一個寫的鎖。 讀的鎖:A線程獲取了讀的鎖,那么B線程也可以獲取讀的鎖。 寫的鎖:A線程獲取了寫的鎖,那么B線程不能獲取讀也不能獲取寫…

搞懂 Java HashMap 源碼

HashMap 源碼分析 前幾篇分析了 ArrayList , LinkedList ,Vector ,Stack List 集合的源碼,Java 容器除了包含 List 集合外還包含著 Set 和 Map 兩個重要的集合類型。而 HashMap 則是最具有代表性的,也是我們最常使用到…

python 怎么表示sqlserver null_如何使用Python將sqlserver查詢輸出寫入.txt文件?

我是Python新手,嘗試連接到sqlserverdb并將查詢的輸出轉換成一個flat.txt文件。在一些代碼正在工作,但是只寫了將近1000條記錄,然后就停止了。在Python版本:2.7.13。在下面的代碼能夠把100萬條記錄全部寫入csv文件而不是.txt文件&…

python中object是什么類型_Python 的 type 和 object 之間是怎么一種關系?

class,metaclass,instance,subclass,base 以下成立: 對任意的A,A是instance(推論:任意class也是instance) 對任意A,存在B,使得B是A的class A是cla…

java8新生代_jdk8.0的jvm詳情

jstat命令可以查看堆內存各部分的使用量,以及加載類的數量。命令的格式如下:jstat [-命令選項] [vmid] [間隔時間/毫秒] [查詢次數]注意:使用的jdk版本是jdk8.[work16-11-118qf-pms]$ jstat -class 32417Loaded?? Bytes?? Unloaded?? B…

Java中的Runnable、Callable、Future、FutureTask的區別與示例

原文地址:http://blog.csdn.net/bboyfeiyu/article/details/24851847 --------------------------------------------------------- Java中存在Runnable、Callable、Future、FutureTask這幾個與線程相關的類或者接口,在Java中也是比較重要的幾個概念&am…