启文
要处理视频数据,提取帧特征,想用并行,在win10环境下,python multiprocessing似乎也挺好用的,当然感觉也挺慢的,获取帧列表转换为灰图,1272帧视频用了9秒多的样子,还好吧,笔记本i7-7700HQ的2.8GHz处理器,并行很久似乎也出不了结果。
想着,linux服务器上的cpu核多48核2.5GHz应该有8个CPU每个CPU有6核,应该处理很快。部署到linux服务器上后。等了一个小时,两个小时,…,等不下去了断了吧。
PP模块
猜想Linux 用Multiprocessing是有问题的,就找到了一个pp模块,官网是这个。
pp模块,就是用的时候有点反人类,把各种模块做参数填进去,
不过能出结果,而且没mutilprocessing的东西复杂。
简单用法:
import pp
def func(x):
return x*2
job_server = pp.Server()
print("Starting pp with", job_server.get_ncpus(), "workers")
results=[job_server.submit(func,(i,)) for i in range(100)]
# job_server.wait()
for j in b:
print(j())
job_server.print_stats()
结果
笔记本电脑, 取了1272/25=51帧,并行8进程总共耗时42.79s,开启3进程好像只要30几秒。在服务器上713帧,48个进程,用时442.024s,每核大概都是这个时间,每个进程大概15帧,442/15=30s,每帧处理2s还感觉还是有点慢的哈。
奔腾处理器单核确实和i7的比不得哈。