Post

GSoC 2026 - Week 5

Here is week 5 update for my project:

This week, I added support for batching and parallelization in analysis widgets as part of PR #15. The implementation follows the same approach as discussed in MDAnalysis/mdadash#2. The existing ROG widget has been updated to support both per-frame and batch run frequencies along with serial and parallel run modes (as shown in the cover image above). Both the run frequency and run mode can be changed dynamically at runtime as well from the GUI. The maximum number of parallel jobs to run is also configurable under the ‘Dashboard Configuration’ settings.

Here are some of the changes made as part of this PR:

  • Add batching support for analysis widgets
    • BufferedTrajectory wrapper for existing trajectory reader
    • Negative indexing to access last n timesteps in deque buffer
    • Added run_per_frame and run_batch handlers
  • Add parallelization support for analysis widgets
    • Run parallel jobs using joblib.Parallel in separate thread
    • Dynamically patch IMDReader to support serialization
    • Added get_parallel_job and apply_parallel_results handlers
  • Update ROG to support both per-frame and batch run frequencies
  • Update ROG to support both serial and parallel run modes
  • Use calc_bonds and center_of_mass with unwrap for COM distance
  • Move execute code support to use run_cell directly in core
  • Fix future resolve only for comm_msg message types
  • Test for all new backend and frontend functionality
  • Added docs for all new methods and classes

Support for a few other missing parts were also added: Duplicate widgets support was added as part of PR #13. Energy trends support was added as part of PR #16. A few other usablity enhancements were made as part of this PR:

  • Add support for Energy value trends
  • Add disconnected overlay when dashboard server unavailable
  • Add option to save column preset layouts as default

In addition to this, I refactored the backend tests to be cleaner and independent for each analysis widget as part of PR #17 and PR #18. This should make it easier to add tests as we add new analysis widgets in the future.

v0.0.4 has been released and it has all the functionality till the end of week 5.

Next week, I will get started on the alerts and persistence support for the dashboard.

This post is licensed under CC BY 4.0 by the author.