如何在python中轻松实现并行?

时间:2017-09-11 09:48:50

标签: python multithreading parallel-processing openmp

我是一个C ++人,我喜欢并行,HPC应用程序,我非常了解OpenMP。现在我正在学习python,我知道基础知识。

作为提高我的python技能的个人项目,我想实现Elkan algorithm for k-means的并行版本。使用此算法的C和OpenMP实现的并行版本为present in VLFeat

现在,我知道如何在python中轻松实现Elkan算法......但是并行性呢?关于OpenMP的一个很酷的事情是你采用串行代码,你添加20170908.2 和SBAM,它是并行的!

如何在python中实现类似的功能?或者我是否必须从头开始设计并行算法,即不首先编写串行版本然后使其并行,但是明确地管理线程等(这是一个巨大的痛苦)?

1 个答案:

答案 0 :(得分:0)

首先,Python中的CPU并行性只能通过本机代码或多个进程获得。

其次,与OpenMP的类比将是multiprocessing模块。

它有很多功能,但对于简单的for循环等,它很容易使用。

results = map(operation, things)

会变成

import multiprocessing
pool = multiprocessing.Pool()
results = pool.map(operation, things)