社区
脚本语言
帖子详情
如何让一个Python的脚本跑满多核的CPU?
GreeceZeus
2015-11-18 10:01:40
如题,在写一个Python脚本的时候突然想到了这个问题。
之前我曾经尝试过多线程与多进程,不过由于Python线程锁的原因,也不能跑满多核的CPU。
...全文
4793
5
打赏
收藏
如何让一个Python的脚本跑满多核的CPU?
如题,在写一个Python脚本的时候突然想到了这个问题。 之前我曾经尝试过多线程与多进程,不过由于Python线程锁的原因,也不能跑满多核的CPU。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
soft_south
2015-11-26
打赏
举报
回复
要是没记错的话,Python的GIL机制会限制执行语句的效率的,ps.好像这个东西的限制才导致了执行效率上不如C(求证?)
georgema1982
2015-11-24
打赏
举报
回复
你不是说你已经试了多进程了?难道多进程还不能实现你的要求?
惟愿莲心不染尘
2015-11-20
打赏
举报
回复
貌似Python多线程是用一个进程模拟的?
人傻且呆但不萌
2015-11-18
打赏
举报
回复
python 有GIL限制 你参考:http://www.cnblogs.com/codefish/p/4961963.html
sprawling
2015-11-18
打赏
举报
回复
这个跟python没有关系吧,跟系统也有关系
Python
示例-从基础到高手PDF
目录 第1章
Python
处理 cassandra 升级后的回滚
脚本
第 2 章 多套方案来提高
python
web 框架的并发处理能力 第 3 章
python
写报警程序中的声音实现 winsound 第 4 章
一个
脚本
讲述
python
语言的基础规范,适合初学者 第 5 章
python
计算文件的行数和读取某一行内容的实现方法 第 6 章
python
中用 string.maketrans 和 translate 巧妙替换字符串 第 7 章
python
linecache 模块读取文件用法详解 第 8 章
python
调用 zabbix 的 api 接口添加主机、查询组、主机、模板 第 9 章
python
+Django 实现 Nagios 自动化添加监控项目 第 10 章 通过
python
和 websocket 构建实时通信系统[扩展 saltstack 监控] 第 11 章 关于 B+tree (附
python
模拟代码) 第 12 章
Python
编写的 socket 服务器和客户端 第 13 章
python
之 MySQLdb 库的使用 第 14 章
python
监控文件或目录变化 第 15 章 Mongodb 千万级数据在
python
下的综合压力测试及应用探讨 第 16 章 通过 memcached 实现领号排队功能及
python
队列实例. 第 17 章
python
之利用 PIL 库实现页面的图片验证码及缩略图 第 18 章 如何将 Mac OS X10.9 下的
Python
2.7 升级到最新的
Python
3.3 第 19 章 使用
python
构建基于 hadoop 的 mapreduce 日志分析平台 第 20 章 报警监控平台扩展功能 url 回调的设计及应用 [
python
语言] 第 21 章 服务端 socket 开发之多线程和 gevent 框架并发测试[
python
语言] 第 22 章 利用 pypy 提高
python
脚本
的执行速度及测试性能 第 23 章
python
实现 select 和 epoll 模型 socket 网络编程 第 24 章 对
Python
-memcache 分布式散列和调用的实现 第 25 章 Parallel
Python
实现程序的并行多
cpu
多核
利用【pp 模块】 第 26 章 关于
python
调用 zabbix api 接口的自动化实例 [结合 saltstack] 第 27 章
Python
批量更新 nginx 配置文件 第 28 章
Python
通过 amqp 消息队列协议中的 Qpid 实现数据通信 第 29 章
python
simplejson 模块浅谈 第 30 章
python
Howto 之 logging 模块 第 31 章
Python
FAQ3-
python
中 的原始(raw)字符串
gtest-parallel:并行运行Google测试套件
gtest-parallel 这不是Google的官方产品。 gtest-parallel是
一个
脚本
, gtest-parallel执行二进制文件,从而为单线程测试(在
多核
计算机上)和未在100%
CPU
上运行的测试(在单核或
多核
计算机上)提供良好的加速。 该
脚本
的工作方式是列出每个二进制文件的测试,然后在单独的进程中的工作程序上执行它们。 只要测试是独立的并且不共享资源,此方法就可以正常工作(读取数据很好,写入同一日志文件可能不行)。 基本用法 有关选项的完整列表,请参见--help 。 $ ./gtest-parallel path/to/binary... 这会将所有启用的测试分片给多个工作人员,默认为系统中的内核数量。 如果您的系统使用
Python
2,但没有
python
2二进制文件,请运行
python
gtest-parallel而不是./gtest-parallel 。
C 协程库orchid.zip
orchid是
一个
构建于强大的boost库基础上的C 库,类似于
python
下的gevent/eventlet,为用户提供基于协程的并发模型。 协程,顾名思义,协作式程序,其思想是,一系列互相依赖的协程间依次使用
CPU
,每次只有
一个
协程工作,而其他协程处于休眠状态。协程在控制离开时暂停执行,当控制再次进入时只能从离开的位置继续执行。 协程已经被证明是一种非常有用的程序组件,不仅被
python
、lua、ruby等
脚本
语言广泛采用,而且被新一代面向
多核
的编程语言如golang rust-lang等采用作为并发的基本单位。 协程可以被认为是一种用户空间线程,与传统的抢占式线程相比,有2个主要的优点: 与线程不同,协程是自己主动让出
CPU
,并交付他期望的下
一个
协程运行,而不是在任何时候都有可能被系统调度打断。因此协程的使用更加清晰易懂,并且多数情况下不需要锁机制。 与线程相比,协程的切换由程序控制,发生在用户空间而非内核空间,因此切换的代价非常的小。 green化 术语“green化”来自于
python
下著名的协程库greenlet,指改造IO对象以能和协程配合。某种意义上,协程与线程的关系类似与线程与进程的关系,多个协程会在同
一个
线程的上下文之中运行。因此,当出现IO操作的时候,为了能够与协程相互配合,只阻塞当前协程而非整个线程,需要将io对象“green化”。目前orchid提供的green化的io对象包括: tcp socket(还不支持udp) descriptor(目前仅支持非文件类型文件描述符,如管道和标准输入/输出,文件类型的支持会在以后版本添加) timer (定时器) signal (信号) chan:协程间通信 chan这个概念引用自golang的chan。每个协程是
一个
独立的执行单元,为了能够方便协程之间的通信/同步,orchid提供了chan这种机制。chan本质上是
一个
阻塞消息队列,后面我们将看到,chan不仅可以用于同
一个
调度器上的协程之间的通信,而且可以用于不同调度器上的协程之间的通信。
多核
建议使用的scheduler per
cpu
的的模型来支持
多核
的机器,即为每个
CPU
核心分配
一个
调度器,有多少核心就创建多少个调度器。不同调度器的协程之间也可以通过chan来通信。协程应该被创建在哪个调度器里由用户自己决定。 进一步信息请阅读doc目录下tutorial。如果您发现任何bug或者有任何改进意见,请联系ioriiod0@gmail.com 标签:orchid
pi2test:在 Pi 2 和其他计算机上锤击
CPU
的
脚本
pi2test 由 RasPi.TV 的 Alex Eames 在 CC BY-SA 3.0 许可下共享 在 Pi 2 和其他计算机上锤击
CPU
的
脚本
这是专为在 Raspberry Pi 2 上测试
多核
性能而设计的 我已经在这里写了关于它的博客...... 视频在这里... 要在您的 Pi 上运行它... git 克隆 cd pi2test
python
Pi2test.py 然后它会询问有多少线程。 输入
一个
数字,就是这样。
karoo_gp:具有TensorFlow的
Python
遗传编程平台,可实现对
CPU
和GPU的快速支持
卡鲁GP Karoo GP是一种进化算法,这是一种用
Python
编写的遗传编程应用程序套件,它支持符号回归和分类数据分析。 它已用于射电天文学,重力波探测器定性和合成超新星探测,以及各种领域中的各种其他用例。 您只需要根据《用户指南》准备数据集即可。 无需编程。 Karoo通过强大的TensorFlow库支持
多核
和GPU。 Karoo内置了三个文本案例:虹膜数据集,开普勒行星运动定律和
一个
数学问题,您可以修改以应对不同程度的挑战。 Karoo是从命令行启动的,具有直观的用户界面或用于从bash或其他
Python
脚本
实现完全自动化的参数。 每次运行的输出将自动存档,其中包括配置,摘要以及保存为.csv文件的完整GP树套件,以供您查看和编辑,以便您可以手动构建下一次运行的起始块。 一定要阅读《遗传编程入门指南》的《用户指南》,以及使用此独特代码体可以做的所有示例。 有关使用Karoo
脚本语言
37,719
社区成员
34,238
社区内容
发帖
与我相关
我的任务
脚本语言
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
复制链接
扫一扫
分享
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
试试用AI创作助手写篇文章吧
+ 用AI写文章