MESH parallelization

MESH - The MEC Surface and Hydrology Model
(MEC - Modélisation Environnementale Communautaire )

This forum is intended to provide a way for MESH users to request support and provide feedback related to the model's use, and also to enable peer-to-peer discussion.

MESH parallelization

Postby ChrisMarsh » Sun Jan 31, 2010 6:56 pm

In an effort to get the ball rolling on this forum, I thought I'd post.

Summer 2009, I worked with Bruce Davison at NHRC in Saskatoon, and Ray Spiteri in the Numerical Simulation Lab at the University of Saskatchewan on integrating some HPC paradigms into MESH. By the end of the summer, we had improved MESH's runtime by almost 50% when run in "offline" mode. The technical report can be found here with a direct link to the pdf via:

The abstract is below for those interested:
Currently, advances in hydrological science are based on field data collection, computer
modeling, and analysis of these types of data in order to draw scientific conclusions about
physical processes and to perform “what-if” scenarios to aid in scientific prediction. However,
as the modeling domains become larger or the model resolution becomes smaller, ever greater
increases in computational effort are required. In addition to the limits on computer processing
power currently available, other issues, such as round off errors, can present themselves when
solving equations numerically. Although current computing power continues to slowly increase,
much greater performance gains can be obtained by taking advantage of multi-core, multiprocessor
computer architectures. Completely utilizing modern computational methods can
help to further scientific advancement. Code optimizations are important for future work that
incorporates more computationally expensive physics into the model. By decreasing the run
time, model users can more quickly iterate over calibration parameters, allowing more time to be
spent on the science. In this work, Environment Canada’s model Modélisation Environmentale
Communautaire (MEC)–Surface and Hydrology (MESH) 1.3, which is based on the Canadian
Land Surface Scheme (CLASS), was examined via code profiling to determine the slowest
portions of code. Focus was given to determining whether the code could be adapted for
parallelism targeting shared-memory processors and whether various code optimizations could
be made to the code structure. Initially, the four slowest functions, which comprised about
50% of the run time, were examined. Two, responsible for internal array management, were
removed via code restructuring. Further code optimizations were performed via introduction of
loop-level parallelism. Results show a 37% speed improvement due to code restructuring and
a 47% speed improvement when run with two threads. These results demonstrate sufficient
improvement to suggest that parallelism and further code optimization would be a fruitful
approach to apply to other portions of the model. However, performance testing showed that
the code is still dominated by the serial sections. Through regression testing it was observed
that difference compilers produced different results with the same input data. These instabilities
were quantified via a relative error which indicated that the differences were larger than what
would have been expected due to stable accumulation of round off error. Further investigation
into these instabilities is required to properly quantify their effects on the model output.
Posts: 3
Joined: Mon Dec 14, 2009 1:36 pm

Re: MESH parallelization

Postby AnthonyLiu » Mon Feb 01, 2010 10:55 am

This is great. Anthony.
Posts: 2
Joined: Fri Dec 11, 2009 4:12 pm

Re: MESH parallelization

Postby ChrisMarsh » Wed Feb 03, 2010 12:06 pm

AnthonyLiu wrote:This is great. Anthony.

Glad you like it. Obviously still lots to do, and I have some ideas that could easily mitigate some of the I/O bottleneck without any code modifications. I suspect this would get us another ~10% or so. Would have to see.
Posts: 3
Joined: Mon Dec 14, 2009 1:36 pm

Return to MESH Forum

Who is online

Users browsing this forum: No registered users and 2 guests