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 并行计算相关推荐

  1. Python获取多核CPU温度 均值

    Python获取CPU温度 Python 版本:3.7.15 需要安装:sensors #!/usr/bin/env python3 from ast import Num import filein ...

  2. 浅谈多核CPU、多线程与并行计算

    浅谈多核CPU.多线程与并行计算 xiaofei0859 2017-05-09 17:07:11  3646  收藏 展开 0.前言 笔者用过MPI和C#线程池,参加过比赛,有所感受,将近一年来,对多 ...

  3. go/node/python 多进程与多核cpu

    node node单线程,没有并发,但是可以利用cluster进行多cpu的利用.cluster是基于child_process的封装,帮你做了创建子进程,负载均衡,IPC的封装. const clu ...

  4. python多线程不能利用多核cpu,但有时候多线程确实比单线程快。

    python 为什么不能利用多核 CPU  GIL 其实是因为在 python中有一个 GIL( Global Interpreter Lock),中文为:全局解释器锁.  1.最开始时候设计GIL是 ...

  5. python 多进程 多核_go/node/python 多进程与多核cpu

    node node单线程,没有并发,但是可以利用cluster进行多cpu的利用.cluster是基于child_process的封装,帮你做了创建子进程,负载均衡,IPC的封装. const clu ...

  6. ++ 多核cpu 并行_一文读懂什么是多核并行计算(三)

    导读:面向应用工程师的商业软件咨询.自研软件定制开发服务的仿真公众号,点击关注进入菜单,查看更多精彩内容. (三)如何实现多核并行计算呢? 了解了多核.多Machine.多Rack后,我可以看一下软件 ...

  7. 多核CPU上python多线程并行的一个假象(转)

    转自:http://www.cnblogs.com/skying555/p/6527189.html GIL 与 Python 线程的纠葛 GIL 是什么东西?它对我们的 python 程序会产生什么 ...

  8. python多核cpu_Python中的多核CPU共享数据之协程详解

    一 : 科普一分钟 尽管进程间是独立存在的,不能相互访问彼此的数据,但是在python中却存在进程间的通信方法,来帮助我们可以利用多核CPU也能共享数据. 对于多线程其实也是存在一些缺点的,不是任何场 ...

  9. python GIL 全局锁,多核cpu下的多线程性能究竟如何?

    python GIL 全局锁,多核cpu下的多线程性能究竟如何?GIL全称Global Interpreter Lock GIL是什么? 首先需要明确的一点是GIL并不是Python的特性,它是在实现 ...

最新文章

  1. android avd orientation support,Android AVD-无法旋转风景/人像
  2. linux常用命令总结
  3. how does Fiori Mock server serve OData request with 202
  4. matlab smulink笔记03——过零检测
  5. php按照名称搜索,PHP从类型和名称搜索
  6. 标识符的命名规定java 0126
  7. 國慶和中秋的學習成果
  8. 【报告分享】2020直播生态研究报告.pdf(附下载链接)
  9. 暗能量什么样?爱因斯坦只“蒙”对了一半
  10. rgb红色范围_RGB与BRG模式
  11. 墨卡托投影法将经纬度转换为平面坐标
  12. navicat和 plsql 连接oracle数据库 总结
  13. 单片机计算机课程设计报告,单片机课程设计报告(简易计算机).doc
  14. alpha-beta 极大极小值剪枝算法
  15. Meta-Tracker: Fast and Robust Online Adaptation for Visual Object Trackers
  16. 昭阳K43/E43系列网卡功能相关说明
  17. 精选101个中国风PPT模板
  18. BERT和ERNIE中[PAD],[CLS],[SEP],[MASK],[UNK]所代表的含义
  19. error C2872: 'ULONG_PTR' : ambiguous symbol
  20. 软件项目报价术语总结(功能点计数元素ILF、EIF、IE、EO、EQ)

热门文章

  1. vss服务器的简单使用
  2. 微信PC电脑桌面端多账号登录微信多开方法
  3. Revit 二次开发前景
  4. 用最速下降法求最优解
  5. 最速下降法(梯度下降法)python实现
  6. 香港中文大学教授、麻省理工牛人林达华解说现代数学体系
  7. Linux用户权限ACL权限
  8. mysql语句转为oracle语句
  9. 在linux后台运行脚本的方法和命令
  10. Linux C中unsigned long与指针的关系