1 | #!/bin/sh |
---|
2 | # 04 February 2012, Laurent S. Nadolski, Synchrotron SOLEIL |
---|
3 | #Option pour voir les details |
---|
4 | #set -x |
---|
5 | |
---|
6 | if [ $# -ne 1 ] # si le nombre de parametres n'est pas 1 |
---|
7 | then # affiche l'usage |
---|
8 | echo Tracy3 not valid |
---|
9 | echo Missing paremeter file |
---|
10 | echo Use: $0 parameterfile |
---|
11 | exit 1 |
---|
12 | fi |
---|
13 | |
---|
14 | ## create unique name for executable file |
---|
15 | NUM=`date '+%d%m%y%H%M%s'` |
---|
16 | DIR=$HOME/resultat_tracy/exe |
---|
17 | |
---|
18 | # take file name and remove .prm extension if exists |
---|
19 | INPUT_DIR=$PWD |
---|
20 | INPUT_FILE=$(basename $1 .prm).prm |
---|
21 | EXEC_DIR=/usr/local/applications/physmach/tracy3 |
---|
22 | NOM=$EXEC_DIR/psoltracy3 |
---|
23 | |
---|
24 | echo executable filename: $NOM |
---|
25 | echo input parameter filename: $INPUT_FILE |
---|
26 | |
---|
27 | JOB=psoltracy_script.$NUM |
---|
28 | |
---|
29 | ######################### |
---|
30 | ## creation du script PBS |
---|
31 | echo "#!/bin/bash |
---|
32 | #PBS -S /bin/bash |
---|
33 | #PBS -N ParallelTracy |
---|
34 | #PBS -j eo |
---|
35 | #PBS -l nodes=2:ppn=8 |
---|
36 | #PBS -l mem=2000mb |
---|
37 | #PBS -l walltime=1000:00:00 |
---|
38 | |
---|
39 | |
---|
40 | if [[ \$PBS_ENVIRONMENT = \"PBS_BATCH\" ]]; then |
---|
41 | echo PBS_BATCH |
---|
42 | N=\`cat \$PBS_NODEFILE |wc -l\` |
---|
43 | echo \" ============================\" |
---|
44 | echo \"Execution on:\" |
---|
45 | cat \$PBS_NODEFILE |
---|
46 | echo \" ============================\" |
---|
47 | else |
---|
48 | echo \"Not a batch job !\" |
---|
49 | exit |
---|
50 | fi |
---|
51 | |
---|
52 | # IMPORTANT : put here the absolute name of the executable |
---|
53 | set -x |
---|
54 | |
---|
55 | ## execute command |
---|
56 | |
---|
57 | echo executable filename: $NOM |
---|
58 | echo input parameter filename: $INPUT_DIR/$INPUT_FILE |
---|
59 | |
---|
60 | ### va dans /tmpdir/PBS du noeud ou le job est execute |
---|
61 | cd \$TMPDIR |
---|
62 | cp $INPUT_DIR/$INPUT_FILE . |
---|
63 | |
---|
64 | ### Excecute job soltracy parallel version |
---|
65 | ulimit -s unlimited |
---|
66 | time mpirun -n \$N -f \$PBS_NODEFILE -r ssh $NOM $INPUT_FILE |
---|
67 | |
---|
68 | ### SAVE THE RESULTS |
---|
69 | DIRSAVE=\$HOME/resultat_tracy |
---|
70 | mkdir -p \$DIRSAVE/result.\$PBS_JOBID |
---|
71 | mv *.prm \$DIRSAVE/result.\$PBS_JOBID |
---|
72 | mv [^0-9]*.out \$DIRSAVE/result.\$PBS_JOBID #not save the individual file |
---|
73 | mv [^0-9]*.dat \$DIRSAVE/result.\$PBS_JOBID #not save the individual file |
---|
74 | |
---|
75 | |
---|
76 | ### email pour dire ou sont les resultats du job |
---|
77 | CMD=\"mail -s \\\"Job \$PBS_JOBID\\\" \"\`cat $HOME/.forward\` |
---|
78 | ssh isei \"\$CMD\" <<EOF |
---|
79 | Hello $USER, |
---|
80 | |
---|
81 | Work is done! |
---|
82 | |
---|
83 | Please check results in \$DIRSAVE/result.\$PBS_JOBID |
---|
84 | |
---|
85 | Hoping to see you again in our computation universe |
---|
86 | |
---|
87 | Your friend ISEI |
---|
88 | EOF |
---|
89 | " > $JOB |
---|
90 | |
---|
91 | ## creation du script PBS |
---|
92 | ######################### |
---|
93 | |
---|
94 | ### launch PBS command |
---|
95 | qsub -v INPUT_FILE=$1 $JOB |
---|
96 | |
---|
97 | ### clean up |
---|
98 | rm $JOB |
---|