python并行编程循环,python 并行循环

dfnjsfkhak 5 0

大家好,今天小编关注到一个比较意思的话题,就是关于python并行编程循环问题,于是小编就整理了2个相关介绍Python并行编程循环的解答,让我们一起看看吧。

  1. 并行计算在Quant中是如何应用的?
  2. 如何使用Python的multiprocessing进行分布式计算?

并行计算在Quant中是如何应用的?

Quant 中经常会用到很多机器学习和优化算法,很多算法比如说常用的蒙特卡洛模拟能够很自然地并行实现如果***用并行计算则必然能够极大地提高计算效率,加快计算时间,更快地作出决策和发出交易指令,更好地抓住稍纵即逝的机会,这对进行高频交易尤其有用。另外如今的金融数据量也越来越大,适当地将数据分布到多个计算节点或者多个处理器上,能够降低对单台计算节点或者单个处理器的性能要求,也能降低对机器内存网络带宽等其他***的需求。

目前做 Quant 非常常用的是 Python 编程语言,如国外最流行的 Quantopian,国内的 JoinQuant,uqer 等都使用的是 Python 语言。用 Python 做并行计算的途径有很多,比如说使用标准库中的 [threading 模块](***s://docs.python.org/2/library/threading.html)进行线程级别的并行,[multiprocessing 模块](***s://docs.python.org/2/library/multiprocessing.html)进行进程级别的并行,[concurrent.futures 模块](***s://docs.python.org/3/library/concurrent.futures.html)实现异步并行,使用 [IPython.parallel 模块](***s://ipython.org/ipython-doc/3/parallel/index.html)进行多种方式的并行,使用 [mpi4py 包](***s://pypi.org/project/mpi4py/)进行 MPI 消息传递并行计算,等等。如果可以使用 C/C++,Fortran 或者使用 cython 为 Python 编写扩展模块,还可以使用 OpenMP 并行。我的个人[简书专题](***s://***.jianshu***/c/5019bb7bada6)和 [CSDN 博客专栏](***s://blog.csdn.net/column/details/26248.html)中有对用 Python 做并行计算的专门介绍并提供了大量的程序实例。有需要或者感兴趣的可以了解下。

python并行编程循环,python 并行循环-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

如何使用Python的multiprocessing进行分布式计算?

由于GIL的存在,python中的多线程其实并不是真正意义上的多线程,前面一篇文章Python中的多线程与多进程那些事 中提到I/O密集型使用多线程并发执行提高效率、计算密集型使用多进程并行执行提高效率。

针对计算密集型的任务,我们如何通过多进程提高效率?

基于multiprocessing、queue等模块实现简易的分布式计算框架服务节点负责任务的派发和任务结果的***集,工作节点分布在同一电脑不同进程,或者其他电脑上,负责任务执行和结果反馈,服务节点与工作节点通过Queue实现数据共享(任务下发、结果反馈)。

python并行编程循环,python 并行循环-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

其中包含Task、MaterWork、Sl***eWork三个模块,大体介绍及源码如下

根据任务需求,将自己的任务单独封装在task模块中。

负责任务派发和结果***集,主从节点通过Queue实现任务、结果共享。代码注释中已介绍的较清楚,这里不做赘述。

python并行编程循环,python 并行循环-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

到此,以上就是小编对于python并行编程循环的问题就介绍到这了,希望介绍关于python并行编程循环的2点解答对大家有用。

标签: 并行 python 计算