Changeset 16266


Ignore:
Timestamp:
09/27/13 12:45:50 (11 years ago)
Author:
utke
Message:

CHG partition is not even - we better show the info collected from all
ranks

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/ad_core.cpp

    r16262 r16266  
    6161                        tapestats(my_rank,tape_stats); //reading of tape statistics
    6262                        if(VerboseAutodiff()){
    63                                 int offset=50;
    64                                 _printf0_("   ADOLC statistics: \n");
    65                                 _printf0_("     "<<setw(offset)<<left<<"#independents: " <<tape_stats[NUM_INDEPENDENTS] << "\n");
    66                                 _printf0_("     "<<setw(offset)<<left<<"#dependents: " <<tape_stats[NUM_DEPENDENTS] << "\n");
    67                                 _printf0_("     "<<setw(offset)<<left<<"max #live active variables: " <<tape_stats[NUM_MAX_LIVES] << "\n");
    68                                 _printf0_("     operations: \n");
    69                                 _printf0_("     "<<setw(offset)<<left<<"  #entries in buffer (AutodiffObufsizeEnum) " <<tape_stats[OP_BUFFER_SIZE] << "\n");
    70                                 _printf0_("     "<<setw(offset)<<left<<"  entry size " << sizeof(unsigned char) << "B\n");
    71                                 _printf0_("     "<<setw(offset)<<left<<"  #entries total" <<tape_stats[NUM_OPERATIONS] << "\n");
    72                                 _printf0_("     "<<setw(offset)<<left<<"  buffer written to file: " << (tape_stats[OP_FILE_ACCESS]?"y":"n") << "\n");
    73                                 _printf0_("     locations: \n");
    74                                 _printf0_("     "<<setw(offset)<<left<<"  #entries in buffer (AutodiffLbufsizeEnum) " <<tape_stats[LOC_BUFFER_SIZE] << "\n");
    75                                 _printf0_("     "<<setw(offset)<<left<<"  entry size " << sizeof(locint) << "B\n");
    76                                 _printf0_("     "<<setw(offset)<<left<<"  #entries total" <<tape_stats[NUM_LOCATIONS] << "\n");
    77                                 _printf0_("     "<<setw(offset)<<left<<"  buffer written to file: " << (tape_stats[LOC_FILE_ACCESS]?"y":"n") << "\n");
    78                                 _printf0_("     constant values: \n");
    79                                 _printf0_("     "<<setw(offset)<<left<<"  #entries in buffer (AutodiffCbufsizeEnum) " <<tape_stats[VAL_BUFFER_SIZE] << "\n");
    80                                 _printf0_("     "<<setw(offset)<<left<<"  entry size " << sizeof(double) << "B\n");
    81                                 _printf0_("     "<<setw(offset)<<left<<"  #entries total" <<tape_stats[NUM_VALUES] << "\n");
    82                                 _printf0_("     "<<setw(offset)<<left<<"  buffer written to file: " << (tape_stats[VAL_FILE_ACCESS]?"y":"n") << "\n");
    83                                 _printf0_("     Taylor stack: \n");
    84                                 _printf0_("     "<<setw(offset)<<left<<"  #entries in buffer (AutodiffTbufsizeEnum) " <<tape_stats[TAY_BUFFER_SIZE] << "\n");
    85                                 _printf0_("     "<<setw(offset)<<left<<"  entry size " << sizeof(revreal) << "B\n");
    86                                 _printf0_("     "<<setw(offset)<<left<<"  #entries total" <<tape_stats[TAY_STACK_SIZE] << "\n");
    87                                 _printf0_("     "<<setw(offset)<<left<<"  buffer written to file: " << (tape_stats[TAY_STACK_SIZE]>tape_stats[TAY_BUFFER_SIZE]?"y":"n") << "\n");
     63                                int commSize=IssmComm::GetSize();
     64                                int *sstats=new int[7];
     65                                sstats[0]=tape_stats[NUM_OPERATIONS];
     66                                sstats[1]=tape_stats[OP_FILE_ACCESS];
     67                                sstats[2]=tape_stats[NUM_LOCATIONS];
     68                                sstats[3]=tape_stats[LOC_FILE_ACCESS];
     69                                sstats[4]=tape_stats[NUM_VALUES];
     70                                sstats[5]=tape_stats[VAL_FILE_ACCESS];
     71                                sstats[6]=tape_stats[TAY_STACK_SIZE];
     72                                int *rstats=NULL;
     73                                if (my_rank==0) rstats=new int[commSize*7];
     74                                ISSM_MPI_Gather(sstats,7,ISSM_MPI_INT,rstats,7,ISSM_MPI_INT,0,IssmComm::GetComm());
     75                                if (my_rank==0) {
     76                                        int offset=50;
     77                                        int rOffset=(commSize/10)+1;
     78                                        _printf_("   ADOLC statistics: \n");
     79                                        _printf_("     "<<setw(offset)<<left<<"#independents: " <<tape_stats[NUM_INDEPENDENTS] << "\n");
     80                                        _printf_("     "<<setw(offset)<<left<<"#dependents: " <<tape_stats[NUM_DEPENDENTS] << "\n");
     81                                        _printf_("     "<<setw(offset)<<left<<"max #live active variables: " <<tape_stats[NUM_MAX_LIVES] << "\n");
     82                                        _printf_("     operations: \n");
     83                                        _printf_("     "<<setw(offset)<<left<<"  #entries in buffer (AutodiffObufsizeEnum) " <<tape_stats[OP_BUFFER_SIZE] << "\n");
     84                                        _printf_("     "<<setw(offset)<<left<<"  entry size " << sizeof(unsigned char) << "B\n");
     85                                        for (int r=0;r<commSize;++r)
     86                                        _printf_("     ["<<setw(rOffset)<<right<<r<<setw(offset-rOffset-1)<<"] #entries total" <<setw(12)<<right<<rstats[r*7+0] << (rstats[r*7+1]?" ->file":"") << "\n");
     87                                        _printf_("     locations: \n");
     88                                        _printf_("     "<<setw(offset)<<left<<"  #entries in buffer (AutodiffLbufsizeEnum) " <<tape_stats[LOC_BUFFER_SIZE] << "\n");
     89                                        _printf_("     "<<setw(offset)<<left<<"  entry size " << sizeof(locint) << "B\n");
     90                                        for (int r=0;r<commSize;++r)
     91                                        _printf_("     ["<<setw(rOffset)<<right<<r<<setw(offset-rOffset-1)<<"] #entries total" <<setw(12)<<right<<rstats[r*7+2] << (rstats[r*7+3]?" ->file":"") << "\n");
     92                                        _printf_("     constant values: \n");
     93                                        _printf_("     "<<setw(offset)<<left<<"  #entries in buffer (AutodiffCbufsizeEnum) " <<tape_stats[VAL_BUFFER_SIZE] << "\n");
     94                                        _printf_("     "<<setw(offset)<<left<<"  entry size " << sizeof(double) << "B\n");
     95                                        for (int r=0;r<commSize;++r)
     96                                        _printf_("     ["<<setw(rOffset)<<right<<r<<setw(offset-rOffset-1)<<"] #entries total" <<setw(12)<<right<<rstats[r*7+4] << (rstats[r*7+5]?"->file":"") << "\n");
     97                                        _printf_("     Taylor stack: \n");
     98                                        _printf_("     "<<setw(offset)<<left<<"  #entries in buffer (AutodiffTbufsizeEnum) " <<tape_stats[TAY_BUFFER_SIZE] << "\n");
     99                                        _printf_("     "<<setw(offset)<<left<<"  entry size " << sizeof(revreal) << "B\n");
     100                                        for (int r=0;r<commSize;++r)
     101                                        _printf_("     ["<<setw(rOffset)<<right<<r<<setw(offset-rOffset-1)<<"] #entries total" <<setw(12)<<right<<rstats[r*7+6] << (rstats[r*7+6]>tape_stats[TAY_BUFFER_SIZE]?"->file":"") << "\n");
     102                                        delete []rstats;
     103                                }
     104                                delete [] sstats;
    88105                        }
    89 
    90106
    91107                        /*retrieve state variable: */
Note: See TracChangeset for help on using the changeset viewer.