1 | #!/bin/bash |
---|
2 | ############################################################ |
---|
3 | # Author : Tim Graham |
---|
4 | # Contact: tim.graham@metoffice.gov.uk |
---|
5 | # |
---|
6 | # ---------------------------------------------------------------------- |
---|
7 | # NEMO Consortium (2015) |
---|
8 | # Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) |
---|
9 | # ---------------------------------------------------------------------- |
---|
10 | # |
---|
11 | ############################################################# |
---|
12 | #set -x |
---|
13 | set -o posix |
---|
14 | #set -u |
---|
15 | #set -e |
---|
16 | # =========== |
---|
17 | # DESCRIPTION |
---|
18 | # =========== |
---|
19 | # |
---|
20 | ############################################################## |
---|
21 | |
---|
22 | # |
---|
23 | # Compiler among those in NEMOGCM/ARCH |
---|
24 | COMPILER=XC40_METO_perf_tools |
---|
25 | export BATCH_COMMAND_PAR="qsub" |
---|
26 | export BATCH_COMMAND_SEQ=$BATCH_COMMAND_PAR |
---|
27 | export INTERACT_FLAG="no" |
---|
28 | export MPIRUN_FLAG="yes" |
---|
29 | export USING_XIOS="yes" |
---|
30 | export PERF_REGIONS_HOME=/home/tigrah/perf_regions |
---|
31 | |
---|
32 | #Number of cores on a single node of HPC |
---|
33 | export CORES_PER_NODE=32 |
---|
34 | |
---|
35 | # List of papi_counters to be used |
---|
36 | export LIST_COUNTERS=PAPI_L1_ICM |
---|
37 | |
---|
38 | |
---|
39 | # Make a link to perf_regions_fortran.f90 in MY_SRC directory |
---|
40 | # I think it should be possible to just include the .mod file but it's failing on XC40 at the moment |
---|
41 | ln -sf $PERF_REGIONS_HOME/src/perf_regions_fortran.F90 MY_SRC/perf_regions_fortran.F90 |
---|
42 | |
---|
43 | # |
---|
44 | export DEL_KEYS="key_iomput" |
---|
45 | if [ ${USING_XIOS} == "yes" ] |
---|
46 | then |
---|
47 | export DEL_KEYS="" |
---|
48 | fi |
---|
49 | # |
---|
50 | # Settings which control the use of stand alone servers (only relevant if using xios) |
---|
51 | # |
---|
52 | export USING_MPMD="no" |
---|
53 | export NUM_XIOSERVERS=4 |
---|
54 | export JOB_PREFIX=batch-mpmd |
---|
55 | # |
---|
56 | if [ ${USING_MPMD} == "no" ] |
---|
57 | then |
---|
58 | export NUM_XIOSERVERS=0 |
---|
59 | export JOB_PREFIX=batch |
---|
60 | fi |
---|
61 | # |
---|
62 | # |
---|
63 | if [ ${USING_MPMD} == "yes" ] && [ ${USING_XIOS} == "no"] |
---|
64 | then |
---|
65 | echo "Incompatible choices. MPMD mode requires the XIOS server" |
---|
66 | exit |
---|
67 | fi |
---|
68 | # |
---|
69 | ######################################### |
---|
70 | # Architecture specific settings |
---|
71 | # control HPC behaviour for benchmarking |
---|
72 | ######################################### |
---|
73 | module load cray-netcdf |
---|
74 | |
---|
75 | |
---|
76 | ############################# |
---|
77 | # Directory to run the tests |
---|
78 | ############################# |
---|
79 | SETTE_DIR=$(cd $(dirname "$0"); pwd) |
---|
80 | MAIN_DIR=${SETTE_DIR%/BENCHMARK} |
---|
81 | CONFIG_DIR=${MAIN_DIR}/CONFIG |
---|
82 | TOOLS_DIR=${MAIN_DIR}/TOOLS |
---|
83 | COMPIL_DIR=${TOOLS_DIR}/COMPILE |
---|
84 | |
---|
85 | CMP_NAM=${1:-$COMPILER} |
---|
86 | # Copy job_batch_COMPILER file for specific compiler into job_batch_template |
---|
87 | cd ${SETTE_DIR} |
---|
88 | cp BATCH_TEMPLATE/${JOB_PREFIX}-${COMPILER} job_batch_template || exit |
---|
89 | |
---|
90 | |
---|
91 | #Cleanup instrumentation from old run |
---|
92 | . ./perf_regions_instrumentation.py cleanup |
---|
93 | |
---|
94 | #Instrument OPA_SRC code before compilation |
---|
95 | . ./perf_regions_instrumentation.py |
---|
96 | |
---|
97 | # GYRE CONFIGURATION |
---|
98 | export TEST_NAME="BENCHMARK" |
---|
99 | . ./param.cfg |
---|
100 | . ./all_functions.sh |
---|
101 | cd ${CONFIG_DIR} |
---|
102 | . ./makenemo -m ${CMP_NAM} -n GYRE_BENCHMARK -e /home/tigrah/dev_HPC_Gyre_benchmark_test/NEMOGCM/BENCHMARK/MY_SRC -r GYRE -j 8 del_key "key_mpp_mpi key_iomput" |
---|
103 | echo $PWD |
---|
104 | cd GYRE_BENCHMARK |
---|
105 | mkdir -p ${TEST_NAME} |
---|
106 | export EXE_DIR=${CONFIG_DIR}/${NEW_CONF}/${TEST_NAME} |
---|
107 | JOB_FILE=${EXE_DIR}/run_job.sh |
---|
108 | proc=1 |
---|
109 | cd $EXE_DIR |
---|
110 | cp -rL ${CONFIG_DIR}/${NEW_CONF}/EXP00/* ${EXE_DIR}/. |
---|
111 | cp -r ${SETTE_DIR}/iodef_sette.xml ${EXE_DIR}/iodef.xml |
---|
112 | cp -r ${SETTE_DIR}/perf_region_list.txt ${EXE_DIR}/perf_region_list.txt |
---|
113 | |
---|
114 | NPROC=1 |
---|
115 | cd ${EXE_DIR} |
---|
116 | if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi |
---|
117 | set_namelist namelist_cfg cn_exp \"GYRE_LONG\" |
---|
118 | set_namelist namelist_cfg nn_it000 1 |
---|
119 | set_namelist namelist_cfg nn_itend 500 |
---|
120 | set_namelist namelist_cfg nn_stock 10000 |
---|
121 | set_namelist namelist_cfg ln_clobber .true. |
---|
122 | set_namelist namelist_cfg nn_fwb 0 |
---|
123 | set_namelist namelist_cfg jpni 1 |
---|
124 | set_namelist namelist_cfg jpnj 1 |
---|
125 | set_namelist namelist_cfg jpnij 1 |
---|
126 | set_namelist namelist_cfg jpiglo 50 |
---|
127 | set_namelist namelist_cfg jpjglo 40 |
---|
128 | set_namelist namelist_cfg jpidta 50 |
---|
129 | set_namelist namelist_cfg jpjdta 40 |
---|
130 | set_namelist namelist_cfg jp_cfg 1 |
---|
131 | if [ ${USING_MPMD} == "yes" ] ; then |
---|
132 | set_xio_using_server iodef.xml true |
---|
133 | else |
---|
134 | set_xio_using_server iodef.xml false |
---|
135 | fi |
---|
136 | cd ${SETTE_DIR} |
---|
137 | . ./prepare_job.sh input_GYRE.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} |
---|
138 | cd ${SETTE_DIR} #Prepare job seems to leave us in a different working directory |
---|
139 | . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG} |
---|
140 | |
---|