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.mzph.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…