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
|