WRF 4.4 as service

WRF 4.4 as service

Many governmental and non-governmental organizations, as well as a number of businesses (like wind farms), rely on precise local weather forecast. Weather Research and Forecast model (WRF) is the most popular and well developed software set of tools for generating such type of weather forcasts. It is freely distributed as a programming (source) code, large part of which is written in Fortran programming language. It is expected that the potential WRF users should download, compile, and running the WRF tools for computinng the forecast. Some vendors offer pre-compiled, ready to run WRF binary tools. Using those binaries might be sufficient in case the maximum speed of producing forecasts is not of paramount importance. If the goal is to get most of WRF in terms of speed, then the source code needs to be compiled with the proper compiler and the corresponding optimizations, mostly to match some specific CPU features. Latter is not easy to achieve for it requires lots of experience and testing, and in that case it is better to find HPC facilities where WRF is already compiled, tested, and installed.

Compilation of WRF 4.4 starts with creating an optimized build of NetCDF library that also includes HDF5. That build should be installed as a bundle – that means a separated installation that includes everything the build scripts of WRF require for linking the created executable code to the NetCDF libraries. HDF5 is not required by WRF directly and it is brought here only because NetCDF4 incorporates the HDF5 library code. The recipe for creating that kind of NetCDF bundle on AMD Zen2 is published here:


https://gitlab.discoverer.bg/vkolev/recipes/-/tree/main/WRF/4/lib_bundle


Once the NetCDF bundle is installed (and tested!!!) the configuration and compilation of WRF 4.4 code can begin. The build recipes and adopted patches are accessible at:


https://gitlab.discoverer.bg/vkolev/recipes/-/tree/main/WRF/4


Why NVIDIA HPC SDK compilers are employed here instead of Intel oneAPI? It is true that on genuine Intel processors the Intel oneAPI compilers produce very fast and reliable WRF executable code. But when they are instructed to perform aggressive optimization (at compile time) on AMD Zen2 CPU the produced binary executables crash by rising “Segmentation fault” error message. On the other side NVIDIA HPC SDK compilers (note that those compilers and LLVM-based) create faster and reliable WRF executables, compared to AMD AOCC of GNU GCC. The presence of -Mcache_align in the list of compiler flags has the most significant contribution to the speed of the produced WRF binary executable code.


The produced WRF 4.4 build is available to all Discoverer HPC users. They can visit the documentation page and read how to load the environment module that enables the access to the build.

Leave a Reply

Your email address will not be published. Required fields are marked *

WordPress Appliance - Powered by TurnKey Linux