python 实现多核 CPU 并行计算
1. 使用原因:
通常现有的计算机都包含多个 CPU 内核,然而,现实中运行程序时,通常仅用到单核 CPU,导致 CPU资源无法充分利用。因此,我们可以通过多核 CPU 并行计算来加快程序的运行。
2. 使用方法
2.1. 需要用到的功能函数
- 获取 CPU的内核数量
cpu_num = multiprocessing.cpu_count()
- 并行计算函数
proc = multiprocessing.Process(target=single_run, args=(digits, "parallel"))
proc.start()
proc.join()
2.2 范例程序
import numpy as np
import multiprocessing
from sklearn.manifold import TSNE
import timepath = "E:\\blog\\data\\MNIST50m\\"def single_run(digits, fold="1by1"):sum = 0for i in range(0,500000000):sum = sum+iprint("sum:",sum)def one_by_one():start_time = time.time()for i in range(0,12):single_run(digits=[], fold="1by1")end_time = time.time()print("one by one time:",end_time-start_time)def parallel():begin_time = time.time()n = 10 # 10procs = []n_cpu = multiprocessing.cpu_count()chunk_size = int(n / n_cpu)for i in range(0, n_cpu):min_i = chunk_size * iif i < n_cpu - 1:max_i = chunk_size * (i + 1)else:max_i = ndigits = []for digit in range(min_i, max_i):digits.append(digit)print("digits:",digits)print("CPU:",i)procs.append(multiprocessing.Process(target=single_run, args=(digits, "parallel")))for proc in procs:proc.start()for proc in procs:proc.join()end_time = time.time()print("parallel time: ", end_time - begin_time)if __name__ == '__main__':parallel()one_by_one()
python 实现多核 CPU 并行计算相关推荐
- Python获取多核CPU温度 均值
Python获取CPU温度 Python 版本:3.7.15 需要安装:sensors #!/usr/bin/env python3 from ast import Num import filein ...
- 浅谈多核CPU、多线程与并行计算
浅谈多核CPU.多线程与并行计算 xiaofei0859 2017-05-09 17:07:11 3646 收藏 展开 0.前言 笔者用过MPI和C#线程池,参加过比赛,有所感受,将近一年来,对多 ...
- go/node/python 多进程与多核cpu
node node单线程,没有并发,但是可以利用cluster进行多cpu的利用.cluster是基于child_process的封装,帮你做了创建子进程,负载均衡,IPC的封装. const clu ...
- python多线程不能利用多核cpu,但有时候多线程确实比单线程快。
python 为什么不能利用多核 CPU GIL 其实是因为在 python中有一个 GIL( Global Interpreter Lock),中文为:全局解释器锁. 1.最开始时候设计GIL是 ...
- python 多进程 多核_go/node/python 多进程与多核cpu
node node单线程,没有并发,但是可以利用cluster进行多cpu的利用.cluster是基于child_process的封装,帮你做了创建子进程,负载均衡,IPC的封装. const clu ...
- ++ 多核cpu 并行_一文读懂什么是多核并行计算(三)
导读:面向应用工程师的商业软件咨询.自研软件定制开发服务的仿真公众号,点击关注进入菜单,查看更多精彩内容. (三)如何实现多核并行计算呢? 了解了多核.多Machine.多Rack后,我可以看一下软件 ...
- 多核CPU上python多线程并行的一个假象(转)
转自:http://www.cnblogs.com/skying555/p/6527189.html GIL 与 Python 线程的纠葛 GIL 是什么东西?它对我们的 python 程序会产生什么 ...
- python多核cpu_Python中的多核CPU共享数据之协程详解
一 : 科普一分钟 尽管进程间是独立存在的,不能相互访问彼此的数据,但是在python中却存在进程间的通信方法,来帮助我们可以利用多核CPU也能共享数据. 对于多线程其实也是存在一些缺点的,不是任何场 ...
- python GIL 全局锁,多核cpu下的多线程性能究竟如何?
python GIL 全局锁,多核cpu下的多线程性能究竟如何?GIL全称Global Interpreter Lock GIL是什么? 首先需要明确的一点是GIL并不是Python的特性,它是在实现 ...
最新文章
- android avd orientation support,Android AVD-无法旋转风景/人像
- linux常用命令总结
- how does Fiori Mock server serve OData request with 202
- matlab smulink笔记03——过零检测
- php按照名称搜索,PHP从类型和名称搜索
- 标识符的命名规定java 0126
- 國慶和中秋的學習成果
- 【报告分享】2020直播生态研究报告.pdf(附下载链接)
- 暗能量什么样?爱因斯坦只“蒙”对了一半
- rgb红色范围_RGB与BRG模式
- 墨卡托投影法将经纬度转换为平面坐标
- navicat和 plsql 连接oracle数据库 总结
- 单片机计算机课程设计报告,单片机课程设计报告(简易计算机).doc
- alpha-beta 极大极小值剪枝算法
- Meta-Tracker: Fast and Robust Online Adaptation for Visual Object Trackers
- 昭阳K43/E43系列网卡功能相关说明
- 精选101个中国风PPT模板
- BERT和ERNIE中[PAD],[CLS],[SEP],[MASK],[UNK]所代表的含义
- error C2872: 'ULONG_PTR' : ambiguous symbol
- 软件项目报价术语总结(功能点计数元素ILF、EIF、IE、EO、EQ)