Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
GROMACS
GROMACS
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 903
    • Issues 903
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 86
    • Merge requests 86
  • Requirements
    • Requirements
    • List
  • Operations
    • Operations
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
  • Analytics
    • Analytics
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • GROMACS
  • GROMACSGROMACS
  • Issues
  • #3774

Closed
Open
Created Oct 29, 2020 by Mark Abraham@mark.j.abrahamOwner0 of 8 tasks completed0/8 tasks

Converge on gmxapi Context as the only way to manage running a simulation

There are currently three ways to manage running a simulation within the current source:

  • by invoking a gmxapi::Workflow on a gmxapi::Context
  • by calling gmx mdrun
  • by using gmx::test::SimulationRunner in the mdrun integration tests

There's noteworthy duplication between the first and both of the subsequent two. Having to consider all three use cases complicates #3688 because responsibility for initializing MPI libraries is handled in three places. Likewise #3768 (closed) needs similar changes in three places.

In the long term, we should use only one way to run a simulation. Simplest and most generalizable is to re-use the gmxapi implementation for the other two. That prepares for re-using some of the infrastructure currently used for testing to provide capabilities to the user also via the API.

Tasks have been identified to achieve this:

  • Discuss with nblib any efforts to re-use or further de-duplicate
  • Make gmx::test::SimulationRunner use a gmxapi::Context to run mdrun
  • Identify an approach that lets gmx::test::SimulationRunner call grompp
  • Make gmx::test::SimulationRunner use that approach to call grompp
  • Understand whether the apparent need to broadcast gmx command-line arguments before invoking gmx_mdrun can be resolved within the approach of gmxapi::Context
  • Have gmx infrastructure implement gmx mdrun by creating a gmxapi::Context and transforming the command-line arguments to a gmxapi::Workflow
  • Move sole responsibility for MPI library initialization to gmxapi::Context (see also #3688)
  • Eliminate any superseded infrastructure, e.g. gmx::init()/finalize()
Edited Mar 02, 2021 by Mark Abraham
Assignee
Assign to
2022-infrastructure-stable
Milestone
2022-infrastructure-stable
Assign milestone
Time tracking