如何在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)])