Skip to content

Conversation

@eirrgang
Copy link
Collaborator

work in progress

development toward issue #50

eirrgang and others added 6 commits May 8, 2018 16:46
We call gmx::initialize() in the import code and gmx::finalize()
on the destruction of an object stored as a module variable. This
means that if we want mpi4py to manage MPI initialization and
deinitialization, we need to import it before importing gmx.

To do: we need to pass a communicator to GROMACS without
initializing or finalizing MPI. We should probably do that
when sessions are launched in a context. We should probably
store a "current context" as a module member variable, and
we could tie MPI initialization and deinitialization to that
with the caveat that, once created, the first context to
initialize MPI needs to be the last one to use it. To support
all of this, we need to make substantial updates to GROMACS
to use a received subcommunicator instead of MPI_COMM_WORLD.
For the moment, we should be able to use MPI_COMM_WORLD if we
prohibit running jobs whose workflow width does not match the
MPI width. We can't use ensembles, though, until we manage
the communicator. Mark's suggestion the quickest band-aid is to override
the definition of MPI_COMM_WORLD and manage a global variable
in basenetwork.h.
@eirrgang eirrgang changed the base branch from master to devel May 17, 2018 15:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant