root / examples / Vasp / Parallel / run_Path_PBS @ 1
Historique | Voir | Annoter | Télécharger (3,18 ko)
1 | 1 | equemene | #PBS -S /bin/sh |
---|---|---|---|
2 | 1 | equemene | #PBS -N VaspPara |
3 | 1 | equemene | #PBS -l nodes=8:Other |
4 | 1 | equemene | #PBS -q Para8 |
5 | 1 | equemene | #PBS -o Test_Vasp_Para.batch-log |
6 | 1 | equemene | #PBS -j oe |
7 | 1 | equemene | #PBS -M Paul.Fleurat-Lessard@ens-lyon.fr |
8 | 1 | equemene | #PBS -m aeb |
9 | 1 | equemene | |
10 | 1 | equemene | #!/bin/bash |
11 | 1 | equemene | |
12 | 1 | equemene | home_dir=$PBS_O_WORKDIR |
13 | 1 | equemene | work_dir=$PBS_O_WORKDIR |
14 | 1 | equemene | numb=3x3_run1 |
15 | 1 | equemene | |
16 | 1 | equemene | ###################################### |
17 | 1 | equemene | # |
18 | 1 | equemene | # you might have to change the following variables |
19 | 1 | equemene | # |
20 | 1 | equemene | ###################################### |
21 | 1 | equemene | # |
22 | 1 | equemene | # Name of the Path Input file |
23 | 1 | equemene | # |
24 | 1 | equemene | Job=Test_Vasp_Para |
25 | 1 | equemene | # |
26 | 1 | equemene | # |
27 | 1 | equemene | # Where is Path.exe ?? |
28 | 1 | equemene | # |
29 | 1 | equemene | PathExe=~/Programs/Carte/src/Path.exe |
30 | 1 | equemene | # |
31 | 1 | equemene | # Where is VASP ? |
32 | 1 | equemene | # |
33 | 1 | equemene | export VASP=/home/dloffred/VASP_SOURCES/Intel_P4/VASP46_CINEB |
34 | 1 | equemene | # |
35 | 1 | equemene | # Whre is mpirun ? |
36 | 1 | equemene | # |
37 | 1 | equemene | export MPIRUN=/usr/local/mpich-intel-090404/bin/mpirun |
38 | 1 | equemene | # |
39 | 1 | equemene | # Some libraries... |
40 | 1 | equemene | # |
41 | 1 | equemene | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/fc/9.1.037/lib/:/opt/intel/cc/9.1.045/lib:/usr/lib:/opt/intel/mkl/8.1/lib/32 |
42 | 1 | equemene | export PATH=/opt/intel/fc/9.1.037/bin/:/opt/intel/cc/9.1.045/bin/:$PATH:$HOME/bin:/usr/local/mpich-intel9/bin |
43 | 1 | equemene | export LD_RUN_PATH=$LD_RUN_PATH:/opt/intel/fc/9.1.037/lib/:/opt/intel/cc/9.1.045/lib |
44 | 1 | equemene | export MANPATH=$MANPATH:/opt/intel/fc/9.1.037/man/:/opt/intel/cc/9.1.045/man |
45 | 1 | equemene | export LANG=C |
46 | 1 | equemene | # |
47 | 1 | equemene | #Usually nothing has to be changed after this line |
48 | 1 | equemene | # |
49 | 1 | equemene | ################################################# |
50 | 1 | equemene | |
51 | 1 | equemene | |
52 | 1 | equemene | |
53 | 1 | equemene | |
54 | 1 | equemene | ################################# |
55 | 1 | equemene | # |
56 | 1 | equemene | # We create the machinefile |
57 | 1 | equemene | # |
58 | 1 | equemene | # even if it is not really needed for SERIAL calculations |
59 | 1 | equemene | # |
60 | 1 | equemene | ################################# |
61 | 1 | equemene | nodes=`cat $PBS_NODEFILE` |
62 | 1 | equemene | nnodes=`wc $PBS_NODEFILE | awk '{print $1}'` |
63 | 1 | equemene | |
64 | 1 | equemene | confile=$home_dir/ip.$PBS_JOBID.conf |
65 | 1 | equemene | touch $confile |
66 | 1 | equemene | j="init" |
67 | 1 | equemene | for i in $nodes |
68 | 1 | equemene | do |
69 | 1 | equemene | if [ $j != $i ] |
70 | 1 | equemene | then echo "$i:1" >> $confile |
71 | 1 | equemene | else |
72 | 1 | equemene | echo "vous calculez sur des noeuds smp" |
73 | 1 | equemene | fi |
74 | 1 | equemene | j=$i |
75 | 1 | equemene | done |
76 | 1 | equemene | |
77 | 1 | equemene | ############################### |
78 | 1 | equemene | # |
79 | 1 | equemene | # We go to the Work Directory |
80 | 1 | equemene | # |
81 | 1 | equemene | ############################### |
82 | 1 | equemene | |
83 | 1 | equemene | cd $work_dir |
84 | 1 | equemene | |
85 | 1 | equemene | #! we create the 00, 01... and 0x directorires |
86 | 1 | equemene | # First we get the number of images in the INCAR file: |
87 | 1 | equemene | NbIm=`grep -i IMAGES INCAR | awk -F"=" '{n=$2*1+1; print n}' ` |
88 | 1 | equemene | n=0 |
89 | 1 | equemene | while [ $n -le $NbIm ] |
90 | 1 | equemene | do |
91 | 1 | equemene | ndir=`echo $n | awk '{k="00" $1; l=length(k); l=l-1; print substr(k,l,2)}'` |
92 | 1 | equemene | mkdir -p $ndir |
93 | 1 | equemene | let n=n+1 |
94 | 1 | equemene | done |
95 | 1 | equemene | |
96 | 1 | equemene | # A small test to see if everything matches |
97 | 1 | equemene | NbImP=` sed 's/,/^M/g' ${Job}.path | grep -i ngeomf | awk -F"=" '{n=$2*1-1; print n}' ` |
98 | 1 | equemene | if [ $NbImP -ne $NbIm ]; then |
99 | 1 | equemene | echo "WARNING WARNING WARNING WARNING WARNING WARNING" |
100 | 1 | equemene | echo "IMAGES in INCAR and NGeomF in " ${Job}.path |
101 | 1 | equemene | echo "Do Not Match... problems might be expected..." |
102 | 1 | equemene | echo "Check it !!!" |
103 | 1 | equemene | echo "WARNING WARNING WARNING WARNING WARNING WARNING" |
104 | 1 | equemene | fi |
105 | 1 | equemene | |
106 | 1 | equemene | ############################# |
107 | 1 | equemene | # |
108 | 1 | equemene | # We create the 'VaspExe' file that Path will use to run the |
109 | 1 | equemene | # actual VASP calculations of E and forces |
110 | 1 | equemene | # |
111 | 1 | equemene | ############################# |
112 | 1 | equemene | echo "$MPIRUN -nolocal -machinefile $confile -np $nnodes $VASP > out_$numb" > ./RunVasp |
113 | 1 | equemene | chmod u+x ./RunVasp |
114 | 1 | equemene | |
115 | 1 | equemene | ############################### |
116 | 1 | equemene | # |
117 | 1 | equemene | # We launch PATH |
118 | 1 | equemene | # |
119 | 1 | equemene | ############################### |
120 | 1 | equemene | ln -fs ${PathExe} . |
121 | 1 | equemene | |
122 | 1 | equemene | ############################# |
123 | 1 | equemene | # |
124 | 1 | equemene | # We create the 'VaspExe' file that Path will use to run the |
125 | 1 | equemene | # actual VASP calculations of E and forces |
126 | 1 | equemene | # |
127 | 1 | equemene | ############################# |
128 | 1 | equemene | |
129 | 1 | equemene | echo "$MPIRUN -nolocal -machinefile $confile -np $nnodes $VASP > out_$numb" > ./RunVasp |
130 | 1 | equemene | chmod u+x ./RunVasp |
131 | 1 | equemene | |
132 | 1 | equemene | ############################### |
133 | 1 | equemene | # |
134 | 1 | equemene | # We launch PATH |
135 | 1 | equemene | # |
136 | 1 | equemene | ############################### |
137 | 1 | equemene | ln -fs ${PathExe} . |
138 | 1 | equemene | |
139 | 1 | equemene | ./Path.exe ${Job}.path &> ${Job}.out |