Optimization of the NMS6b weather model code

The Army needs timely and accurate weather forecasting to support the prediction of battlefield conditions. The Army Research Laboratory Major Shared Resource Center (ARL MSRC) was tasked with optimizing the nonhydrastatic model simulation (NMS) weather forecasting code for potential Army use. This code is written for parallel execution on shared memory architectures using OpenMP directives. As written, the code does not run on distributed memory nodes. The NMS code consists of approximately 190,000 lines of Fortran code and 4,000 lines of C code, and was developed by Dr. Greg Tripoli of the University of Wisconsin. The code features a unique variable stepped topography representation designed to handle steep slopes. It is designed to faithfully represent flows in the presence of arbitrarily rough topography while maintaining sensitivity to subtle impacts of weak topography. We give a brief description of the NMS code, followed by the initial performance rate and our optimization goal, a short discussion of our approach, an explanation of the optimization work, our final benchmark results, and finally a brief mention of what future work could be done.