gpt4 book ai didi

python - 使用多个进程在python中计算pi

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:43 25 4
gpt4 key购买 nike

只是为了好玩,我正在尝试在 python 中实现一些算法来计算圆周率。我设法用 Gauss-Legendre 算法做到了这一点,我很满意。尽管如此,Python进程只使用一个核心(一个进程)。

这里是我实现的主要部分:

from decimal import *
import math
import time

digit = 10000
getcontext().prec = digit+1

am, a, b, t, p = 0, 1, 1/Decimal(2).sqrt(), Decimal(1/4), 1

while am != a:

am, bm, tm, pm = a, b, t, p

a = Decimal((am+bm)/2)
b = Decimal(am*bm).sqrt()
t = Decimal(tm-pm*(am-a)**2)
p = 2*pm

pi = Decimal((a+b)**2/(4*t))
print(pi)

我想知道是否可以将 a、b、t、p 的计算分配给每个进程。

我查看了多进程文档,但看起来它只适用于求和等迭代任务(Ramanujan 算法示例)。

谢谢

最佳答案

您可以轻松地将问题并行化为可以独立运行的较小问题,这似乎不是一个问题。您可以创建一个线程来单独执行它们中的每一个,但是您将无法并行计算它们,因为它们相互依赖(您必须等待 a 在 b 之前计算等等) .

因此,如果您按照线程必须相互等待的原始顺序运行它们,那么这与您在上面按顺序运行它们并没有什么不同。

关于python - 使用多个进程在python中计算pi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34223081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com