Changes between Version 9 and Version 10 of AddingMemoryandTimingInformation


Ignore:
Timestamp:
Dec 5, 2019, 4:24:51 PM (4 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AddingMemoryandTimingInformation

    v9 v10  
    3737The output will look like this:
    3838{{{
    39                        PDAF Memory overview
    40           ---------------------------------------------
    41                      Allocated memory  (MB)
    42               state and U:   0.59617 MB (persistent)
    43            ensemble array:   0.64087 MB (persistent)
    44             analysis step:   6.05578 MB (temporary)
    45                resampling:   2.81129 MB (temporary)
     39  PDAF                       PDAF Memory overview
     40  PDAF          ---------------------------------------------
     41  PDAF                     Allocated memory  (MiB)
     42  PDAF              state and A:      0.598 MiB (persistent)
     43  PDAF           ensemble array:      0.641 MiB (persistent)
     44  PDAF            analysis step:     16.425 MiB (temporary)
    4645}}}
    4746
     
    5655to the code. This will provide an output like
    5756{{{
    58                      PDAF Timing information
    59           ---------------------------------------------
    60             Generate state ensemble:      0.513 s
    61                   Time of forecasts:      0.010 s
    62               Time for assimilation:      0.200 s
    63             ensemble transformation:      0.245 s
    64                 Time of prepoststep:      0.016 s
     57  PDAF                     PDAF Timing information
     58  PDAF          ---------------------------------------------
     59  PDAF                  Initialize PDAF:      0.078 s
     60  PDAF                Ensemble forecast:      0.003 s
     61  PDAF                  LESTKF analysis:     25.183 s
     62  PDAF                      Prepoststep:      0.017 s
    6563}}}
    66 More detailed information can be obtained using a value of 3 or 4 in the call to `PDAF_print_info`. One the time from the first process of the filter processes is displayed. However, the time for each process should be similar.
    6764
     65More detailed output is obtained with
     66{{{
     67  CALL PDAF_print_info(1)
     68}}}
     69which will display timing information of each of the call-back routines. E.g. for the LESTKF this might look like:
     70{{{
     71  PDAF            PDAF Timing information - call-back routines
     72  PDAF        ----------------------------------------------------
     73  PDAF          Initialize PDAF:                     0.078 s
     74  PDAF            init_ens_pdaf:                       0.077 s
     75  PDAF          Ensemble forecast:                   0.003 s
     76  PDAF            MPI communication in PDAF:           0.000 s
     77  PDAF            distribute_state_pdaf:               0.001 s
     78  PDAF            collect_state_pdaf:                  0.000 s
     79  PDAF          LESTKF analysis:                    25.183 s
     80  PDAF            PDAF-internal operations:           24.762 s
     81  PDAF            init_n_domains_pdaf:                 0.000 s
     82  PDAF            init_dim_obs_f_pdaf:                 0.000 s
     83  PDAF            obs_op_f_pdaf:                       0.003 s
     84  PDAF            init_dim_l_pdaf:                     0.001 s
     85  PDAF            init_dim_obs_l_pdaf:                 0.001 s
     86  PDAF            g2l_state_pdaf:                      0.001 s
     87  PDAF            g2l_obs_pdaf:                        0.021 s
     88  PDAF            init_obs_l_pdaf:                     0.000 s
     89  PDAF            prodRinvA_l_pdaf:                    0.006 s
     90  PDAF            l2g_state_pdaf:                      0.014 s
     91  PDAF          prepoststep_pdaf:                    0.017 s
     92}}}
     93In this example most time is spend inside PDAF (it is from the PDAF testsuite). If significant time is spend in one of several of the call-back routines, this given an indication which routines might have potential for optimization.
     94
     95More detailed information in time spend in different parts of the filter algorithm itself can be obtained using a value of 4 or 5 in the call to `PDAF_print_info`. Only the time from the first process of the filter processes is displayed. However, the time for each process should be similar.
     96