| 1 | function ClusterScript(fid,cluster,name,queue,executionpath,codepath,analysis_type,np,time,mem_debug);
 | 
|---|
| 2 | %CLUSTERSCRIPT cluster specific queuing script
 | 
|---|
| 3 | %
 | 
|---|
| 4 | % Usage:
 | 
|---|
| 5 | %      ClusterScript(fid,name,queue,executionpath,codepath,analysis_type,np,time);
 | 
|---|
| 6 | %
 | 
|---|
| 7 | global ISSM_DIR;
 | 
|---|
| 8 | 
 | 
|---|
| 9 | 
 | 
|---|
| 10 | if strcmpi(cluster,'cosmos'),
 | 
|---|
| 11 | 
 | 
|---|
| 12 | 
 | 
|---|
| 13 | 
 | 
|---|
| 14 |         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%cosmos%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
|---|
| 15 |         fprintf(fid,'#!/bin/bash\n');
 | 
|---|
| 16 |         fprintf(fid,'#PBS -l select=%i:ncpus=1\n',np);
 | 
|---|
| 17 |         fprintf(fid,'#PBS -l walltime=%i\n',time*60); %walltime is in seconds.
 | 
|---|
| 18 |         fprintf(fid,'#PBS -q %s\n',queue);
 | 
|---|
| 19 |         fprintf(fid,'#PBS -o %s.outlog \n',name);
 | 
|---|
| 20 |         fprintf(fid,'#PBS -e %s.errlog \n',name);
 | 
|---|
| 21 |         fprintf(fid,'export PBS_O_WORKDIR=%s\n',executionpath);
 | 
|---|
| 22 |         fprintf(fid,'cd $PBS_O_WORKDIR\n');
 | 
|---|
| 23 |         fprintf(fid,'export OMP_NUM_THREADS=1\n');
 | 
|---|
| 24 |         fprintf(fid,'ulimit -s unlimited\n');
 | 
|---|
| 25 |         fprintf(fid,'ulimit -c 0\n');
 | 
|---|
| 26 |         fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',np,codepath,AnalysisTypeFromEnum(analysis_type),executionpath,name,name,name);
 | 
|---|
| 27 |         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
|---|
| 28 | 
 | 
|---|
| 29 | 
 | 
|---|
| 30 | 
 | 
|---|
| 31 | 
 | 
|---|
| 32 | elseif (strcmpi(cluster,'astrid') | strcmpi(cluster,'larsen') | strcmpi(cluster,'wilkes')),
 | 
|---|
| 33 | 
 | 
|---|
| 34 | 
 | 
|---|
| 35 | 
 | 
|---|
| 36 | 
 | 
|---|
| 37 |         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%astrid%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
|---|
| 38 |         fprintf(fid,'#!/bin/sh\n');
 | 
|---|
| 39 |         fprintf(fid,'rm -rf %s/%s.lock\n',executionpath,name);
 | 
|---|
| 40 |         if mem_debug==0,
 | 
|---|
| 41 |                 fprintf(fid,'mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',np,codepath,AnalysisTypeFromEnum(analysis_type),executionpath,name,name,name,name,name);
 | 
|---|
| 42 |         else
 | 
|---|
| 43 |                 fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',[ISSM_DIR '/externalpackages/valgrind/install/lib/libmpidebug.so'],np,[ISSM_DIR '/externalpackages/valgrind/install/bin/valgrind'],codepath,AnalysisTypeFromEnum(analysis_type),executionpath,name,name,name,name,name);
 | 
|---|
| 44 |         end
 | 
|---|
| 45 |         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
|---|
| 46 | 
 | 
|---|
| 47 | 
 | 
|---|
| 48 | 
 | 
|---|
| 49 | 
 | 
|---|
| 50 | 
 | 
|---|
| 51 | elseif (strcmpi(cluster,'gemini') | strcmpi(cluster,'pollux') | strcmpi(cluster,'castor')),
 | 
|---|
| 52 | 
 | 
