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

马泰奥

只是为了好玩,我试图在python中实现一些算法来计算pi。我设法用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的计算分配给每个进程。

我看过多进程文档,但看起来它仅适合诸如sum之类的迭代任务(例如Ramanujan算法)。

谢谢

安普斯特

您似乎可以轻松并行化为可以彼此独立运行的较小问题,这似乎并不是一个问题。您可以创建一个线程来分别执行每个线程,但是由于它们彼此依赖,因此您将无法并行计算它们(您必须等到a被计算出来之后,b依此类推) 。

因此,如果您以线程必须彼此等待的原始顺序运行它们,则与上面的顺序运行它们并没有什么不同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL的多个列中计算不同的值对

来自分类Dev

在python中计算元音

来自分类Dev

在python中计算积分

来自分类Dev

MySQL:使用复杂的公式从多个表中计算列

来自分类Dev

用多边形在Python中计算Pi

来自分类Dev

使用多个进程在Python中写入文件

来自分类Dev

在python中计算对数

来自分类Dev

使用Newell方法在Python中计算表面法线

来自分类Dev

在Python中计算优势比

来自分类Dev

在Python中计算和使用欧几里得距离

来自分类Dev

Python如何使用DictReader在csv打开中计算列

来自分类Dev

使用正则表达式在多个文件中计算多个字符串

来自分类Dev

使用线程的蒙特卡洛方法在Java中计算Pi

来自分类Dev

在Python字典中计算时差

来自分类Dev

在Python中计算p值

来自分类Dev

在Python中计算原始时刻

来自分类Dev

在python中计算净力

来自分类Dev

如何在Python中计算值的多个组合的频率

来自分类Dev

在Python列表中计算值

来自分类Dev

Python:从列表中计算元音

来自分类Dev

使用pandas在python中计算列总和的方法

来自分类Dev

在线程java中计算pi

来自分类Dev

使用 Python 在 Maya 中计算顶点的法线

来自分类Dev

在 Python 中计算 Integral 的问题

来自分类Dev

在 Python 中计算累积

来自分类Dev

使用 OpenMP 从教程中计算 Pi 算法

来自分类Dev

在python中计算素因数

来自分类Dev

从多个表中计算总计

来自分类Dev

在 python grok 中计算字符