如何加快CALPUFF的运行速度

CALPUFF模型系统由于计算过程中考虑众多的大气物理和化学过程,所需数据较多,导则其计算速度相比于AERMOD慢不少,在实际工作过程中,经常遇到要求快速出报告,但却卡在CALPUFF运行上,本文从模型系统着手解决CALPUFF运行速度慢的问题。

CALPUFF模型系统可以分为以下几个程序: 地形预处理程序、土地利用预处理程序、气象预处理程序(地面和探空数据)、气象诊断模型CALMET、质量预测模型CALPUFF。

其中,地形预处理程序、土地利用预处理程序和气象预处理程序运行速度快,一般只需要几分钟的时间就可以计算完毕,;气象诊断模型CALMET的计算速度和网格数密切相关和网格步长次相关,一般来说10000网格点运行一年,最多也只需要几个小时,而且对于多个预测方案的大气预测也只需要运行一次,CALMET也不是决定大气模拟的最终因素;CALPUFF的计算速度和网格、污染源、污染物均有密切关系,且运行时间长,在10多个源,10000网格点、6个污染物的情况下,单核运行都要在20个小时左右,且由于不止一次方案,还由于不止要运行一次(每次修改源参数都要运行)运行时间耗费最大。因此本文对运行速度的改进主要着手在此处。

本文从三个方面说明如何加快CALPUFF的运行速度。

一、优化模拟参数

1.CALPUFF扩散参数中,近场扩算计算选项设置为烟团,不考虑烟团分裂,不考虑两个选项虽然会影响计算精度,但不会影响计算结果,但可以提升一些计算速度。下图展示了CALPUFF官方给出一组对比数据,可以看出烟团模型所耗费的CPU时间为1.8,烟片模型为1.2-5.7。

在使用烟团模型时,每个步长释放的烟团数越多,计算结果越精确,计算时间越长,比如每个步长释放500个烟团相比释放100个步长,计算时间增加了20多倍,因此需要用户合理设置烟团释放数目。

2 在试算时,CALPUFF仅计算离散点结果,在离散点结果达到期许后,再计算所有网格点,这样可以避免一些计算浪

3 巧妙利用离散点矩阵加密网格。

二、优化模型计算

1、重编译模型。CALPUFF模型均采用lahey95编译,但该款编译器默认优化参数不足以发挥现阶段CPU的威力,建议采用Intel Fortran编译器进行编译,编译参数全默认就可以大幅度提高运行速度。值得重编译的模型程序为CALMET和CALPUFF。

2、伪并行,在存在多个预测方案时,同时运行多个预测方案,相当于并行运算了。

3、采用CALPUFF并行程序。EPA提供的CALPUFF程序是串行的,在现在CPU动不动就4核、8核甚至16核的时候,CALPUFF只能利用其中25%设置6.3%的资源,是个极大的资源浪费。但可以将CALPUFF改造为并行计算程序,这样可以利用全部的CPU资源,计算速度可以极大提高,据测试在24核心的电脑上面,可提高10~15倍的计算速度,也就是原来运行20多个小时的方案,现在两个小时就可以计算完成,极大提高了工作效率。 环安科技的CALPUFF并行版软件就可以做到128核并行,可以极大提高计算速度。

三、优化硬件

“工欲善其事必先利其器”这句话用在环评上不敢说正确不正确,但是配置一台好电脑会大大加快CALMET、CALPUFF的计算速度,尤其在采用CALPUFF并行版时。

无疑采用高端的intel 至强CPU是最佳选择,intel至强E5可扩展处理器,单颗CPU最多拥有28个物理核心,配置一台两个CPU的电脑,就可以达到56个计算核心,完全可以满足计算需求。

 

类似文章