| 1 |
mlosch |
1.1 |
#!/bin/tcsh -x |
| 2 |
|
|
# run testreport in iblade1.awi.de |
| 3 |
|
|
# |
| 4 |
|
|
# This version of the script runs testreport in two steps: |
| 5 |
|
|
# 1/ compile all experiments (as if cross compiling) |
| 6 |
|
|
# 2/ run all experiments within one script that is submitted to the loadLeveler |
| 7 |
|
|
# This should also serve as a template for the SX8 (with real cross-compiling) |
| 8 |
|
|
# ************************* |
| 9 |
|
|
# Another aspect is the use of "TR_NPROC" which allows the script to |
| 10 |
|
|
# decide on how many cpus to runs, so that experiments like |
| 11 |
|
|
# global_ocean.90x40x15 do not fail all the time. |
| 12 |
|
|
# Because there does not appear to be any traffic in iblade anymore |
| 13 |
|
|
# I am increasing the number requested processors to 6 |
| 14 |
|
|
# ************************* |
| 15 |
|
|
# Unfortunately the "TR_NPROC" trick does not work and until we find a fix |
| 16 |
|
|
# I am using 2 processors |
| 17 |
mlosch |
1.2 |
# $Header: /u/gcmpack/MITgcm_contrib/test_scripts/iblade/mt_iblade_split,v 1.1 2015/03/02 14:29:12 mlosch Exp $ |
| 18 |
|
|
# $Name: $ |
| 19 |
mlosch |
1.1 |
|
| 20 |
|
|
set VENDOR=mpxlf95 |
| 21 |
|
|
set RUNIT="runtestreport_"$VENDOR |
| 22 |
|
|
set HERE=$cwd |
| 23 |
|
|
# this does not work so far, because I dont know how to trick the loadLeveler |
| 24 |
|
|
# so we use fixed number of processors for now |
| 25 |
|
|
#set NPROCS=6 |
| 26 |
mlosch |
1.2 |
#set EXE="poe ./mitgcmuv -procs TR_NPROC" |
| 27 |
mlosch |
1.1 |
set NPROCS=2 |
| 28 |
mlosch |
1.2 |
set EXE="poe ./mitgcmuv -procs $NPROCS" |
| 29 |
mlosch |
1.1 |
set MPI="-MPI $NPROCS" |
| 30 |
|
|
|
| 31 |
|
|
set OPTFILE=../tools/build_options/sp6+mpi_iblade |
| 32 |
|
|
|
| 33 |
|
|
set CVSCMD='cvs -d :pserver:cvsanon@mitgcm.org:/u/gcmpack \ |
| 34 |
|
|
co MITgcm >& cvs_co.log' |
| 35 |
|
|
# for fewer experiments |
| 36 |
|
|
# co MITgcm_verif_basic >& cvs_co.log' |
| 37 |
|
|
|
| 38 |
|
|
# download code to this directory |
| 39 |
|
|
set TDIR=/iblade/user/mlosch/tmp_$VENDOR |
| 40 |
|
|
# put temporatry output here (for sending) |
| 41 |
|
|
set SavD=$HOME/scripts |
| 42 |
|
|
# mpack needs to be in this directory |
| 43 |
|
|
set SEND="ssh iblade1 $HOME/bin/mpack" |
| 44 |
|
|
# this could be replaced by "/dev/null" |
| 45 |
|
|
set MYOUTPUT=$HOME/testreport.output |
| 46 |
|
|
#set selectexperiment='-t exp2' |
| 47 |
|
|
set selectexperiment=' ' |
| 48 |
|
|
# |
| 49 |
|
|
# create batch script to run experiments after (cross-)compiling |
| 50 |
|
|
# |
| 51 |
|
|
cat << EOF >! $HERE/$RUNIT |
| 52 |
|
|
#!/bin/bash -x |
| 53 |
|
|
# LoadLeveler batch commands that are used if this script is submitted to |
| 54 |
|
|
# the share batch queue: |
| 55 |
|
|
# @ job_type = parallel |
| 56 |
|
|
# @ job_name = mitgcm_testreport |
| 57 |
|
|
# @ output = testreport.out |
| 58 |
|
|
# @ error = testreport.out |
| 59 |
|
|
# @ wall_clock_limit = 8:00:0,8:00:0 |
| 60 |
|
|
# @ resources = ConsumableCpus(1) |
| 61 |
|
|
# @ image_size = 50 |
| 62 |
|
|
# @ class = cpar |
| 63 |
|
|
|
| 64 |
|
|
# @ notification = never |
| 65 |
|
|
## @ notification = complete |
| 66 |
|
|
## @ notify_user = Martin.Losch@awi.de |
| 67 |
|
|
|
| 68 |
|
|
# @ node = 1 |
| 69 |
|
|
# @ tasks_per_node = $NPROCS |
| 70 |
|
|
# @ node_usage = shared |
| 71 |
|
|
# @ queue |
| 72 |
|
|
|
| 73 |
|
|
cd \${LOADL_STEP_INITDIR} |
| 74 |
|
|
echo "current working directory: \$pwd" >> $MYOUTPUT |
| 75 |
|
|
echo "now start to run the model" >> $MYOUTPUT |
| 76 |
|
|
./testreport -bash /usr/bin/bash -match 10 -runonly $MPI $selectexperiment \ |
| 77 |
|
|
-of=${OPTFILE} -command "$EXE" -send "$SEND" -sd $SavD \ |
| 78 |
|
|
-a "jmc@mitgcm.org Martin.Losch@awi.de" >> $MYOUTPUT 2>&1 |
| 79 |
|
|
|
| 80 |
|
|
EOF |
| 81 |
|
|
|
| 82 |
|
|
# make the script executable (not really necessary) |
| 83 |
|
|
chmod a+x $RUNIT |
| 84 |
|
|
#chmod 744 $RUNIT |
| 85 |
|
|
|
| 86 |
|
|
#if ( 0 ) then |
| 87 |
|
|
if ( -e $TDIR ) then |
| 88 |
|
|
rm -rf $TDIR |
| 89 |
|
|
endif |
| 90 |
|
|
mkdir $TDIR |
| 91 |
|
|
cd $TDIR |
| 92 |
|
|
# download the model |
| 93 |
|
|
eval ${CVSCMD} |
| 94 |
|
|
# |
| 95 |
|
|
if ( $status > 0 ) then |
| 96 |
|
|
cat cvs_co.log |
| 97 |
|
|
exit |
| 98 |
|
|
endif |
| 99 |
|
|
|
| 100 |
|
|
cd $TDIR/MITgcm/verification |
| 101 |
|
|
|
| 102 |
|
|
if ( -e $MYOUTPUT ) then |
| 103 |
|
|
rm -rf $MYOUTPUT |
| 104 |
|
|
endif |
| 105 |
|
|
bash ./testreport -bash /usr/bin/bash -postclean $MPI \ |
| 106 |
|
|
-of=${OPTFILE} -norun $selectexperiment >& $MYOUTPUT |
| 107 |
|
|
|
| 108 |
|
|
#else |
| 109 |
|
|
# cd $TDIR/MITgcm/verification |
| 110 |
|
|
#endif |
| 111 |
|
|
|
| 112 |
|
|
# now submit the job that actually runs all the experiments in one go |
| 113 |
|
|
llsubmit $HERE/$RUNIT |
| 114 |
|
|
|
| 115 |
|
|
echo "end of mt_iblade_split" >>& $MYOUTPUT |