# # Run under bourne shell: #PBS -S /bin/sh # # Give the job a name (optional) #PBS -N "mpiblast" # # Specify the project the job should be accounted on (obligatory). # Check which accounts are available with the 'cost' command. #PBS -A parallab # # The job needs at most 60 hours wall-clock time on 6 CPUs. Change this # to more/less cpus by changing the nodes setting. Keep ppn=2 (2 processors per node). #PBS -l walltime=60:00:00,nodes=3:ppn=2 # # The job needs 400MB memory per cpu #PBS -l pmem=400mb # # Write the standard output of the job to file 'mpiBLAST.out' (optional) #PBS -o mpiBLAST.out # # Write the standard error of the job to file 'mpiBLAST.err' (optional) #PBS -e mpiBLAST.err # mkdir -p /work/janfrode/blastdb cd /work/janfrode/blastdb # Need to use a unique local directory for each job: LOCAL=/scratch/${LOGNAME}/${PBS_JOBID} echo /work/janfrode/blastdb > /work/janfrode/blastdb/mpiblast.conf echo $LOCAL >> /work/janfrode/blastdb/mpiblast.conf for node in `cat $PBS_NODEFILE | sort | uniq` ; do mkdir -p /net/${node}/${LOCAL} done # How many cpus are we running on?: NCPUS=`cat $PBS_NODEFILE | wc -l` P4_GLOBMEMSIZE=171966464 export P4_GLOBMEMSIZE # Check the date before and after splitting the database, to see # how much time is wasted in non-parallel mode. date mpiformatdb -N $NCPUS -i /work/speil/flatdb/algae/uniprot_sp_trembl_no_algae_virus.fasta date mpiexec mpiblast --config-file=/work/janfrode/blastdb/mpiblast.conf \ -d uniprot_sp_trembl_no_algae_virus.fasta -i \ ~janfrode/PBCV-1.fasta -p blastx -o ~/mpiblast.tab \ --concurrent=10 --removedb # Clean up: cd /work/janfrode rm -rf /work/janfrode/blastdb for node in `cat $PBS_NODEFILE | sort | uniq` ; do rm -rf /net/${node}/${LOCAL} done