Python:用线程拆分和

2024-09-30 22:13:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我要做一个昂贵的计算来拟合一些实验数据。拟合函数是本征模的和,每个本征模包含一个特定的表面积分。因为它是相当慢的,如果你做它的经典方式,我认为它线程。我用的是python

我要计算的函数是

def fit_func(params , Mmin, Mmax):

    values = np.zeros(1000)

    for m in range(Mmin, Mmax):

        # Fancy Calculation for each mode

    # some calulation with all modes, adding them up 'values'


    return values

我怎么把它分开?我做了一些类似

^{pr2}$

但是data1和data2的和与fitfunc(params,0,25)不同。。。在


Tags: 数据函数fordef方式params线程表面
2条回答

使用多处理池

import multiprocessing as mp

p = mp.Pool(10)

res = p.map(your_function, range(Mmin, Mmax))

试试multiprocessing。这将使用类似线程的接口有效地创建单独的Python进程。但是,请确保您分析了您的计算,并确保它是问题所在,而不是IO之类的其他东西。启动过程非常缓慢,因此如果您打算使用它们,请将它们保留一段时间。在

您也可以将numpy用于这些函数。它们是用C代码写的,所以很快就变傻了。看看他们两个,看看什么最适合。我会自己去找numpy的解决方案。。。在

相关问题 更多 >