我有一个包含大量符号计算的代码(许多多个符号积分)。我还可以访问一台 8 核 cpu 计算机(具有 18 GB RAM)和一个小型 32 cpu 集群。我更喜欢留在我教授的 8 核电脑上,而不是在更有限的时间内使用他的集群去另一个教授的实验室,但是,我不确定它是否可以在 SMP 系统上运行,所以我正在寻找一个并行Python中的工具,可以在SMP和Clusters上使用,当然更喜欢一个系统上的代码可以轻松且轻松地修改以在另一个系统上使用。
到目前为止,我发现 Parallel Python (PP) 很有希望满足我的需求,但我最近告诉 MPI 也可以做同样的事情(pyMPI 或 MPI4py)。我不能批准这一点,因为在网上似乎很少讨论这个问题,只有在这里声明 MPI(pyMPI 或 MPI4py)仅可用于集群,如果我对“仅”是正确的!
“Parallel Python”是我唯一的选择,还是我也可以愉快地使用基于 MPI 的解决方案?哪一个更有希望满足我的需求?
附言。似乎他们都没有非常全面的文档,所以如果您知道他们的官方网站以外的一些链接可以帮助新手进行并行计算,如果您在回答中也提到它们,我将非常感激:)
编辑.
我的代码在另一个内部有两个循环,外部循环不能并行化,因为它是一种迭代方法(递归解决方案),每一步都取决于在上一步中计算的值。外循环包含内循环以及3 个额外方程,其计算取决于内循环的整个结果。但是,内部循环(包含每一步可计算的 12 个方程中的 9 个)可以安全地并行化,所有 3*3 方程彼此独立,仅取决于上一步。我所有的方程计算量都很大,因为每个方程都包含许多多重符号积分。似乎我可以并行化内循环的 9 个方程以及这 9 个方程中的每一个方程中的积分计算,并将其他 3 个方程中的所有积分与内循环并行化。如果它可以帮助您更好地理解我的需求,您可以在此处找到我的代码,它是在SageMath中编写的。