gpt4 book ai didi

python - 我想要 Python 作为前端,Fortran 作为后端。我还想让 Fortran 部分并行 - 最佳策略?

转载 作者:太空狗 更新时间:2023-10-30 02:12:44 25 4
gpt4 key购买 nike

我有一个 python 脚本,我希望大致这样做:

  1. 调用一些粒子位置到数组中

  2. 对所有 512^3 个位置运行算法以将它们分配到一个 NxNxN 矩阵

  3. 将该矩阵反馈给 python

  4. 在 python 中使用绘图来可视化矩阵(即 mayavi)

首先我必须串行编写它,但理想情况下我想并行化第 2 步以加快计算速度。什么工具/策略可以让我开始。我很了解 Python 和 Fortran,但不太了解如何将两者联系起来以解决我的特定问题。目前我正在用 Fortran 做所有事情,然后加载我的 python 程序——我想一次完成所有事情。我听说过 py2f,但我想在我进入一个特定的兔子洞之前获得有经验的人的意见。谢谢

编辑:我想要平行的东西是“令人尴尬的平行”,因为它只是一个 N 粒子的循环,我想尽快通过这个循环。

最佳答案

您有两个基本的绑定(bind)选项。第一个使用 f2py,另一个使用 Fortran 中与 C 的互操作性,并使用 Cython 进行绑定(bind)。 f2py 教程是 here .这一点也不难,f2py 有一些指令可以放置到您的 Fortran 代码中,但通常不需要它们。

对于并行化,如果单台机器上的并行化对您来说足够的话,第一个使用的方法可能是 OpenMP。它使用线程并且很容易用于具有令人尴尬的并行性的循环。只要确保您没有写入线程中的任何全局变量,如果是,请为此使用同步指令。

关于python - 我想要 Python 作为前端,Fortran 作为后端。我还想让 Fortran 部分并行 - 最佳策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13852646/

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