引用本文: | 刘军志,朱阿兴,刘永波,等.基于栅格分层的逐栅格汇流算法并行化研究[J].国防科技大学学报,2013,35(1):123-129.[点击复制] |
LIU Junzhi,ZHU AXing,LIU Yongbo,et al.Parallelization of a grid-to-grid routing algorithm based on grids layering[J].Journal of National University of Defense Technology,2013,35(1):123-129[点击复制] |
|
|
|
本文已被:浏览 8736次 下载 6192次 |
基于栅格分层的逐栅格汇流算法并行化研究 |
|
(1.中国科学院 资源与环境信息系统国家重点实验室,北京 100101;2.
2.中国科学院大学,北京 100049;3.
3.Department of Geography, University of Wisconsin Madison, Madison, WI 53706, USA;4.Department of Geography, University of Guelph, 50 Stone Road East, Guelph, Ontario N1G 2W1, Canada)
|
摘要: |
分布式水文模型中的逐栅格汇流算法计算量大,需要借助并行计算以满足大流域长历时模拟的要求。针对目前鲜有对基于隐式有限差分的逐栅格汇流算法进行并行计算研究的情况,基于栅格分层的思想提出一种适用于共享内存并行计算环境的逐栅格汇流并行算法。该算法首先根据流向进行栅格分层,使同一层中栅格的计算相互独立,然后将同一层中栅格的计算任务分配到多个计算单元并行计算。采用C++编程语言与OpenMP并行编程库实现了该算法,并选择河北省清水河流域为实验区,在不同数据规模(30m、90m、270m分辨率)、不同核数(2~20个)以及不同栅格分层方法的情况下对算法性能进行了测试。实验结果表明本文提出的并行算法具有较好的加速比和并行效率,且并行效率随数据规模的增大而增大。栅格分层方法对算法并行性能有明显影响,从上到下的分层方法比从下到上的方法具有更高的并行效率。 |
关键词: 逐栅格汇流 隐式有限差分 栅格分层 并行计算 OpenMP |
DOI: |
投稿日期:2012-07-09 |
基金项目:国家863计划资助项目(2011AA120305);国家自然科学基金资助项目(41023010);
中国科学院知识创新工程重要方向项目(KZCX2-YW-442) |
|
Parallelization of a grid-to-grid routing algorithm based on grids layering |
LIU Junzhi1,2, ZHU AXing3,4, LIU Yongbo5, QIN Chengzhi3, CHEN Lajiao3,2, WU Hui3,2, YANG Lin3 |
(1.State Key Lab of Resources and Environmental Information System, Institute of Geographic Sciences and Natural Resources Research, CAS, Beijing 100101, China;2.
2.University of Chinese Academy of Sciences, CAS, Beijing 100049, China;3.1.State Key Lab of Resources and Environmental Information System,Institute of Geographic Sciences and Natural Resources Research, CAS, Beijing 100101, China;4.3. Department of Geography, University of Wisconsin-Madison, Madison WI 53706, USA;5.4.Department of Geography, University of Guelph, Guelph, Ontario N1G 2W1, Canada)
|
Abstract: |
Grid-to-grid routing algorithms for distributed hydrological modeling require large amount of computations which cannot be provided by sequential computation techniques. Parallel programming technology is necessary for large-scale and long-period simulations using grid-to-grid routing algorithms. There is currently little research on the parallelization of implicit finite difference based routing algorithms. A parallel implicit finite difference based grid-to-grid routing algorithm was presented, based on grids layering. In this algorithm, grids in the watershed were divided into different layers according to flow direction. The calculations of grids in a downstream layer cannot be performed until its upstream layers’ calculations were completed. The calculations of grids in the same layer are independent of each other, thus can be performed in parallel. So the parallelization strategy is to assign the calculation tasks of grids in the same layer to different CPU-cores to perform parallel computing. The algorithm was implemented by using the C++ programing language and the Open Multi-processing (OpenMP) Application Programming Interface (API) and was tested in the Qingshuihe watershed of Hebei Province under different amount of input data. The result shows that this parallel algorithm had good speedup and parallel efficiency. In addition, the case study showed that the parallel efficiencies were higher for simulations with large datasets than with small datasets and the up-down layering method had better performances than the down-up layering method. |
Keywords: grid-to-grid routing implicit finite difference grids layering parallel computing OpenMP |
|
|
|
|
|