python如何指定使用的cpu核_python – 了解多处理模块的cpu核心的用法

我有一个简单的main()函数来处理大量数据.由于我有一台带有大量内存的8核机器,我建议使用python的多处理模块来加速处理.每个子流程大约需要18个小时才能完成.

长话短说,我怀疑我是否正确理解了多处理模块的行为.

我以某种方式启动不同的子进程,如下所示:

def main():

data = huge_amount_of_data().

pool = multiprocessing.Pool(processes=cpu_cores) # cpu_cores is set to 8, since my cpu has 8 cores.

pool.map(start_process, data_chunk) # data_chunk is a subset data.

我知道启动这个脚本是一个自己的过程,即在所有子过程完成后完成的主过程.显然,Main进程不会占用太多资源,因为它只会首先准备数据并生成子进程.它也将自己使用核心吗?意义只能启动7个子进程而不是我喜欢从上面开始的8个子进程?

核心问题是:我可以生成8个子进程并确保它们能够正常并行运行吗?

顺便说一下,子进程不以任何方式相互交互,当它们完成时,它们每个都生成一个sqlite数据库文件,用于存储结果.所以即使是result_storage也是单独处理的.

我想要避免的是,我会产生一个阻碍其他人全速奔跑的过程.我需要代码在大约16个小时内终止,而不是在两倍的时间内终止,因为我有更多的进程然后核心.

标签:python,multiprocessing,cpu-usage

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值