...
Code Block |
---|
$ export WRFIO_NCD_LARGE_FILE_SUPPORT=1
$ export NETCDF=$NETCDF_DIR
$ export HDF5=$HDF5_DIR |
4. Configure
Code Block |
---|
./configure |
...
After the configure, you may edit the configure.wrf file to adjust as needed.
For exampleAMD nodes:
Remove -xHost - will not work on AMD
change to -xCORE-AVX2 -to -march=core-avx2
For Skylake Nodes
-xCORE-AVX2 may need to change to AVx512 -xCORE-AVX512 for Intel Skylake hosts
Other
Edit mpicc, remove the “-f90=$(SFC)” option from mpif90 and the “-cc=$(SCC)” option from mpicc for HPC-X (Open MPI) as it doesn’t need those options.
5. Compile
Code Block |
---|
$ ./compile wrf |
...
-j8 wrf |
Note: if you compiled before, you need to clean the old compilation by running, and renaming again the configure.wrf.
Code Block |
---|
$ ./clean -a
...
$ mv configure.wrf.backup configure.wrf |
6. Check the run directory
For input, make sure you have
...
8. For actual forecast output and video creating, you need to enable history output in the namelist.input file.
Performance Measurements
As WRF is heavy in IO (reading the optionally writing the files), there are two ways to measure performance here.
1. Use Linux time command to measure the total time of the mpirun, that includes IO time and compute time. For example:
Code Block |
---|
$ time -p mpirun -np 512 wrf.exe
...
real 72.00
user 2178.06
sys 30.18 |
Check the real total time of the application.
2. In case you are not interested on the IO time, but only on the compute time, you can sum all the rows in the rsl.out.0000 files with the time measurements. For example:
Code Block |
---|
Timing for main: time 2005-06-04_06:00:30 on domain 1: 1.74579 elapsed seconds |
A run command could be:
Code Block |
---|
$ cat rsl.out.0000 | grep "Timing for main" | awk '{ SUM += $9} END { print "Total Time is: " SUM }'
...
Total Time is: 16.9808 |