The Weather Research and Forecasting (WRF) model is an open source numerical weather prediction application. WRF is widely used across the globe and was designed to be flexible and extensible. With added computing power, faster and higher resolution runs can be made, resulting in better weather forecasts. More complex physics can be added, while keeping the run time to a manageable and useful level. WRF used OpenMP to distribute the computation to the cores within a node and uses MPI to spread the work across nodes in a typical cluster.
The microphysics module is known to be very time consuming. Microphysics provides atmospheric heat and moisture tendencies. This module has been optimized to take advantage of the Intel Xeon Phi coprocessor. However, some manual optimization can lead to even greater performance gains. By using manual optimizations, the overall speedup on a host CPU (Intel Xeon E5-2670) was 2.8 X, while the performance of running on the Intel Xeon Phi coprocessor was 3.5 X. This is important, as the same code optimization were used on the CPU and the coprocessor. Optimizations such as vector alignment before loops and reducing memory footprint per thread can be advantageous to different architectures.
Both multi-threading and vectorization are important when optimizing an application. Further, any optimization project should aim to reuse cached data. By using the same techniques on the code, whether running on the host CPU or on a coprocessor, developers will not have to be concerned on the exact environment of the users machine. In addition, these techniques can be used as newer versions of hardware and vectorization units are developed.
Source: University of Wisconsin-Madison, USA
Turn Big Research into Big Results
Accelerate data analysis with Intel® Parallel Studio XE.