Changeset 9561


Ignore:
Timestamp:
09/01/11 10:30:21 (14 years ago)
Author:
Mathieu Morlighem
Message:

Big change for parallel runs: only the model name is provided. outbin petsc and lock filnames are generated using the modelname (less variables and clearer):

Location:
issm/trunk/src
Files:
1 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/shared/Numerics/PetscOptionsFromAnalysis.cpp

    r9320 r9561  
    8181
    8282
    83         /*Free ressources:{{{1*/
     83        /*Free ressources*/
    8484        xfree((void**)&analyses);
    8585        for(i=0;i<numanalyses;i++){
     
    8888        }
    8989        xfree((void**)&strings);
    90         /*}}}*/
    9190
    9291}
  • issm/trunk/src/c/solutions/issm.cpp

    r8926 r9561  
    55#include "./issm.h"
    66
    7 int main(int argc,char* *argv){
     7int main(int argc,char  **argv){
    88
    99        /*MPI: */
     
    1414        FILE *output_fid       = NULL;
    1515        FILE *petscoptionsfid  = NULL;
    16         char *lockname         = NULL;
    1716        bool  qmu_analysis     = false;
    1817        bool  control_analysis = false;
     
    2726        int  numanalyses;
    2827        int  solution_type;
     28
     29        /*File names*/
     30        char *modelname      = NULL;
     31        char *lockfilename   = NULL;
     32        char *binfilename    = NULL;
     33        char *outbinfilename = NULL;
     34        char *petscfilename  = NULL;
    2935
    3036        /*time*/
     
    4854        MPI_Comm_size(MPI_COMM_WORLD,&num_procs);
    4955
    50         /*First check number of inputs*/
     56        /*First process inputs*/
    5157        _printf_(true,"Launching solution sequence\n");
    5258        if(argc<2)_error_("Usage error: no solution requested");
    5359        solution_type=StringToEnumx(argv[1]);
    54         lockname=argv[6];
     60        if(argc<3)_error_("Usage error: missing model name");
     61        modelname=argv[3];
     62        binfilename    = (char*)xmalloc((strlen(modelname)+strlen(".bin")   +1)*sizeof(char)); sprintf(binfilename,   "%s%s",modelname,".bin");
     63        outbinfilename = (char*)xmalloc((strlen(modelname)+strlen(".outbin")+1)*sizeof(char)); sprintf(outbinfilename,"%s%s",modelname,".outbin");
     64        petscfilename  = (char*)xmalloc((strlen(modelname)+strlen(".petsc") +1)*sizeof(char)); sprintf(petscfilename, "%s%s",modelname,".petsc");
     65        lockfilename   = (char*)xmalloc((strlen(modelname)+strlen(".lock")  +1)*sizeof(char)); sprintf(lockfilename,  "%s%s",modelname,".lock");
    5566
    5667        MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
     
    6172
    6273        /*Create femmodel, using input file: */
    63         femmodel=new FemModel(argv[3] /*input*/,argv[5] /*output*/,solution_type,analyses,numanalyses);
     74        femmodel=new FemModel(binfilename,outbinfilename,solution_type,analyses,numanalyses);
    6475
    6576        /*Open output file once for all*/
    66         output_fid=pfopen(argv[5],"wb");
     77        output_fid=pfopen(outbinfilename,"wb");
    6778        femmodel->parameters->SetParam(output_fid,OutputFilePointerEnum);
    6879
    6980        /*add petsc options to parameters: */
    70         petscoptionsfid=pfopen(argv[4],"r");
     81        petscoptionsfid=pfopen(petscfilename,"r");
    7182        ParsePetscOptionsx(femmodel->parameters,petscoptionsfid);
    72         pfclose(petscoptionsfid,argv[4]);
     83        pfclose(petscoptionsfid,petscfilename);
    7384
    7485        /*get parameters: */
     
    114125
    115126        /*Close output and petsc options file and write lock file if requested*/
    116         pfclose(output_fid,argv[5]);
     127        pfclose(output_fid,lockfilename);
    117128        if (waitonlock>0){
    118129                _printf_(true,"write lock file:\n");
    119                 WriteLockFile(lockname);
     130                WriteLockFile(lockfilename);
    120131        }
    121132
    122133        /*Free ressources */
    123134        xfree((void**)&analyses);
     135        xfree((void**)&lockfilename);
     136        xfree((void**)&binfilename);
     137        xfree((void**)&outbinfilename);
     138        xfree((void**)&petscfilename);
    124139        delete femmodel;
    125140
  • issm/trunk/src/m/classes/clusters/castor.m

    r8587 r9561  
    7878                         fprintf(fid,'cd $PBS_O_WORKDIR\n');
    7979                         fprintf(fid,'export OMP_NUM_THREADS=1\n');
    80                          fprintf(fid,'dplace -s1 -c0-%i mpiexec -np %i %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock',cluster.np-1,cluster.np,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname,modelname,modelname,modelname);
     80                         fprintf(fid,'dplace -s1 -c0-%i mpiexec -np %i %s/issm.exe %s %s %s',cluster.np-1,cluster.np,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname);
    8181
    8282                         %close file
  • issm/trunk/src/m/classes/clusters/cosmos.m

    r8587 r9561  
    7777                         fprintf(fid,'ulimit -s unlimited\n');
    7878                         fprintf(fid,'ulimit -c 0\n');
    79                          fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpiexec -np %i %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock',cluster.np,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname,modelname,modelname,modelname);
     79                         fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpiexec -np %i %s/issm.exe %s %s %s',cluster.np,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname);
    8080
    8181                         %close file
  • issm/trunk/src/m/classes/clusters/gemini.m

    r8587 r9561  
    7878                         fprintf(fid,'cd $PBS_O_WORKDIR\n');
    7979                         fprintf(fid,'export OMP_NUM_THREADS=1\n');
    80                          fprintf(fid,'dplace -s1 -c0-%i mpiexec -np %i %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock',cluster.np-1,cluster.np,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname,modelname,modelname,modelname);
     80                         fprintf(fid,'dplace -s1 -c0-%i mpiexec -np %i %s/issm.exe %s %s %s',cluster.np-1,cluster.np,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname);
    8181
    8282                         %close file
  • issm/trunk/src/m/classes/clusters/generic.m

    r8587 r9561  
    8383                         if mem_debug==0,
    8484                                 if cluster.interactive
    85                                          fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock ',...
    86                                                  cluster.np,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname,modelname,modelname,modelname);
     85                                         fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s ',...
     86                                                 cluster.np,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname);
    8787                                 else
    88                                          fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock 2> %s.errlog >%s.outlog ',...
    89                                                  cluster.np,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname,modelname,modelname,modelname,modelname,modelname);
     88                                         fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',...
     89                                                 cluster.np,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname,modelname,modelname);
    9090                                 end
    9191                         else
    92                                  %fprintf(fid,'LD_PRELOAD=%s mpiexec -np %i %s --leak-check=full --gen-suppressions=all --suppressions=%s %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock  2> %s.errlog >%s.outlog ',cluster.valgrindlib,cluster.np,cluster.valgrind,cluster.valgrindsup,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname,modelname,modelname,modelname,modelname,modelname);
    93                                  fprintf(fid,'LD_PRELOAD=%s mpiexec -np %i %s --leak-check=full --suppressions=%s %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock 2> %s.errlog >%s.outlog ',...
    94                                          cluster.valgrindlib,cluster.np,cluster.valgrind,cluster.valgrindsup, cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname,modelname,modelname,modelname,modelname,modelname);
     92                                 %fprintf(fid,'LD_PRELOAD=%s mpiexec -np %i %s --leak-check=full --gen-suppressions=all --suppressions=%s %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',cluster.valgrindlib,cluster.np,cluster.valgrind,cluster.valgrindsup,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname,modelname,modelname);
     93                                 fprintf(fid,'LD_PRELOAD=%s mpiexec -np %i %s --leak-check=full --suppressions=%s %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',...
     94                                         cluster.valgrindlib,cluster.np,cluster.valgrind,cluster.valgrindsup, cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname,modelname,modelname);
    9595                         end
    9696
  • issm/trunk/src/m/classes/clusters/pfe.m

    r9104 r9561  
    138138                         fprintf(fid,'cd $PBS_O_WORKDIR\n\n');
    139139
    140                          fprintf(fid,'mpiexec -verbose -np %i %s/issm.exe %s $PBS_O_WORKDIR %s.bin %s.petsc %s.outbin %s.lock\n',cluster.np,cluster.codepath,EnumToString(solution_type),modelname,modelname,modelname,modelname);
     140                         fprintf(fid,'mpiexec -verbose -np %i %s/issm.exe %s $PBS_O_WORKDIR %s\n',cluster.np,cluster.codepath,EnumToString(solution_type),modelname);
    141141
    142142                         if ~md.io_gather,
     
    147147                         %close file
    148148                         fclose(fid);
    149 
    150149
    151150                         %in interactive mode, create a run file, and errlog and outlog file
     
    153152                                 fid=fopen([modelname '.run'],'w');
    154153                                 if ~mem_debug,
    155                                          fprintf(fid,'mpiexec -verbose -np %i %s/issm.exe %s $PBS_O_WORKDIR %s.bin %s.petsc %s.outbin %s.lock\n',cluster.np,cluster.codepath,EnumToString(solution_type),modelname,modelname,modelname,modelname);
    156                                  else
    157                                          fprintf(fid,'mpiexec -verbose -np %i valgrind --leak-check=full %s/issm.exe %s $PBS_O_WORKDIR %s.bin %s.petsc %s.outbin %s.lock\n',cluster.np,cluster.codepath,EnumToString(solution_type),modelname,modelname,modelname,modelname);
     154                                         fprintf(fid,'mpiexec -verbose -np %i %s/issm.exe %s $PBS_O_WORKDIR %s\n',cluster.np,cluster.codepath,EnumToString(solution_type),modelname);
     155                                 else
     156                                         fprintf(fid,'mpiexec -verbose -np %i valgrind --leak-check=full %s/issm.exe %s $PBS_O_WORKDIR %s\n',cluster.np,cluster.codepath,EnumToString(solution_type),modelname);
    158157                                 end
    159158
  • issm/trunk/src/m/classes/clusters/pollux.m

    r8587 r9561  
    7878                         fprintf(fid,'cd $PBS_O_WORKDIR\n');
    7979                         fprintf(fid,'export OMP_NUM_THREADS=1\n');
    80                          fprintf(fid,'dplace -s1 -c0-%i mpiexec -np %i %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock',cluster.np-1,cluster.np,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname,modelname,modelname,modelname);
     80                         fprintf(fid,'dplace -s1 -c0-%i mpiexec -np %i %s/issm.exe %s %s %s',cluster.np-1,cluster.np,cluster.codepath,EnumToString(solution_type),cluster.executionpath,modelname);
    8181
    8282                         %close file
  • issm/trunk/src/m/classes/model/model.m

    r9558 r9561  
    204204                 output_frequency               = modelfield('default',0,'marshall',true,'format','Integer');
    205205                 results_on_vertices            = modelfield('default',0,'marshall',true,'format','Boolean');
    206                  outputfilename                 = modelfield('default','','marshall',true,'format','String');
    207206                 results                        = modelfield('default',struct(),'marshall',false);
    208207                 vx                             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
  • issm/trunk/src/m/model/presolve.m

    r9558 r9561  
    44%   Usage:
    55%      md=presolve(md)
    6 
    7 %deal with outputfilename and inputfilename
    8 md.outputfilename=[md.name '.outbin'];
    96
    107%deal with rifts.
  • issm/trunk/src/m/model/solve.m

    r9556 r9561  
    6060marshall(md);
    6161
    62 
    6362%write a template file for issm to use, in parallel
    6463PetscOptions2PetscFile(md.petscoptions,[md.name '.petsc']);
Note: See TracChangeset for help on using the changeset viewer.