| 52 | | - ''Performance improvements to PDAFomi_init_dim_obs_l'': We once more revisited the observation searcha and strongly revised it. |
| 53 | | - one can select different search types using the routine [wiki:PDAFomi_set_searchtype]). |
| 54 | | - The new default search type is in our experiments between 2 and 5 times faster than the old implementation. |
| 55 | | - We obtan the best performance with a search type using an ordering of the observation along a coordinate direction and subsequent bisection search were we obtain a speedup up to a factor of 30. Since the observations are reordered the assimilation result can be slightly different. |
| 56 | | - if you see in your appplication that the observation search in PDAFomi_init_dim_obs_l takes significiant time, we recommend to test the different search types. |
| 57 | | - Added routines to control and assess random numbers seeds. The routines [wik:PDAF_set_seedvec], [wiki:PDAF_get_seedvec], [wiki:PDAF_get_rndcount] allow to store and reset the seed for random number generation in PDAF. |
| 58 | | - Added routine to perturb a vector according to a chosen distribution: [wiki:PDAF_generate_rndvec] |
| 59 | | - Added routine [wiki:PDAF3_init_parallel] to let PDAF configure the ensemble parallelization. This moves the communicator splitting from ''init_parallel_pdaf'' into PDAF and simplifies the code. This also allows user codes for the offline case and for online coupling for models without parallelization to avoid MPI_init in the user code. Instead, PDAF handles the initialization and finalization of MPI which simplifies the implementation. |
| | 52 | - ''Performance improvements to PDAFomi_init_dim_obs_l'': We once more revisited the observation search and strongly revised it adding improved search types. |
| | 53 | - one can now select different search types using the routine [wiki:PDAFomi_set_searchtype]. |
| | 54 | - The new default search type is in our experiments between 2 and 5 times faster than the old implementation. However, the performance improvements is case specific. |
| | 55 | - In tests we obtain the best performance with a search type in which PDAF first sorts the observations along a coordinate direction and subsequently performs a bisection search, were we obtain a speedup up to a factor of 30. Since the observations are reordered the assimilation result can be slightly different. Due to this we did not make this the default. |
| | 56 | - Recommendation: If you see in your application that the observation search in PDAFomi_init_dim_obs_l takes significant time, we recommend use [wiki:PDAFomi_set_searchtype] and test the different search types to find the optimal one for your application. |
| | 57 | - Added OMI routine [wiki:PDAFomi_diag_crps]: Compute the CRPS comparing the observations with the observed ensemble mean |
| | 58 | - Added diagnostics routine [wiki:PDAF_diag_diffstats] to compute statistics for comparing two vectors (correlation, centered RMSD, bias, mean absolute error, variances) analogous to [wiki:PDAFomi_diag_diffstats] of PDAF-OMI. |
| | 59 | - Added routines to control and assess random numbers seeds. The routines [wiki:PDAF_set_seedvec], [wiki:PDAF_get_seedvec], [wiki:PDAF_get_rndcount] allow one to store and reset the seed for random number generation in PDAF. |
| | 60 | - Added routine [wiki:PDAF_generate_rndvec] to perturb a vector according to a chosen distribution. This can be used, e.g. to generate perturbed model parameters. |
| | 61 | - Added routine [wiki:PDAF3_init_parallel] to let PDAF configure the ensemble parallelization. It is used in the routine ''init_parallel_pdaf'' and moves the communicator splitting from this routine into PDAF, which simplifies the code. This also allows PDAF to handle the initialization and finalization of MPI which simplifies the implementation. For the offline coupling and for online coupling for models without parallelization, one does not need to call MPI_init in the user code any more. |