|---|
| 53 |         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%gemini%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
|---|
| 54 | fprintf(fid,'#!/bin/sh\n');
 | 
|---|
| 55 |         fprintf(fid,'#PBS -l walltime=%i\n',time*60); %walltime is in seconds.
 | 
|---|
| 56 |         fprintf(fid,'#PBS -l ncpus=%i\n',np);
 | 
|---|
| 57 |         if ~isempty(queue),
 | 
|---|
| 58 |                 fprintf(fid,'#PBS -q %s\n',queue);
 | 
|---|
| 59 |         end
 | 
|---|
| 60 |         fprintf(fid,'#PBS -o %s.outlog \n',name);
 | 
|---|
| 61 |         fprintf(fid,'#PBS -e %s.errlog \n',name);
 | 
|---|
| 62 | 
 | 
|---|
| 63 |         fprintf(fid,'export PBS_O_WORKDIR=%s\n',executionpath);
 | 
|---|
| 64 |         fprintf(fid,'cd $PBS_O_WORKDIR\n');
 | 
|---|
| 65 |         fprintf(fid,'export OMP_NUM_THREADS=1\n');
 | 
|---|
| 66 |         fprintf(fid,'dplace -s1 -c0-%i mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',np-1,np,codepath,AnalysisTypeFromEnum(analysis_type),executionpath,name,name,name);
 | 
|---|
| 67 |         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
|---|
| 68 | 
 | 
|---|
| 69 | 
 | 
|---|
| 70 | 
 | 
|---|
| 71 | elseif strcmpi(cluster,'pfe'),
 | 
|---|
| 72 | 
 | 
|---|
| 73 | 
 | 
|---|
| 74 |         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%pfe%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
|---|
| 75 |         fprintf(fid,'#PBS -S /bin/bash\n');
 | 
|---|
| 76 |         fprintf(fid,'#PBS -N %s\n',name);
 | 
|---|
| 77 |         fprintf(fid,'#PBS -l select=%i:ncpus=8:mpiprocs=8\n',np/8);
 | 
|---|
| 78 |         fprintf(fid,'#PBS -l walltime=%i\n',time*60); %walltime is in seconds.
 | 
|---|
| 79 |         fprintf(fid,'#PBS -W group_list=s1010\n');
 | 
|---|
| 80 |         fprintf(fid,'#PBS -m e\n');
 | 
|---|
| 81 |         fprintf(fid,'#PBS -o %s.outlog \n',name);
 | 
|---|
| 82 |         fprintf(fid,'#PBS -e %s.errlog \n\n',name);
 | 
|---|
| 83 | 
 | 
|---|
| 84 |         fprintf(fid,'. /usr/share/modules/init/bash\n\n');
 | 
|---|
| 85 | 
 | 
|---|
| 86 |         fprintf(fid,'module load comp-intel/11.1.046\n');
 | 
|---|
| 87 |         fprintf(fid,'module load mpi/mpt.1.23.nas\n');
 | 
|---|
| 88 |         fprintf(fid,'module load math/intel_mkl_64_10.0.011\n\n');
 | 
|---|
| 89 | 
 | 
|---|
| 90 |         fprintf(fid,'export PATH="$PATH:."\n\n');
 | 
|---|
| 91 | 
 | 
|---|
| 92 |         fprintf(fid,'cd $PBS_O_WORKDIR\n\n');
 | 
|---|
| 93 | 
 | 
|---|
| 94 |         fprintf(fid,'mpiexec -verbose -np %i %s/%s.exe $PBS_O_WORKDIR %s.bin %s.outbin %s.lock',np,codepath,AnalysisTypeFromEnum(analysis_type),name,name,name);
 | 
|---|
| 95 |         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
|---|
| 96 | 
 | 
|---|
| 97 | 
 | 
|---|
| 98 | else
 | 
|---|
| 99 |         error(['ClusterScript error message: could not find settings for cluster ' cluster]);
 | 
|---|
| 100 | end
 | 
|---|