如何在python中为类函数并行运行for循环?

如何在python中为类函数并行运行for循环?,python,class,parallel-processing,class-method,Python,Class,Parallel Processing,Class Method,我有一个类My_mechanism,其中包含函数velocity_params,该函数将结果写入csv文件。我需要在某个范围内迭代,但迭代非常慢(一次只使用一个CPU核)。有没有办法加快这个过程?目前的代码大约需要10分钟来执行,最后,我需要迭代myu机制(I,j,k,l,2)中的所有I,j,k,l 您可以使用编译后的C模块(如numpy)进行繁重的数学计算,因为numpy将为您并行化向量操作,也可以利用导入的多处理库 import multiprocessing as mp parallel

我有一个类
My_mechanism
,其中包含函数
velocity_params
,该函数将结果写入
csv
文件。我需要在某个范围内迭代,但迭代非常慢(一次只使用一个CPU核)。有没有办法加快这个过程?目前的代码大约需要10分钟来执行,最后,我需要迭代
myu机制(I,j,k,l,2)
中的所有
I,j,k,l


您可以使用编译后的C模块(如numpy)进行繁重的数学计算,因为numpy将为您并行化向量操作,也可以利用导入的多处理库

import multiprocessing as mp

parallelism = 4

p = mp.pool(parallelism)

res = p.map(my_mechanism, [x for x in range(10,20)])

虽然您需要以其他方式处理多个输入参数才能使用映射功能,但默认情况下只需一个。

通常写入csv文件需要很长时间。我建议您提前运行所有数据处理(这可以并行化),并在最后写入输出


如果您想要更详细的答案,请更具体地说明您使用的csv书写器、您的数据等

如果您计划并行运行这些任务,请不要立即使用csv书写。收集所有要写入某个容器的数据,并将所有此容器写入末尾。您可以为每个
i
创建单独的容器。最好围绕您的CPU核心数管理线程数在哪里调用函数
m.velocity\u params()
import multiprocessing as mp

parallelism = 4

p = mp.pool(parallelism)

res = p.map(my_mechanism, [x for x in range(10,20)])