|
[求助]
USPEX使用错误
请问我使用uspex软件,出现下面的错误
{index exceeds array bounds.
error in submitjob_local (line 27)
jobnumber = b(1:end_marker(1)-1);
error in submitjob (line 23)
jobnumber = submitjob_local();
error in submitjobs_neb (line 26)
pop_struc.population(do_now).jobid = submitjob(do_now);
error in vcneb (line 14)
submitjobs_neb();
error in neb_start (line 49)
vcneb();
} 看了看说的submitjob_local。m文件%step 3: to get the jobid from the screen message
end_marker = findstr(b,'.');
jobnumber = b(1:end_marker(1)-1); 这也没有什么错误
看了看submitjob 文件,
function jobnumber = submitjob(ind_no)
global pop_struc
global org_struc
step = pop_struc.population(ind_no).step;
code = org_struc.abinitiocode(step);
dimension = org_struc.dimension;
jobnumber = 0;
if org_struc.abinitiocode(step) == 0 % no optimization at all! (used in order optimization)
jobnumber = 0.02;
elseif org_struc.platform == 0 %nonparallel
jobnumber=100;
[a,b]=unix(org_struc.commandexecutable{step});
if org_struc.numparallelcalcs > 1
disp([ 'individual ' num2str(ind_no) ' @ step ' num2str(step) ' is submitted']);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
elseif org_struc.platform == 1 %from user local submission
jobnumber = submitjob_local();
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
elseif org_struc.platform == 2 %from user remote submission
jobnumber = submitjob_remote(org_struc.remotefolder, pop_struc.population(ind_no).folder);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
elseif org_struc.platform == 3 %cfn
fp = fopen('myrun_cfn', 'w');
fprintf(fp, '#!/bin/sh\n');
fprintf(fp, '#pbs -l nodes=1:ppn=8,walltime=1:30:00\n');
fprintf(fp, '#pbs -n uspex\n');
fprintf(fp, '#pbs -j oe\n');
fprintf(fp, '#pbs -v \n');
fprintf(fp, 'cd ${pbs_o_workdir}\n');
fprintf(fp, '/home1/qzhu/source/mpi/bin/mpirun -np 8 /home1/qzhu/source/vasp.5.2/vasp > vasp.out\n');
fclose(fp);
[a,b]=unix(['qsub myrun_cfn'])
end_marker = findstr(b,'.');
jobnumber = b(1:end_marker(1)-1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
elseif org_struc.platform==4 %qsh
if code == 12
numproc = 1;
minproc = 1;
else
numproc = org_struc.numprocessors(step);
if numproc > 8
minproc = 8;
numproc = 8;
else
minproc = numproc;
end
end
totalnowpath = [org_struc.homepath '/calcfold' num2str(pop_struc.population(ind_no).folder)];
[a,b]=unix(['cat /dev/null > myrun_qsh']);
[a,b]=unix(['echo "#!/bin/sh" >> myrun_qsh']);
[a,b]=unix(['echo "#bsub -sp 60" >> myrun_qsh']);
[a,b]=unix(['echo "#bsub -q intel" >> myrun_qsh']);
[a,b]=unix(['echo "#bsub -a intelmpi" >> myrun_qsh']);
[a,b]=unix(['echo "#bsub -o output" >> myrun_qsh']);
[a,b]=unix(['echo "#bsub -r \"span[ptile=' num2str(numproc) ']\"" >> myrun_qsh']);
[a,b]=unix(['echo "#bsub -j uspex-',num2str(ind_no),'s',num2str(pop_struc.population(ind_no).step),'" >> myrun_qsh']);
[a,b]=unix(['echo "#bsub -w 06:00" >> myrun_qsh']);
[a,b]=unix(['echo "#bsub -n ' num2str(minproc) ' " >> myrun_qsh']);
if code == 1
[a,b]=unix(['echo "yhrun.lsf vasp-vdw" >> myrun_qsh']);
elseif code == 3
[a,b]=unix(['echo "gulp < input > output" >> myrun_qsh']);
elseif code == 4
[a,b]=unix(['echo "mpirun.lsf lammps < lammps.in " >> myrun_qsh']);
elseif code == 9
[a,b]=unix(['echo "mpirun.lsf aims.x > fhi_output" >> myrun_qsh']);
elseif code == 11
[a,b]=unix(['echo "runcastep.sh -np 8 cstp >> log" >> myrun_qsh']);
elseif code == 12
if dimension ~= -4
[a,b]=unix(['echo "bash ./tinker.sh" >> myrun_qsh']);
else
[a,b]=unix(['echo "python \$uspexpath/functionfolder/uspex/m400/random_protein/random_protein.py input 1 pseudo memory > output" >> myrun_qsh']);
end
elseif code == 13
[a,b]=unix(['echo "mopac2012.exe input.mop" >> myrun_qsh']);
elseif code == 14
[a,b]=unix(['echo "mpirun.lsf boltztrap boltztrap.def > boltztrap.output" >> myrun_qsh']);
end
[a,b]=unix(['bsub < myrun_qsh > job.info']);
[a,b] =unix([' cat job.info | grep job']);
disp(b);
start_marker=findstr(b,'<');
end_marker = findstr(b,'>');
jobnumber = b(start_marker(1)+1:end_marker(1)-1);
disp([ 'individual : ' num2str(ind_no) ' -- jobid :', num2str(jobnumber) ]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
elseif org_struc.platform==5 %qsh2
if code == 12
numproc = 1;
minproc = 1;
else
numproc = org_struc.numprocessors(step);
if numproc > 8
minproc = 8;
numproc = 8;
else
minproc = numproc;
end
end
totalnowpath = [org_struc.homepath '/calcfold' num2str(pop_struc.population(ind_no).folder)];
[nothing, nothing] = unix(['cat /dev/null > myrun_qsh']);
[nothing, nothing] = unix(['echo "#!/bin/sh" >> myrun_qsh']);
[nothing, nothing] = unix(['echo "#bsub -sp 60" >> myrun_qsh']);
[nothing, nothing] = unix(['echo "#bsub -q amd" >> myrun_qsh']);
[nothing, nothing] = unix(['echo "#bsub -a intelmpi" >> myrun_qsh']);
[nothing, nothing] = unix(['echo "#bsub -o output" >> myrun_qsh']);
[nothing, nothing] = unix(['echo "#bsub -r \"span[ptile=' num2str(numproc) ']\"" >> myrun_qsh']);
[nothing, nothing] = unix(['echo "#bsub -j uspex-',num2str(ind_no),'s',num2str(pop_struc.population(ind_no).step),'" >> myrun_qsh']);
[nothing, nothing] = unix(['echo "#bsub -w 06:00" >> myrun_qsh']);
[nothing, nothing] = unix(['echo "#bsub -n ' num2str(minproc) ' " >> myrun_qsh']);
if code == 1
[nothing, nothing] = unix(['echo "yhrun.lsf vasp-vdw" >> myrun_qsh']);
elseif code == 3
[nothing, nothing] = unix(['echo "gulp < input > output" >> myrun_qsh']);
elseif code == 4
[nothing, nothing] = unix(['echo "mpirun.lsf lammps < lammps.in > lammps.out " >> myrun_qsh']);
elseif code == 9
[nothing, nothing] = unix(['echo "mpirun.lsf aims.x > fhi_output" >> myrun_qsh']);
elseif code == 11
[a,b]=unix(['echo "runcastep.sh -np 8 cstp >> log" >> myrun_qsh']);
elseif code == 12
if dimension ~= -4
[a,b]=unix(['echo "bash ./tinker.sh" >> myrun_qsh']);
else
[a,b]=unix(['echo "python \$uspexpath/functionfolder/uspex/m400/random_protein/random_protein.py input 1 pseudo memory > output" >> myrun_qsh']);
end
elseif code == 13
[a,b]=unix(['echo "mopac2012.exe input.mop" >> myrun_qsh']);
elseif code == 14
[a,b]=unix(['echo "mpirun.lsf boltztrap boltztrap.def > boltztrap.output" >> myrun_qsh']);
end
[nothing, nothing] = unix(['bsub < myrun_qsh > job.info']);
[a,b] =unix([' cat job.info | grep job']);
disp(b);
start_marker=findstr(b,'<');
end_marker = findstr(b,'>');
jobnumber = b(start_marker(1)+1:end_marker(1)-1);
disp([ 'individual : ' num2str(ind_no) ' -- jobid :', num2str(jobnumber) ]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
elseif org_struc.platform ==6 %xservde
[nothing, nothing] = unix('cat /dev/null > job');
[nothing, nothing] = unix('echo "#\$ -s /bin/bash" > job');
[nothing, nothing] = unix('echo "#\$ -n r30" >> job');
[nothing, nothing] = unix('echo "#\$ -cwd" >> job');
[nothing, nothing] = unix('echo "#\$ -l arch=darwin-x86" >> job');
[nothing, nothing] = unix(['echo "#\$ -pe openmpi ' num2str(numprocessors) '" >> job']);
[nothing, nothing] = unix('echo ". ~/.bashrc" >> job');
[nothing, nothing] = unix('echo "hostname" >> job');
[nothing, nothing] = unix(['echo "' org_struc.commandexecutable{step} '" >> job']);
% qsub script | awk '{print $3}'
[a,v] = unix('qsub job');
start_marker = 1; % format: your job 248264 ("looki" has been submitted
end_marker = findstr(v,')');
jobnumber = v(10:end_marker(1)-2)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
elseif org_struc.platform ==7 %mipt-cluster
totalnowpath = [org_struc.homepath '/calcfold' num2str(pop_struc.population(ind_no).folder)];
[nothing, nothing] = unix(['cat /dev/null > myrun_mipt']);
[nothing, nothing] = unix(['echo "#!/bin/sh" >> myrun_mipt']);
[nothing, nothing] = unix(['echo "#sbatch -o out" >> myrun_mipt']);
[nothing, nothing] = unix(['echo "#sbatch -p work " >> myrun_mipt']);
[nothing, nothing] = unix(['echo "#sbatch -j uspex-' num2str(pop_struc.generation),'i',num2str(ind_no),'s',num2str(pop_struc.population(ind_no).step),'" >> myrun_mipt']);
[nothing, nothing] = unix(['echo "#sbatch -t 06:00:00" >> myrun_mipt']);
[nothing, nothing] = unix(['echo "#sbatch -n 1" >> myrun_mipt']);
[nothing, nothing] = unix(['echo cd ' totalnowpath ' >> myrun_mipt']);
[nothing, nothing] = unix(['echo mpdboot >>myrun_mipt']);
[nothing, nothing] = unix(['echo "mpirun -np 16 vasp-vdw> log" >> myrun_mipt']);
[nothing, nothing] = unix(['echo mpdallexit >>myrun_mipt']);
ind_no
[a,b] = unix(['sbatch myrun_mipt '] );
start_marker=findstr(b,'job ');
jobnumber = b(start_marker(1)+4:end-1);
disp([ 'individual : ' num2str(ind_no) ' -- jobid :', num2str(jobnumber) ]);
elseif org_struc.platform ==8 %npu
totalnowpath = [org_struc.homepath '/calcfold' num2str(pop_struc.population(ind_no).folder)];
cd (totalnowpath)
%step 1: to prepare the job script which is required by your supercomputer
fp = fopen('jobrun', 'w');
fprintf(fp, '#!/bin/sh \n');
fprintf(fp, '#pbs -n uspex \n');
fprintf(fp, '#pbs -l nodes=1:ppn=8 \n');
fprintf(fp, '#pbs -l walltime=6:00:00 \n');
fprintf(fp, '#pbs -q batch \n');
fprintf(fp, '#pbs -v \n');
fprintf(fp, '#pbs -s /bin/bash \n');
fprintf(fp, 'source /export/opensource/vasp.5.2/vaspenvset.sh \n');
fprintf(fp, 'exec=~/bin/vasp53 \n');
fprintf(fp, 'mpi_home=/export/compiler/intel/impi/4.1.0.024 \n');
fprintf(fp, 'np=`wc -l < $pbs_nodefile` \n');
fprintf(fp, ['cd ' totalnowpath ' \n']);
fprintf(fp, '$mpi_home/bin/mpirun -machinefile $pbs_nodefile -np $np $exec > out \n');
fclose(fp);
[a,b]=unix(['qsub jobrun']);
end_marker = findstr(b,'.');
jobnumber = b(1:end_marker(1)-1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
elseif org_struc.platform == 9 % cfn workshop 2014
fp = fopen('myrun_cfn', 'w');
fprintf(fp, '#!/bin/sh\n');
fprintf(fp, '#pbs -l nodes=1:ppn=8,walltime=1:30:00 -q cfn_workshop\n');
fprintf(fp, ['#pbs -n uspex' num2str(ind_no), 's' ,num2str(pop_struc.population(ind_no).step) '\n']);
fprintf(fp, '#pbs -j oe\n');
fprintf(fp, '#pbs -v \n');
fprintf(fp, 'ulimit -s unlimited\n');
fprintf(fp, 'source /opt/intel/2013/bin/compilervars.sh intel64\n');
fprintf(fp, 'cd ${pbs_o_workdir}\n');
fprintf(fp, '/software/mpi/openmpi/1.8.1-intel/bin/mpirun -np 8 /software/workshop14/bin/vaspp > vasp.out\n');
fclose(fp);
[a,b]=unix(['qsub myrun_cfn'])
end_marker = findstr(b,'.');
jobnumber = b(1:end_marker(1)-1);
elseif org_struc.platform == 10 % unn supercomputer (supz)
totalnowpath = [org_struc.homepath '/calcfold' num2str(pop_struc.population(ind_no).folder)];
jobname = [num2str(pop_struc.generation),'i',num2str(ind_no),'s',num2str(pop_struc.population(ind_no).step)];
unix(['cat /dev/null > myrun_unn']);
unix(['echo "#!/bin/sh" >> myrun_unn']);
unix(['echo "#sbatch -o out" >> myrun_unn']);
unix(['echo "#sbatch -p all " >> myrun_unn']);
unix(['echo "#sbatch -j ' jobname '-uspex" >> myrun_unn']);
unix(['echo "#sbatch -t 06:00:00" >> myrun_unn']);
unix(['echo "#sbatch -n 1" >> myrun_unn']);
unix(['echo "#sbatch -n 16" >> myrun_unn']);
unix(['echo "" >> myrun_unn']);
unix(['echo cd ' totalnowpath ' >> myrun_unn']);
unix(['echo "srun vasp > log" >> myrun_unn']);
[a,b] = unix(['sbatch myrun_unn '] );
start_marker=findstr(b,'job ');
jobnumber = b(start_marker(1)+4:end-1);
disp([ 'individual : ' num2str(ind_no) ' -- jobid :', num2str(jobnumber) ]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end
if isempty(jobnumber)
jobnumber = 0;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if org_struc.platform > 0
cd([org_struc.homepath,'/calcfoldtemp']);
id=['.job-gen',num2str(pop_struc.generation),'ind',num2str(ind_no),'step',num2str(pop_struc.population(ind_no).step),'fold',num2str(pop_struc.population(ind_no).folder)];
[a,b]=unix(['touch ' num2str(jobnumber), id]);
id=['generation ' num2str(pop_struc.generation), ' step ' num2str(num2str(pop_struc.population(ind_no).step)) ' of structure ' num2str(ind_no),' at calcfold' num2str(pop_struc.population(ind_no).folder) ' : jobid ' num2str(jobnumber) ];
[a,b]=unix(['echo -n "' id,' submitted " >> jobs.history ' ]);
[a,b]=unix(['echo -e `date +"%b%d-%t"` >> jobs.history ' ]);
end
太多了,没有看懂
submitjobs_neb 这个文件我计算中根本没有看到这个文件
不知道怎么处理,谢谢做过的人交流一下! |
|