今天为大家介绍的是并行计算如何助力数字孪生流域建设首先什么是并行?这里所讲的并行不是双兔傍地走串行也不是一行白鹭上青天计算机语言里的并行指的是计算机的指令是逐条依次执行还是同时执行显然并行是一种更高效的计算方式然而仅仅在20年前我们几乎所有的算法还都是串行的那么这又是为什么呢?
故事还得从微处理器的发展讲起
2004年是微处理器发展的一个重要节点04年之前微处理器性能的提升依靠的主要是单线程计算能力的提升而之后靠的则是增加更多的核心数量也就是如果我们写了一个串行的算法那么在04年之前我们只需要不定期的去采购一个新的CPU它就可以算的越来越快但这招在04年之后就不灵了要想让它算的更快我们必须把它从串行程序改写成并行程序
从串行到并行并不是一个简单的事情涉及到很多算法逻辑的改变而且并行程序有它特定的开发环境比如支持多线程的OpenMP多节点计算的MPI以及GPU并行加速的Cuda和OpenCL等等
那么讲到并行计算不得不提的就是GPU了
The Graphics Processing Unit图形处理器
它在设计之初被用于图形渲染因此是很多游戏玩家的心头所爱同时凭借着其优良的性能和相对低廉的价格也一度成为币圈的挖矿神器
那么GPU跟CPU的区别是什么呢
这是一张对比图
其中绿色的方块代表着计算核心
在CPU中
大概只有5%的晶体管被用于计算单元
而在GPU中这一比例是40%
也就是说
如果在具有相同量级晶体管的情况下
GPU的核心数量是要远远超过CPU的
从08年开始
GPU的计算能力已经远远超过了CPU
有了GPU 就可以使我们科研人员
摆脱硬件条件的束缚
从大型机房中走出来
在自己电脑
甚至是一台小小的笔记本上
就可以编写非常高效的并行计算程序
让我们来看看我们用并行计算做了哪些事
这是我们利用GPU并行加速技术构建的分布式水文模型针对全国53万个小流域它在3秒钟之内就可以完成7天的产流汇流和演进计算而且不需要在大型机上进行在我们自己的一台笔记本上就可以完成
这是我们利用GPU
并行加速技术构建的水动力学模型
以蒙洼蓄滞洪区为例
3-5天的分洪过程
40秒内就可以完成计算
这样的计算效率
已经完全能够满足实时
洪水风险图绘制的需求
数字孪生流域建设要求我们不仅要算得准还要算得快不仅要算得快还要少一些硬件的依赖我们今天所讲的算法算力和算据其中算力和算法其实是一个相互提升的过程算法需要有足够的算力来支撑那么算力呢也只有优秀的算法才能发挥出硬件的算力从而更好地服务于数字孪生流域建设这要求我们科研人员不仅要掌握本专业领域的知识更要熟悉计算机的前沿科学这样才能更好的完成这项工作任务