python多核并行处理数据,python多进程处理数据

当我们处理大规模数据如ImageNet的时候,单进程显得很吃力耗时,且不能充分利用多核CPU计算机的资源。因此需要使用多进程对数据进行并行处理,然后将结果合并即可。以下给出的是多进程处理的demo代码,如需要应用到实际应用中,则需要自己实现target_function函数,并且传args即可。

#coding=utf-8from multiprocessing import Processdef target_function(index,sublist):

print index,sublist

if __name__=="__main__":

TXT_FILE = "path/to/imagelist.txt"

n_processes = 50 #number of processes

f = open(TXT_FILE,'r')

image_list = f.readlines()

f.close()

n_total = len(image_list)

length = float(n_total) / float(n_processes)

indices = [int(round(i* length)) for i in range(n_processes)]

sublists = [image_list[indices[i]:indices[i+1]] for i in range(n_processes)]

processes = [Process(target=target_function,args=(i,x)) for i,x in enumerate(sublists)]

for p in processes:

p.start()

for p in processes:

p.join()

转载于:https://www.cnblogs.com/houjun/p/9767106.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值