关于常用并行算法范式的笔记

关于常用并行算法范式的笔记

阶段并行:同步迭代、异步迭代。

分治:将分治后的数据进行分发,之后再分治,再派发。

宏流水:流水线一样,每个节点只执行其中几个环节。

主从结构:有一个“最高”的管理节点,负责指挥、分发、汇总,其它节点之间不通信,各自完成自身任务。【性能常受限于这个“最高”结点】

工作池:多用于共享内存模型,内存就像是一个队列,每次执行完一个任务后结果会抛入池中,各节点从中拿任务,之后在放回新任务。

参考《超算竞赛导引》

关于超算发展与架构分类的笔记

关于超算发展与架构分类的笔记

历史:

  1. SIMD (Single Instruction Multiple Data) 阵列处理机。【e.g. ILLIAC-IV阵列处理机,约1】
  2. 具有流水结构的向量机。
  3. MIMD (Multiple instruction multiple data) 共享存储多处理机系统。
  4. MPP系统。【用小节点、非一致性存储访问结构(non-Uniform memory access, NUMA)、超节点或向量加超标量的方法】
  5. 集群系统。【早期大多同构,当今逐渐转向异构方式,主要由CPU+GPU或CPU+MIC (many integrated core)组成】

 

架构分类:

 

参考:《超算竞赛导引》——《超算竞赛导引》编写组

衡量计算性能的单位——FLOPS

衡量计算性能的单位——FLOPS

计算方式:

\(FLOPS = sockets \times \frac{cores}{socket} \times \frac{cycles}{second} \times \frac{FLOPs}{cycle}\)

FLOPS is the abbreviation of  “floating point operations per second”. Therefore, sometimes it also is written as FLOP/s.

The “sockets” is the number of network sockets, which are the endpoint to sending or receiving message from others in the network.

And the “cores / socket” is the number of cores per socket.

The “cycles / second”, as we all know, is clock rate.

The “FLOPs / cycle” is the times of floating point operations per clock rate.

单位:

\(1 MFLOPS = 1e6 FLOPS\),

\(1 GFLOPS = 1e9 FLOPS\),

\(1 TFLOPS = 1e12 FLOPS\),

\(1 PFLOPS = 1e15 FLOPS\),

\(1 EFLOPS = 1e18 FLOPS\).

参考了:

https://en.wikipedia.org/wiki/FLOPS

https://en.wikipedia.org/wiki/Clock_rate