source: issm/trunk/src/m/classes/public/queue/ClusterScript.m@ 5546

Last change on this file since 5546 was 5546, checked in by Eric.Larour, 15 years ago

New runtime name, which is model name + PID + date. Allows multiple runs on same model

File size: 3.8 KB
Line 
1function 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%
7global ISSM_DIR;
8
9if strcmpi(cluster,'cosmos'), % {{{1
10
11 fprintf(fid,'#!/bin/bash\n');
12 fprintf(fid,'#PBS -l select=%i:ncpus=1\n',np);
13 fprintf(fid,'#PBS -N %s\n',name);
14 fprintf(fid,'#PBS -l walltime=%i\n',time*60); %walltime is in seconds.
15 fprintf(fid,'#PBS -q %s\n',queue);
16 fprintf(fid,'#PBS -o %s.outlog \n',name);
17 fprintf(fid,'#PBS -e %s.errlog \n',name);
18 fprintf(fid,'export PBS_O_WORKDIR=%s\n',executionpath);
19 fprintf(fid,'cd $PBS_O_WORKDIR\n');
20 fprintf(fid,'export OMP_NUM_THREADS=1\n');
21 fprintf(fid,'ulimit -s unlimited\n');
22 fprintf(fid,'ulimit -c 0\n');
23 fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpirun -np %i %s/issm.exe %s %s %s.bin %s.outbin %s.lock',np,codepath,EnumToString(analysis_type),executionpath,name,name,name);
24
25 % }}}
26elseif (strcmpi(cluster,'astrid') | strcmpi(cluster,'larsen') | strcmpi(cluster,'wilkes')), % {{{
27
28 fprintf(fid,'#!/bin/sh\n');
29 if mem_debug==0,
30 fprintf(fid,'mpirun -np %i %s/issm.exe %s %s %s.bin %s.outbin %s.lock 2> %s.errlog >%s.outlog & ',np,codepath,EnumToString(analysis_type),executionpath,name,name,name,name,name);
31 else
32 %fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full --gen-suppressions=all --suppressions=%s %s/issm.exe %s %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'],[ISSM_DIR '/externalpackages/valgrind/issm.supp'], codepath,EnumToString(analysis_type),executionpath,name,name,name,name,name);
33 fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full --suppressions=%s %s/issm.exe %s %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'],[ISSM_DIR '/externalpackages/valgrind/issm.supp'], codepath,EnumToString(analysis_type),executionpath,name,name,name,name,name);
34 end
35
36 % }}}
37elseif (strcmpi(cluster,'gemini') | strcmpi(cluster,'pollux') | strcmpi(cluster,'castor')), % {{{1
38
39 fprintf(fid,'#!/bin/sh\n');
40 fprintf(fid,'#PBS -l walltime=%i\n',time*60); %walltime is in seconds.
41 fprintf(fid,'#PBS -N %s\n',name);
42 fprintf(fid,'#PBS -l ncpus=%i\n',np);
43 if ~isempty(queue),
44 fprintf(fid,'#PBS -q %s\n',queue);
45 end
46 fprintf(fid,'#PBS -o %s.outlog \n',name);
47 fprintf(fid,'#PBS -e %s.errlog \n',name);
48
49 fprintf(fid,'export PBS_O_WORKDIR=%s\n',executionpath);
50 fprintf(fid,'cd $PBS_O_WORKDIR\n');
51 fprintf(fid,'export OMP_NUM_THREADS=1\n');
52 fprintf(fid,'dplace -s1 -c0-%i mpirun -np %i %s/issm.exe %s %s %s.bin %s.outbin %s.lock',np-1,np,codepath,EnumToString(analysis_type),executionpath,name,name,name);
53
54 % }}}
55elseif strcmpi(cluster,'pfe'), % {{{1
56
57 fprintf(fid,'#PBS -S /bin/bash\n');
58 fprintf(fid,'#PBS -N %s\n',name);
59 fprintf(fid,'#PBS -l select=%i:ncpus=8:mpiprocs=8\n',np/8);
60 fprintf(fid,'#PBS -l walltime=%i\n',time*60); %walltime is in seconds.
61 fprintf(fid,'#PBS -W group_list=s1010\n');
62 fprintf(fid,'#PBS -m e\n');
63 fprintf(fid,'#PBS -o %s.outlog \n',name);
64 fprintf(fid,'#PBS -e %s.errlog \n\n',name);
65
66 fprintf(fid,'. /usr/share/modules/init/bash\n\n');
67
68 fprintf(fid,'module load comp-intel/11.1.046\n');
69 fprintf(fid,'module load mpi/mpt.1.25\n');
70 fprintf(fid,'module load math/intel_mkl_64_10.0.011\n\n');
71
72 fprintf(fid,'export PATH="$PATH:."\n\n');
73
74 fprintf(fid,'cd $PBS_O_WORKDIR\n\n');
75
76 fprintf(fid,'mpiexec -verbose -np %i %s/issm.exe %s $PBS_O_WORKDIR %s.bin %s.outbin %s.lock',np,codepath,EnumToString(analysis_type),name,name,name);
77
78 % }}}
79else % {{{1
80 error(['ClusterScript error message: could not find settings for cluster ' cluster]);
81end
82% }}}
Note: See TracBrowser for help on using the repository browser.