用Python多进程做数据预处理能大幅提高效率

本文介绍了使用Python的multiprocessing库实现多进程来优化数据预处理的过程,通过实例展示了如何有效利用多核CPU资源,从而显著提升数据处理效率。在新配置的i5 9600k机器上,数据预处理时间从原来的30多个小时减少到1小时14分钟。关键在于理解并行处理的原理,以及如何编写适合多核计算的代码。
摘要由CSDN通过智能技术生成

在做机器学习之前,有一项工作是非常耗时耗力的,那就是数据预处理。有时候数据预处理花的时间比训练的时间还要多。有很多办法可以提高数据预处理的效率,我在利用python的 multiprocessing写多进程代码的时候,发现对数据预处理处理能起到很好的效果。

首先说说我的机器,之前是i5 4590 +8G内存+机械硬盘,一个程序处理起来总共要花30多个小时,当时只用到一个核,哪怕我把数据切开,同时跑4个程序分别处理4部分数据,后面几个核也无法用满。我程序上做了大量优化,最后处理一下是26个小时。这是根本无法接受的。
5.1的时候我换了机器,i5 9600k+32G内存+机械硬盘。这个程序处理时间缩短到了11个小时。但是CPU的6个核根本跑不满,完全没有利用到其他5个核。下面这个截图就是某个瞬间,CPU各个核的占用情况。

之后学了一些东西,了解了并行处理,改写了程序,
原来,我一直以为的多开程序,并不是并行处理,无法利用到多个核,而是每一个程序共享cpu某一个核的一段处理时间。除非程序实在消耗太大,才会依次开始利用到后面的核。
所以最重要的还是单核的频率,频率越高,性能越强,多个程序切换起来越快。


再看看我改写的程序,这次一个主进程带上了6个子进程(每一个进程都是一个程序,只不过这种情况下他们有些关系,比如谷歌浏览器在任务管理器里面会有发现一堆chrome.exe。这种情况下,就真正利用到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值