Planning for release 8.2

Issue #153 new
David Dickinson created an issue

This issue is a place to discuss plans, features, changes etc. for release 8.2 of GS2.

Proposed changes

Build system/dependencies:

  • Require Fortran 2008 compliant compilers
  • Drop fftw 2 support
  • Move to mpi_f08 based mpi only
  • Require MPI >= 3
  • Preprocess all files
  • Replace perl fortdep with a python implementation – make python a hard dependency
  • Switch to pfunit v4 by default

New features:

  • Field optimisations
  • Split domains ?
  • Memory tracking
  • Decouple theta and trapped pitch angle grid
  • More parallel diagnostics?
  • Utilities for helping with restart files (e.g. changing processor count, layout etc.)?
  • Look at adding cross core statistics on performance metrics like timers, memory usage etc. For example could show min/max/mean rather than just proc0 values.

Testing:

  • Collisions

Physics:

  • Improved flow shear
  • Improved handling of special bounce points (e.g. wfb)
  • Review changes in PR #523 tweaking new trap int weight calculation

Code structure:

  • Split up dist_fn?
  • Hide boilerplate
  • Unify diagnostic output
  • Drop replay functionality
  • Replace overrides code with implementation using configs
  • Move wnml and check_nml routines to config objects?
  • Move optimisations functionality out of main code base (e.g. into python script)
  • Use sub-modules.
  • Move wfbbc_option to le_grids and implement is_passing, is_trapped and is_wfb methods
  • Refactor netcdf code, provide wrapper interface to avoid ifdef mazes, refactor gs2_save/gs2_io.
  • Look at improving library interface etc. in particular look at what is required for trinity and simplify whilst maintaining compatibility.
  • Use redistributes in original exb_shear routine to replace individual point-to-point patterns.
  • Tidy up timer output and improve structure to better indicate nesting or otherwise. Consider reporting breakdown for init and advance.

Other changes:

  • Change default to initialise h rather than g?
  • Try to ensure initial conditions satisfy parallel boundary conditions (or at least an option to try and enable this). See issue #160
  • Enable netcdf compression by default.

Comments (17)

  1. Joseph Parker

    Thanks David! It would be good if some of the “nearly ready” features, like field optimizations and split domains could be rolled out quickly. I’d be happy if 8.2 was just either or both of those.

    But generally, I’d like to move to smaller, quicker releases. Maybe we could view this as a road map of future developments, rather than a plan for just 8.2? Could we also try to classify these changes by priority, how much work they’d be, and whether they could go into a major/minor/point release?

  2. David Dickinson reporter

    Sure, this was mostly just somewhere to put my ideas of things to do so that I didn’t try to get them all into 8.1! I view this as an evolving document, and like with the 8.1 milestone issue we may choose to defer/remove these entries as we go through. Some of these things are already done to some extent, others are more speculative ideas. I’m happy with the idea of more frequent releases and perhaps if we set a date for 8.2 we can then assess priorities, what is likely on that timescale etc.

  3. Log in to comment