Introduction These are the instructions for the “post copies” requirement for the phase 2 WCOSS2 system. Contents The POST processing benchmark contains the following subdirectories 1. gfs_post.fd/ - model source code 2. nnp/ - libraries source code 3. post.rundir/ - all data including initial conditions needed to run the forecast model Build Instructions Prepare the package: tar -zxf post.benchmark.tar cd post.bench/ Building the libraries The script called build.sh builds the ncep and 3rd party libraries for the intel compiler. The script is executed with 'build.sh intel' Users need to check and modify if necessary the compile variables in nnp/lib_3rdparty/install_3rdparty.sh and in nnp/lib_ncep/install_nceplibs.sh before executing build.sh. The compiled libraries will appear in nnp/lib. Intel and MPI modules must be loaded before compilation. For example on the current WCOSS Phase 2 IBM : cd nnp module load ics/17.0.3 build.sh intel and on the WCOSS Cray system : cd nnp module load PrgEnv-intel module rm intel module load intel/18.1.163 craype-haswell build.sh intel.cray and on the WCOSS Dell system : cd nnp module load ips/18.0.1.163 impi/18.0.1 build.sh intel Building the POST (using same compiler level as the library build) In gfs_post.fd/sorc, run ./build_ncep_post.sh . Sample target variables are given for BASE and myFC. The BASE path must be set to your library build directory location and the myFC fortran compiler defined. The executable ncep_post is copied to the gfs_post.fd/exec/ directory Run Instructions All input data needed to run the benchmark is located in the directory post.rundir/ as well as sample run scripts x.bench.system{1,2,3}. Scheduler directives may need to be changed for your system. The number of MPI tasks are set in the run script (aprun,mpirun, etc...) with threads set to 1. Three directory path variables in the run script must be set for your system RUNDIR (update to current run directory) POSTGPEXEC (executable location …/post.bench/gfs_post.fd/exec/ncep_post) APRUN (MPI launcher) When running large numbers of post copies each run must use its own current working directory. Do not link the inputs from multiple runs to the same input. All outputs must also be unique. In operations each set of inputs will be different; these are identical for benchmark simplicity. Multiple runs may use a common executable with either links or the same hardwired path in all runs. One suggested way to make the copies is for num in {1..8000} #or {1..40000} do cp -r post.rundir post.copy.$num & #search and replace to update $RUNDIR variable done Once the directory copies are made jobs can be submitted with a similar loop concurrently with their corresponding benchmark tests. E.g. for copy in {1..8000} #or {1..40000} do cd post.copy.$copy {bsub/qsub/etc} $jobfile cd .. done Verification Instructions Standard out files are provided in the RUNDIR for all 3 systems, outpost.system1, outpost.system2, and outpost.system3 Wall clock time is reported at the end of the standard out file. To check on verification grep "VERIFICATION PASSED" from the standard out of your run.