Changeset 2492


Ignore:
Timestamp:
10/22/09 15:06:33 (15 years ago)
Author:
Mathieu Morlighem
Message:

Added elapsed time for all parallel solution

Location:
issm/trunk/src/c/parallel
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/parallel/diagnostic.cpp

    r2489 r2492  
    113113        _printf_("initialize results:\n");
    114114        results=new DataSet(ResultsEnum());
    115 
    116115        MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
    117116
  • issm/trunk/src/c/parallel/prognostic.cpp

    r2397 r2492  
    4646        Param*   param=NULL;
    4747
     48        /*time*/
     49        double   start, finish;
     50        double   start_core, finish_core;
     51        double   start_init, finish_init;
     52
    4853        MODULEBOOT();
    4954
     
    5257        #endif
    5358
     59        /*Initialize Petsc and get start time*/
    5460        PetscInitialize(&argc,&argv,(char *)0,""); 
     61        MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
    5562
    5663        /*Size and rank: */
     
    6471
    6572        /*Initialize model structure: */
     73        MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
    6674        model=new Model();
    6775
     
    98106        _printf_("initialize results:\n");
    99107        results=new DataSet(ResultsEnum());
     108        MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
    100109
    101110        /*are we running the solutoin sequence, or a qmu wrapper around it? : */
     
    104113                /*run prognostic analysis: */
    105114                _printf_("call computational core:\n");
     115                MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
    106116                prognostic_core(results,model,inputs);
     117                MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
    107118
    108119        }
     
    113124       
    114125                #ifdef _HAVE_DAKOTA_
     126                MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
    115127                Qmux(model,inputs,PrognosticAnalysisEnum(),NoneAnalysisEnum());
     128                MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
    116129                #else
    117130                throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!");
     
    140153        delete inputs;
    141154
     155        /*Get finish time and close*/
     156        MPI_Barrier(MPI_COMM_WORLD); finish = MPI_Wtime( );
     157        _printf_("\n   %-34s %f seconds  \n","Model initialization elapsed time:",finish_init-start_init);
     158        _printf_("   %-34s %f seconds  \n","Core solution elapsed time:",finish_core-start_core);
     159        _printf_("   %-34s %f seconds\n\n","Total elapsed time:",finish-start);
    142160        _printf_("closing MPI and Petsc\n");
    143161        PetscFinalize();
  • issm/trunk/src/c/parallel/steadystate.cpp

    r2397 r2492  
    4747        Param*  param=NULL;
    4848
     49        /*time*/
     50        double   start, finish;
     51        double   start_core, finish_core;
     52        double   start_init, finish_init;
     53
    4954        MODULEBOOT();
    5055
     
    5358        #endif
    5459
     60        /*Initialize Petsc and get start time*/
    5561        PetscInitialize(&argc,&argv,(char *)0,""); 
     62        MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
    5663
    5764        /*Size and rank: */
     
    6875
    6976        /*Initialize model structure: */
     77        MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
    7078        model=new Model();
    7179
     
    115123        _printf_("initialize results:\n");
    116124        results=new DataSet(ResultsEnum());
     125        MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
    117126
    118127        /*are we running the solution sequence, or a qmu wrapper around it? : */
     
    122131                        /*run diagnostic analysis: */
    123132                        _printf_("call computational core:\n");
     133                        MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
    124134                        steadystate_core(results,model,inputs);
     135                        MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
    125136
    126137                        /*Add analysis_type to results: */
     
    141152                        /*run control analysis: */
    142153                        _printf_("call computational core:\n");
     154                        MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
    143155                        control_core(results,model,inputs);
     156                        MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
    144157
    145158                        /*Add analysis_type and control_type to results: */
     
    163176
    164177                #ifdef _HAVE_DAKOTA_
     178                MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
    165179                Qmux(model,inputs,SteadystateAnalysisEnum(),NoneAnalysisEnum());
     180                MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
    166181                #else
    167182                throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!");
     
    183198        delete inputs;
    184199
     200        /*Get finish time and close*/
     201        MPI_Barrier(MPI_COMM_WORLD); finish = MPI_Wtime( );
     202        _printf_("\n   %-34s %f seconds  \n","Model initialization elapsed time:",finish_init-start_init);
     203        _printf_("   %-34s %f seconds  \n","Core solution elapsed time:",finish_core-start_core);
     204        _printf_("   %-34s %f seconds\n\n","Total elapsed time:",finish-start);
    185205        _printf_("closing MPI and Petsc\n");
    186206        PetscFinalize();
  • issm/trunk/src/c/parallel/thermal.cpp

    r2397 r2492  
    2626        int   qmu_analysis=0;
    2727        int   numberofnodes;
     28        int    waitonlock=0;
    2829
    2930        /*Model: */
     
    4445        double  yts;
    4546
    46         int    waitonlock=0;
     47        /*time*/
     48        double   start, finish;
     49        double   start_core, finish_core;
     50        double   start_init, finish_init;
    4751               
    4852        MODULEBOOT();
     
    5256        #endif
    5357
     58        /*Initialize Petsc and get start time*/
    5459        PetscInitialize(&argc,&argv,(char *)0,""); 
     60        MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
    5561
    5662        /*Size and rank: */
     
    6672
    6773        /*Initialize model structure: */
     74        MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
    6875        model=new Model();
    6976
     
    9299        _printf_("initialize results:\n");
    93100        results=new DataSet(ResultsEnum());
     101        MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
    94102
    95103        /*are we running the solutoin sequence, or a qmu wrapper around it? : */
     
    98106                /*run thermal analysis: */
    99107                _printf_("call computational core:\n");
     108                MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
    100109                thermal_core(results,model,inputs);
     110                MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
    101111
    102112                /*Add analysis_type to results: */
     
    115125       
    116126                #ifdef _HAVE_DAKOTA_
     127                MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
    117128                Qmux(model,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum());
     129                MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
    118130                #else
    119131                throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!");
     
    134146        delete inputs;
    135147
     148        /*Get finish time and close*/
     149        MPI_Barrier(MPI_COMM_WORLD); finish = MPI_Wtime( );
     150        _printf_("\n   %-34s %f seconds  \n","Model initialization elapsed time:",finish_init-start_init);
     151        _printf_("   %-34s %f seconds  \n","Core solution elapsed time:",finish_core-start_core);
     152        _printf_("   %-34s %f seconds\n\n","Total elapsed time:",finish-start);
    136153        _printf_("closing MPI and Petsc\n");
    137154        PetscFinalize();
  • issm/trunk/src/c/parallel/transient.cpp

    r2397 r2492  
    2525        int   numberofnodes;
    2626        int   qmu_analysis=0;
     27        int waitonlock=0;
    2728
    2829        /*Model: */
     
    3637       
    3738        ParameterInputs* inputs=NULL;
    38         int waitonlock=0;
    3939       
    4040        /*inputs: */
     
    4646        Param*  param=NULL;
    4747
     48        /*time*/
     49        double   start, finish;
     50        double   start_core, finish_core;
     51        double   start_init, finish_init;
     52
    4853        MODULEBOOT();
    4954
     
    5257        #endif
    5358
     59        /*Initialize Petsc and get start time*/
    5460        PetscInitialize(&argc,&argv,(char *)0,""); 
     61        MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
    5562
    5663        /*Size and rank: */
     
    6774
    6875        /*Initialize model structure: */
     76        MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
    6977        model=new Model();
    7078
     
    118126        _printf_("initialize results:\n");
    119127        results=new DataSet(ResultsEnum());
     128        MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
    120129
    121130        /*are we running the solution sequence, or a qmu wrapper around it? : */
     
    124133                /*run diagnostic analysis: */
    125134                _printf_("call computational core:\n");
     135                MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
    126136                transient_core(results,model,inputs);
     137                MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
    127138       
    128139                /*Add analysis_type to results: */
     
    141152
    142153                #ifdef _HAVE_DAKOTA_
     154                MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
    143155                Qmux(model,inputs,TransientAnalysisEnum(),NoneAnalysisEnum());
     156                MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
    144157                #else
    145158                throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!");
     
    159172        xfree((void**)&m_g);
    160173        xfree((void**)&a_g);
    161                
     174
     175        /*Get finish time and close*/
     176        MPI_Barrier(MPI_COMM_WORLD); finish = MPI_Wtime( );
     177        _printf_("\n   %-34s %f seconds  \n","Model initialization elapsed time:",finish_init-start_init);
     178        _printf_("   %-34s %f seconds  \n","Core solution elapsed time:",finish_core-start_core);
     179        _printf_("   %-34s %f seconds\n\n","Total elapsed time:",finish-start);
    162180        _printf_("closing MPI and Petsc\n");
    163181        PetscFinalize();
Note: See TracChangeset for help on using the changeset viewer.