Changeset 20784


Ignore:
Timestamp:
06/20/16 23:46:17 (9 years ago)
Author:
bdef
Message:

Add and update UiB clusters

Location:
issm/trunk-jpl/src/m/classes/clusters
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/clusters/vilje.m

    r20316 r20784  
    99    properties (SetAccess=public) 
    1010                 % {{{
    11                  name           = 'vilje';
     11     name           = 'vilje';
    1212                 login          = '';
    1313                 numnodes       = 2;
    1414                 cpuspernode    = 32;
    15                  procspernodes  = 16;
    16                  mem            = 28;
     15     procspernodes  = 16;
     16     mem            = 28;
    1717                 queue          = 'workq';
    1818                 time           = 2*60;
     
    2020                 executionpath  = '';
    2121                 interactive    = 0;
    22                  port           = [];
    23                  accountname    = '';
    24 
     22     port           = [];
     23     accountname    = '';
    2524
    2625         end
     
    4443                         disp(sprintf('    name: %s',cluster.name));
    4544                         disp(sprintf('    login: %s',cluster.login));
    46                          disp(sprintf('    accountname: %s',cluster.accountname));
     45       disp(sprintf('    accountname: %s',cluster.accountname));
    4746                         disp(sprintf('    numnodes: %i',cluster.numnodes));
    4847                         disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
    49                          disp(sprintf('    np: %i', ...
    50                                       cluster.cpuspernode*cluster.numnodes));
     48                         disp(sprintf('    np: %i', cluster.cpuspernode*cluster.numnodes));
    5149                         disp(sprintf('    procspernodes: %i',cluster.procspernodes));
    5250                         disp(sprintf('    queue: %s',cluster.queue));
     
    6866                         %Miscelaneous
    6967                         if isempty(cluster.login), md = checkmessage(md,'login empty'); end
    70                          if isempty(cluster.accountname), md = checkmessage(md,'accountname empty'); end
     68       if isempty(cluster.accountname), md = checkmessage(md,'accountname empty'); end
    7169                         if isempty(cluster.codepath), md = checkmessage(md,'codepath empty'); end
    7270                         if isempty(cluster.executionpath), md = checkmessage(md,'executionpath empty'); end
     
    8684                         fprintf(fid,'#PBS -S /bin/bash\n');
    8785                         fprintf(fid,'#PBS -N %s\n',modelname);
    88                          fprintf(fid,'#PBS -l select=%i:ncpus=%i:mpiprocs=%i\n',cluster.numnodes,cluster.cpuspernode,16);
    89                          fprintf(fid,'#PBS -l walltime=%s\n',cluster.time); %walltime is in seconds.
    90                          fprintf(fid,'#PBS -A %s\n',cluster.accountname);
    91 %                        fprintf(fid,'#PBS -q %s \n',cluster.queue);
    92 %                        fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
    93 %                        fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
     86       fprintf(fid,'#PBS -l select=%i:ncpus=%i:mpiprocs=%i\n',cluster.numnodes,cluster.cpuspernode,16);
     87       fprintf(fid,'#PBS -l walltime=%s\n',cluster.time); %walltime is in seconds.
     88       fprintf(fid,'#PBS -A %s\n',cluster.accountname);
    9489                         fprintf(fid,'#PBS -o %s.outlog \n',modelname);
    9590                         fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
     
    118113
    119114                         %compute number of processors
    120                          cluster.np=cluster.numnodes*cluster.cpuspernode;
    121 
    122                          
    123                          shortname = substring(modelname,1,min(12,length(modelname)));
     115                         cluster.np=cluster.numnodes*cluster.cpuspernode;                     
     116       shortname = substring(modelname,1,min(12,length(modelname)));
    124117
    125118                         %write queuing script
     
    128121                         fprintf(fid,'#PBS -N %s\n',shortname);
    129122                         fprintf(fid,'#PBS -q %s \n',cluster.queue);
    130              fprintf(fid,'#PBS -l select=%i:ncpus=%i:mpiprocs=%i\n',cluster.numnodes,cluster.cpuspernode,cluster.procspernodes);
     123       fprintf(fid,'#PBS -l select=%i:ncpus=%i:mpiprocs=%i\n',cluster.numnodes,cluster.cpuspernode,cluster.procspernodes);
    131124                         fprintf(fid,'#PBS -l walltime=%s\n',duration(0,cluster.time,0)); %walltime is in minutes.
    132                          fprintf(fid,'#PBS -A %s\n',cluster.accountname);
     125       fprintf(fid,'#PBS -A %s\n',cluster.accountname);
    133126                         fprintf(fid,'#PBS -o %s.outlog \n',[cluster.executionpath '/' dirname '/' modelname]);
    134127                         fprintf(fid,'#PBS -e %s.errlog \n\n',[cluster.executionpath '/' dirname '/' modelname]);
    135128                         fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
    136129                         fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
    137                          fprintf(fid,'cd %s/%s\n\n', ...
    138                                  cluster.executionpath,dirname);
    139                          fprintf(fid,'mpiexec -np %i %s/%s %s %s %s\n',cluster.np,cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
     130                         fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,dirname);
     131       fprintf(fid,'mpiexec -np %i %s/%s %s %s %s\n',cluster.np,cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
    140132
    141133                         if ~io_gather, %concatenate the output files:
     
    167159                                 compressstring = [compressstring ' ' filelist{i}];
    168160                         end
    169                          
    170161                         system(compressstring);
    171 
    172162                         disp('uploading input file and queueing script');
    173                        
    174163                         directory=cluster.executionpath;
    175 
    176                          issmbbftpout(cluster.name,directory, ...
    177                                       cluster.login,cluster.port,cluster.numstreams,{[dirname '.tar.gz']});
     164                         issmbbftpout(cluster.name,directory,cluster.login,cluster.port,cluster.numstreams,{[dirname '.tar.gz']});
    178165
    179166                 end
     
    188175                         issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
    189176                 end %}}}
     177
    190178                 function Download(cluster,dirname,filelist)% {{{
    191179
  • issm/trunk-jpl/src/m/classes/clusters/vilje.py

    r20301 r20784  
    2727                self.numnodes       = 2
    2828                self.cpuspernode    = 32
    29                 self.procspernodes  = 16
    30                 self.mem            = 28
     29                self.procspernodes  = 16
     30                self.mem            = 28
    3131                self.queue          = 'workq'
    3232                self.time           = 2*60
     
    3434                self.executionpath  = ''
    3535                self.interactive    = 0
    36                 self.port           = []
    37                 self.accountname    = ''
     36                self.port           = []
     37                self.accountname    = ''
    3838
    3939                #use provided options to change fields
     
    9595
    9696                #write queuing script
    97                 shortname=modelname[0:min(12,len(modelname))]
     97                shortname=modelname[0:min(12,len(modelname))]
    9898                fid=open(modelname+'.queue','w')
    9999                fid.write('#PBS -S /bin/bash\n')
     
    107107                fid.write('#PBS -o %s/%s/%s.outlog \n' % (self.executionpath,dirname,modelname))
    108108                fid.write('#PBS -e %s/%s/%s.errlog \n\n' % (self.executionpath,dirname,modelname))
    109                 fid.write('export PATH="$PATH:."\n\n')
    110                 fid.write('export MPI_GROUP_MAX=64\n\n')
    111109                fid.write('export ISSM_DIR="%s/../"\n' % self.codepath)
    112110                fid.write('source $ISSM_DIR/etc/environment.sh\n')
     
    117115                # }}}
    118116        def UploadQueueJob(self,modelname,dirname,filelist):
    119                 # {{{
     117                # {{{
    120118
    121119                #compress the files into one zip.
    122120                compressstring='tar -zcf %s.tar.gz ' % dirname
    123121                for file in filelist:
    124                         compressstring += ' %s' % file
     122                        compressstring += ' %s' % file
    125123                subprocess.call(compressstring,shell=True)
    126124
     
    130128                # }}}
    131129        def LaunchQueueJob(self,modelname,dirname,filelist,restart,batch):
    132                 # {{{
     130                # {{{
    133131
    134132                print 'launching solution sequence on remote cluster'
Note: See TracChangeset for help on using the changeset viewer.