Fast Fourier Transform(FFT,快速傅里叶变换)
:一种计算y = Wx的算法,其中Wjk = w^jk是n次单位根w的jk次幂,x和y是复数n向量。
1.4 流程图示例
graph TD;
A[开始] --> B[Fetch数据];
B --> C{数据在缓存中?};
C -- 是 --> D[缩短处理流程];
C -- 否 --> E[从内存获取数据];
D --> F[使用数据];
E --> F;
F --> G[结束];
2. 符号与运算解释
2.1 布尔运算
and(与)
:i and j = 1,如果i = j = 1;否则为0。
or(或)
:布尔或操作。
¬(非)
:布尔补码,按位取反,¬1 = 0,¬0 = 1。
⊕(异或)
:当应用于二进制数据时,是布尔异或;当应用于矩阵时,是直接和。
2.2 矩阵与向量运算
符号
解释
A⁻¹
矩阵A的逆。
A⁻ᵀ
矩阵A的转置。
(x, y)
向量x和y的内积。
x
2.3 其他符号
∀xi
:表示对于所有的xi。
∃xi
:表示存在一个xi。
ℑz
:复数z的虚部。
ℜz
:复数z的实部。
2.4 流程图示例
graph TD;
A[a和b的值] --> B{a > b?};
B -- 是 --> C[a V b = a];
B -- 否 --> D[a V b = b];
C --> E[输出结果];
D --> E;
3. 并行计算模式与算法
3.1 并行计算模式
Multiple instruction, multiple data (MIMD,多指令多数据)
:使用多个CPU,每个CPU处理数据的独立部分,且每个CPU上的机器指令序列可能不同。
Single instruction stream, multiple data streams (SIMD,单指令多数据流)
:通常指向量计算。
3.2 重要算法
算法
解释
Gaussian elimination(高斯消元法)
通过行或列约简来求解线性方程组Ax = b的算法。
Monte Carlo (MC,蒙特卡罗) 模拟
使用随机数生成模型系统可能配置的数学实验。
3.3 流程图示例
graph TD;
A[开始] --> B[选择并行计算模式];
B --> C{MIMD?};
C -- 是 --> D[分配任务给多个CPU];
C -- 否 --> E{SIMD?};
E -- 是 --> F[进行向量计算];
E -- 否 --> G[其他模式处理];
D --> H[处理数据];
F --> H;
G --> H;
H --> I[结束];
General purpose register (GPR,通用寄存器)
:通常用于整数操作的即时存储和检索。
Rename registers(重命名寄存器)
:其传统编号序列被重新排序以匹配指令的编号标签。
4.2 缓存策略
策略
解释
Write back(写回)
数据先写入缓存,直到相应的缓存行再次被修改时才写入内存。
Write through(直写)
修改后的数据在存储到缓存的同时立即写入内存。
4.3 流程图示例
graph TD;
A[数据修改] --> B{选择缓存策略};
B --> C{Write back?};
C -- 是 --> D[写入缓存];
C -- 否 --> E{Write through?};
E -- 是 --> F[同时写入缓存和内存];
E -- 否 --> G[其他策略处理];
D --> H[等待缓存行修改];
H --> I[写入内存];
F --> J[完成];
I --> J;
G --> J;