2. 为什么需要高性能计算?
一如计算机最初的主要用途是用于计算(Computer 来自Compute是大家都知道的),高性能计算也是如此,是为了应对很多复杂问题的计算——主要是要计算的数据量太大。一个直观的例子就是天气预报这一应用(其他还有核爆炸仿真,太空探索等),而它背后的计算理论其实是PDE (Partial Differential Equation:偏微分方程)。
本节就以此为线索一探为什么需要高性能计算。
1901 – Vilhelm Bjerknes’ Vision 尝试将物理知识纳入到天气预报
- Start with complete set of initial conditions (3-D)
- Solve equations using graphical methods
- Initial state not sufficient for good forecasts
- Did not use continuity equation to derive the initial vertical wind component (no direct measurements available)
得到的就是一堆具有很多变量的PDE-很难有解析解的
- 3-D: Temperature, Humidity, Wind speed and Wind direction, Atmospheric Pressure,
- Later even Dew Point, Relative Humidity …
用于天气预报的一个简单PDE方程需要数值计算 - 基本思想是差分,即分割为不同的小单元来计算
上面的方程如何计算呢?也就需要数值计算(Numeric Method,是值得工程类学生学习的-包括软件或计算机科学的学生)。数值计算的基本思想其实还算简单,其实就是用差分来迭代。此处有个例子可帮助理解。
挑战来了 - 大规模的计算量!
从上面的例子也就看出,针对PDE的数值计算,其计算量很大程度上取决于变量的数目,以及取样的点的数目:上面取样为9,要计算的矩阵就是9x9呢。
而实际天气预报的采样那就是海量了~
都是什么HPComputer呢?- 并行+分布式
具体的参看后面的系列:
- 高性能计算机的历史
- 资源管理和分配的系统软件
- HPC计算框架:以MPI (Message Passing Interface), CUDA/GPU和MapReduce 为例