[gmx-developers] API planning

Eric Irrgang ericirrgang at gmail.com
Wed Dec 21 17:10:26 CET 2016

Hello Developers,

I am interested in starting, rekindling and/or joining conversations
about planning,
implementing, and using various sorts of abstraction in the Gromacs public
and internal interfaces. I am hoping to identify other developers working
in the same areas, find out where efforts are being coordinated, or to
volunteer to help coordinate efforts through new Redmine issues or reviving
old ones.

Generally, I'm looking at encapsulation or abstraction of

* Terminal I/O
* File I/O
  - trajectory output
  - input and configuration files
  - log files
* Prompted user interaction
* CLI and runtime options
* Simulation configuration, input state
* Gathered parallel data, running state
* task modules (gmx tools)
* Compute kernels used within do_md() (for plug-ins as well as external
* Domain--rank binding / Interprocess communication / MPI communicator

It might be possible to break down the areas of focus as follows:
* data I/O
* user/controller interface
* core compute tasks

In the coming months, I will be working on new ways to use libgromacs for
workflows implemented at higher levels, such as through Python interfaces,
expanded ensemble workflow tools, and data flow based tools. In some cases,
it looks like the C++ API I want already exists but may not be widely used
within the code, in other cases I know that the features I want are under
active development, in others I see old discussions but no recent comments,
and in others I can't tell if any conversations have happened. I am trying
to determine the best way to coordinate with plans or development already
under way or with other interested developers.

To some degree, I may just not have found the right search terms to find an
appropriate Redmine issue or wasn't sure if an existing issue was the right
place, so I would be grateful if you could point me at relevant discussions
or suggest that I start new issues. If it is most appropriate that I just
have a conversation with certain people already on certain tasks, I would
appreciate some help connecting.

I am also happy to volunteer to compile what information I can and help
coordinate documentation, if lack of time is the major obstacle. I could
start by sharing all of the cross-references I have already compiled, but I
refrained from that in the current email to keep it to a manageable size
and relevant to the mailing list.

M. Eric Irrgang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20161221/ad99abaf/attachment.html>

More information about the gromacs.org_gmx-developers mailing list