支持 GPU 的格子玻尔兹曼求解器?

计算科学 流体动力学 并行计算 模拟 计算物理学 显卡
2021-12-21 03:29:29

有人知道推荐的任何支持 GPU 的 Lattice Boltzmann 求解器(最好在 C++/OpenCL 和开源上)吗?

我找到了Advanced Simulation Library,但它似乎很年轻。有没有人尝试使用它并验证他们的基准

2个回答

Sailfish是一款出色的 OS LBM 求解器,可满足您的需求。Sailfish 是 Python 语言的开发者,以提供快速的开发环境;但是,它通过 pyopencl 和 pycuda 库编译优化的 OpenCL 或 CUDA。

我发现它非常灵活,计算速度惊人。从本质上讲,Python 不执行任何计算。Sailfish 的缺点是用户社区非常有限。但是,如果您无论如何都走在 LBM 道路上,那么您可能已经习惯了。

在获得更多使用ASL的经验后,我确信它是截至 2015 年底最好的加速开源 LBM 求解器。它具有以下重要优势:

  1. 简单的 C++ API(并且只有 C++ -即使添加新的数值方法(将自动成为硬件加速)也无需了解 OpenCL 或 Python !)
  2. 卓越的表现
  3. 多物理场:除 CFD 之外的许多其他物理/化学现象(ASL 中使用格子玻尔兹曼方法)
  4. 硬件加速,可部署在 CPU/GPU/FPGA/DSP/APU 集群上
  5. 无网格、浸入式边界技术允许从 CAD 直接转移到仿真(对于自动化设计优化很重要)。
  6. 动态编译方法在运行时启用了额外的优化层(即针对应用程序提供的特定参数集)
  7. 开源:AGPL + 用于闭源项目的可选商业许可证。