The weather affects everyone, every day. From planning events to decisions that affect commerce, knowing what the weather will be for a time frame in advance is always desirable. With the advent of faster computers over the years, combined with more complete simulations and algorithms, the accuracy of weather forecasts continues to improve.
Modern Numerical Weather prediction (NWP) can now use many thousands of cores in a single run of the application. By using modern CPUs such as the Intel Xeon processors and the Intel Xeon Phi coprocessors, tremendous performance and efficiency can be obtained. It is important to remember that many of the applications are written in Fortran and many of the contributors are domain experts, not parallel programming gurus.
In order to optimize some of these types of applications, standard tuning techniques can be used. Array alignment is critical for performance on the Intel Xeon Phi coprocessor. Unaligned arrays can generate inefficient scalar instructions, and thus compiler directives such as VECTOR_ALIGNED should be used.
Loop restructuring is critical to get excellent performance on modern CPUs and coprocessors. However, in some cases, the if-then-else constructs can make this a challenging task.
By using a number of techniques, performance can then be measured on an optimized version versus a baseline version. As future products which contain hundreds to thousands of cores running in parallel are developed, the accuracy and performance of weather prediction codes will increase. Wouldn’t it be great to have a 100 % accurate weather forecast for 7 days in advance ?
Source: Intel, USA. NOAA, USA