python对cpu要求高吗_python-使用多处理模块时如何提高CPU利用率...

我正在Python 3.4中工作,对内存中的分区数据执行朴素的搜索,并尝试派生进程以利用所有可用的处理能力.我之所以说是天真的,是因为我敢肯定还有其他一些事情可以做以提高性能,但是这些潜力超出了当前问题的范围.

我正在测试的系统是Windows 7 x64环境.

我想实现的是在cpu_count()-1个内核之间的相对均匀的同时分布(阅读表明,由于基线os系统进程,针对所有内核而不是n-1个内核进行分配不会显示任何其他改进).因此,对于4核计算机,有75%的钉住cpu使用率.

我所看到的(使用Windows任务管理器的“性能选项卡”和“进程选项卡”)是,我从未达到大于25%的系统专用cpu利用率,并且进程视图显示一次同时发生一个核心,而每隔几个核心切换一次分叉过程之间的秒数.

我没有使用代码来计时,但是我很确定我的主观观察是正确的,因为我没有获得我期望的性能提升(i5 3320m达到3倍).

我尚未在Linux上进行过测试.

根据显示的代码:

-如何达到75%的CPU使用率?

#pseudo code

def search_method(search_term, partition):

return results

partitions = []

search_terms = []

#real code

import multiprocessing as mp

pool = mp.Pool(processes=mp.cpu_count() - 1)

for search_term in search_terms:

results = []

results = [pool.apply(search_method, args=(search_term, partitions[x])) for x in range(len(partitions))]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值