python中的并行循环

2024-09-30 06:17:48 发布

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

嗨,我正在尝试运行一个大的for循环,239500次迭代,我做了一些测试,我发现200次需要1个小时,导致2个月的cpu时间。在

这是一个循环:

for i in range(0, MonteCarlo):
    print('Performing Monte Carlo ' + str(i) + '/' + str(MonteCarlo))

    MCR = scramble(YearPos)
    NewPos = reduce(operator.add, YearPos)
    C = np.cov(VAR[NewPos, :], rowvar=0)

    s, eof = eigs(C, k=neof, which='LR')
    sc = (s.real / np.sum(s) * 100)**2
    tcs = np.sum(sc)

    MCH = sc/tcs

    Hits[(MCH >= pcvar)] += 1

    if (Hits >= CL).all():
        print("Number of Hits is greater than 5 !!!")
        break

其中np代表numpy ans scramble代表随机洗牌在for循环中执行的计算互不依赖。在

有没有什么方法可以并行循环,我有12个核心,只有1个正在运行。。。。在Matlab中,我会做一个parfor,在python中有类似的东西吗?在

提前谢谢


Tags: fornp代表sumscprint小时hits

热门问题