python--并行计算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--并行计算相关的知识,希望对你有一定的参考价值。

参考技术A

python能够应用并行计算的模块有多个multiprocessing、pathos等。其中multiprocessing模块应用的较多,但对于数据挖掘场景来说,pathos模块更实用,尤其允许输入多个可变参数非常简单实用。

本文总结整理了常见的并行计算场景,编写parallel.py模块,主要利用pathos模块实现,可以实现单变量并行、多变量并行、并行嵌套等功能。通过tdqm模块增加了进度条,可以显示计算进度等信息,通过functools模块中的partial函数将静态参数冻结,以适应并行框架。
parallel.py

函数parallel的参数定义顺序需要注意: 必选参数--任意位置参数--默认参数--任意关键字参数

定义另一个parallel_main.py模块,用来展示各个场景下并行计算结果。
parallel_main.py

parallel函数使用注意点:

python并行计算(持续更新)

工作中需要对tensorflow 的一个predict结果加速,利用python中的线程池

 def getPPLs(tester,datas):

  for line in datas:
tester(line)

tester = run_epoch.rescore(session, test_lm, data, test_data, eval_op=None, test=True)
listDatas=splitList(test_data,16)#16 是线程的数量
threadsPool=[]
for sub_test_data in listDatas:
threadsPool.append(Thread(target=getPPLs, args=(tester, sub_test_data)))

for thread in threadsPool:
thread.start()

for thread in threadsPool:
thread.join()
tmd2=time()
print("tmd2-tmd1 ",tmd2-tmd1)

 

以上是关于python--并行计算的主要内容,如果未能解决你的问题,请参考以下文章

用Python实现多核心并行计算

用python写GPU上的并行计算程序,有啥库或者编译器

python并行计算(持续更新)

Python基于pyCUDA实现GPU加速并行计算功能入门教程

python变量内存地址释放与加速并行计算多线程

使用 Python 进行并行计算