多核心计算机上分子动力学模拟的快速多极子方法并行化及热带气旋季节性预测
立即解锁
发布时间: 2025-08-17 01:40:45 阅读量: 2 订阅数: 4 

### 多核心计算机上分子动力学模拟的快速多极子方法并行化及热带气旋季节性预测
#### 快速多极子方法(FMM)在多核心计算机上的并行化
在分子动力学模拟中,快速多极子方法(FMM)是一种高效的算法。下面将详细介绍其在多核心计算机上的并行化实现及相关实验结果。
##### 1. 算法步骤
- **伪粒子分布**:首先,使用球面 t - 设计将伪粒子分布在半径为 b 的球面上,这里 b 要大于定义 Anderson 势值 g(asi) 的球面半径 a。根据公式 (25),可以调整伪粒子的电荷,使得 g(asi) 能够被重现,满足关系:
\[
\sum_{j = 1}^{K} \frac{Q_j}{|R_j - a s_i|} = \Phi(a s_i)
\]
使用矩阵 \(R = \{1/|R_j - a s_i|\}\)、向量 \(Q = [Q_1, Q_2, ..., Q_K]^T\) 和 \(P = [\Phi(a s_1), \Phi(a s_2), ..., \Phi(a s_K)]^T\),可将上述公式重写为 \(RQ = P\)。
- **求解线性方程**:接着求解线性方程 \(RQ = P\) 以获得电荷 \(Q_j\)。对于边长为 1.0 的给定单元格,外扩展半径 a 为 0.75,内扩展半径 b 为 6.0。求解该线性方程组相当于进行 \(R^{-1}\) 和 \(P\) 的矩阵 - 向量乘法。得到 \(Q_j\) 的解后,公式 (24) 中计算的远场力可以用更简单的公式 (1) 与 \(Q_j\) 进行成对相互作用的计算来替代。
- **数值测试**:对公式 (25) 进行了势和力计算的精度数值测试。在测试中,使用公式 (25) 和 A2P 程序近似计算粒子 q 对某点 L 施加的力和势,并与使用公式 (1) 和公式 (2) 计算的结果进行比较。改变 q 到 L 的距离 r 在 [1, 10] 范围内,计算势和力的相对误差。测试结果表明,对于扩展阶数 p 从 1 到 5,势误差按 \(r^{-(p + 2)}\) 缩放,力误差按 \(r^{-(p + 1)}\) 缩放,与理论预期相符。对于 p = 6,当 r < 6 时,势和力误差分别按 \(r^{-(p + 2)}\) 和 \(r^{-(p + 1)}\) 缩放,当 r ≥ 6 时,误差缓慢减小。
##### 2. FMM 的不同变体公式比较
| 阶段 | 原始 FMM | Anderson 方法 | Makino 方法 |
| --- | --- | --- | --- |
| M2M | Eq. (9), (10) | Eq. (21) | Eq. (23) |
| M2L | Eq. (13), (14) | Eq. (21) | Eq. (2) |
| L2L | Eq. (15), (16) | Eq. (22) | 不可用 |
| 近场力 | Eq. (1) | Eq. (1) | Eq. (1) |
| 远场力 | 评估 Eq. (24) | 不可用 | 局部展开 |
##### 3. 基于 OpenMP 的 FMM 并行化
将 Anderson 和 Makino 的方法与新的计算程序 A2P 相结合,实现了 FMM 在多核心计算机上的并行化,称为 FMMOpenMP。计算中有四个核心公式:公式 (1) 用于近场和远场力计算;公式 (2) 用于 M2L 阶段;公式 (23) 用于 M2M 阶段;公式 (22) 用于 L2L 阶段。公式 (25) 和公式 (26) 虽然在计算中不占主导地位,但有助于使用简单的公式 (1) 计算远场力。
并行化主要是对势/力成对相互作用的循环以及使用公式 (23) 和公式 (22) 的循环进行并行化。由于成对相互作用的浮点运算至少占 FMM 浮点运算的 90%,因此并行化成对相互作用是最重要的任务。以下是公式 (1)(近场和远场力计算)和公式 (2)(M2L 阶段)的并行化伪代码:
```c
#pragma omp parallel for default(shared) private(i,j,...)
for (j = 0; j < k; j++) { // 对于每个目
```
0
0
复制全文
相关推荐









