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 |
# $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 |
|
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 |
#set EXE="poe ./mitgcmuv -procs TR_NPROC" |
27 |
set NPROCS=2 |
28 |
set EXE="poe ./mitgcmuv -procs $NPROCS" |
29 |
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 |