<div dir="ltr">Hi,<br><div><br></div><div>Please note there is extensive doxygen documentation in the code, e.g. <a href="https://github.com/gromacs/tng/blob/master/CMakeLists.txt#L67">https://github.com/gromacs/tng/blob/master/CMakeLists.txt#L67</a>. But I don't know of anywhere it was posted online.</div><div><br></div><div>MArk</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 23 Mar 2020 at 21:40, Oliver Beckstein <<a href="mailto:obeckste@asu.edu">obeckste@asu.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">Hello Paul,<div><br></div><div><div><blockquote type="cite"><div>On Mar 23, 2020, at 4:17 AM, Paul bauer <<a href="mailto:paul.bauer.q@gmail.com" target="_blank">paul.bauer.q@gmail.com</a>> wrote:</div><br><div>
<div>
<div>Hello Oliver,<br>
<br>
I can see what I can do for mentoring, but would need to make sure
I understand the guidelines from GSoC better.<br></div></div></div></blockquote><div><br></div><div><a href="https://google.github.io/gsocguides/mentor/" target="_blank">https://google.github.io/gsocguides/mentor/</a></div><div><br></div><div><b>“</b><strong>Mentor</strong>: Mentors are people from the community who
volunteer to work with a student. Mentors provide guidance such as
pointers to useful documentation, code reviews, etc. In addition to
providing students with feedback and pointers, a mentor acts as an
ambassador to help student contributors integrate into their project’s
community. Some organizations choose to assign more than one mentor to
each of their students. Many members of the community provide guidance
to their project’s GSoC students without mentoring in an “official”
capacity, much as they would answer anyone’s questions on the project’s
mailing list or IRC channel.”</div><div><br></div><div><a href="https://google.github.io/gsocguides/mentor/what-makes-a-good-mentor" target="_blank">https://google.github.io/gsocguides/mentor/what-makes-a-good-mentor</a></div><div><br></div><div>There’s also a 3-4 weeks “community bonding” period in which the selected student starts interacting directly with mentors and projects. <a href="https://google.github.io/gsocguides/mentor/mind-the-gap" target="_blank">https://google.github.io/gsocguides/mentor/mind-the-gap</a> For the TNG project we would need the time to define the milestones clearly (see <a href="https://google.github.io/gsocguides/mentor/setting-expectations" target="_blank">https://google.github.io/gsocguides/mentor/setting-expectations</a> and <a href="https://google.github.io/gsocguides/mentor/managing-the-plan" target="_blank">https://google.github.io/gsocguides/mentor/managing-the-plan</a> ) and get the student started with the code base, especially as any of the students who are applying have only worked on MDAnalysis before. </div><br><blockquote type="cite"><div><div><div>
<br>
I think having a polished version on TNG would be quite helpful
not just for core GROMACS but also for our interoperability with
other packages, so this should definitely be worth my time.<br></div></div></div></blockquote><div><br></div><div>That’s good, otherwise I would say “no”.</div><br><blockquote type="cite"><div><div><div>
One thing that concerns me is that we usually have quite a long
lag time for code contributions coming from external people or new
team members, so porting the whole code to C++ might not be done
in the given time span, but it should be possible to get patches
at least to the point of being reviewed here.<br></div></div></div></blockquote><div><br></div><div>I admit to having limited experience in large C/C++ projects so your expertise is crucial. My 2 cents would be that in this case I would start with a good test suite that passes under the current version and attack the project with test-driven development. Would be feasible to start from a separate fork of the current TNG repository as a complete rewrite to speed up development? If the library is not immediately integrated into Gromacs itself then maybe separate development strands for the C and new C++ version might be ok? But I do defer to how you would want to handle it – let me know.</div><div><br></div><div>It is a concern if the student has to wait for code reviews for days because the student is supposed to work on this specific project for the duration of GSoC. Furthermore, we must evaluate the student three times (<a href="https://google.github.io/gsocguides/mentor/evaluations" target="_blank">https://google.github.io/gsocguides/mentor/evaluations</a>). If we fail the student, they are kicked out (and don’t get paid). If they cannot submit work then we cannot evaluate them fairly.</div><br><blockquote type="cite"><div><div><div>Let's see if this gets chosen in the end!<br></div></div></div></blockquote><div><br></div><div>Please have a quick look through my comments above. If you think that this remains a feasible project for a student then I’ll put you down as a co-mentor (do you have a GitHub username and/or let me know another way to reference you, e.g., on the new GitLab installation; please also let me know the official TNG repo – is it really <a href="https://github.com/gromacs/tng" target="_blank">https://github.com/gromacs/tng</a> ?)</div><div><br></div><div>It’s also ok to say “no thank you” , it might simply not be a perfect fit, and then I’d rather have students focus on other projects. We can then see if there are other ways to move TNG forward.</div><div><br></div><div>Best,</div><div>Oliver </div><div><br></div><br><blockquote type="cite"><div><div><div>
<br>
Cheers<br>
<br>
Paul<br>
</div>
<div><br>
</div>
<div>On 22/03/2020 23:14, Oliver Beckstein
wrote:<br>
</div>
<blockquote type="cite">
Hello TNG people,
<div><br>
</div>
<div>Apologies for the delayed reply.<br>
<div><br>
</div>
<div>My take-away from your comments on the TNG library
are:</div>
<div><br>
</div>
<div>1. TNG has all major features defined (although a
more polished API might be desirable).</div>
<div>2. You consider the current C code in <a href="https://github.com/gromacs/tng" target="_blank">https://github.com/gromacs/tng</a> as
the reference implementation </div>
<div>3. More tests would be welcome.</div>
<div>4. At the moment there is no-one who is really
looking after the code. (At least at a cursory glance,
documentation is hard to find; presumably <a href="https://github.com/gromacs/tng/blob/master/Trajectoryformatspecification.mk" target="_blank">https://github.com/gromacs/tng/blob/master/Trajectoryformatspecification.mk</a> is
important as well as the JCC 2014 paper (and the 2011 one). )</div>
<div>5. You consider porting the existing C code to C++
would be the next important step so that at least Gromacs
itself can move towards TNG adoption.</div>
<div><br>
</div>
<div>We can advertise the project as </div>
<div><br>
</div>
<div>1. Port existing TNG C code to C++</div>
<div>2. Write the API documentation (doxygen strings +
minimal example for how to use the library)</div>
<div>3. Stretch goal: Create a Python wrapper (based
on <a href="https://github.com/MDAnalysis/pytng" target="_blank">https://github.com/MDAnalysis/pytng</a> or
other approaches).</div>
<div><br>
</div>
<div>Questions:</div>
<div><br>
</div>
<div>Is this a realistic plan for a student with no
previous experience with the specifics but knowledge of C/C++
& python, for May 18 – Aug 10 (~3 months)?</div>
<div><br>
</div>
<div>@Paul: would you be able to co-mentor a student
(primarily 1 and 2)?</div>
<div><br>
</div>
<div>@Magnus: would you be available for consultations
– basically, replying to emails on whatever mailing list/issue
tracker the conversation will happen?</div>
<div><br>
</div>
<div>Would you think that this would be worth
everyone’s time? Mentors will be involved in choosing students
so you won’t get someone that you don’t feel is suitable.</div>
<div><br>
</div>
<div>There’s no guarantee that this project will be
chosen but we would see by March 31 (application deadline). </div>
<div><br>
</div>
<div><br>
</div>
<div>Oliver</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
<div>
<blockquote type="cite">
<div>On Mar 19, 2020, at 1:16 AM, Paul bauer <<a href="mailto:paul.bauer.q@gmail.com" target="_blank">paul.bauer.q@gmail.com</a>>
wrote:</div>
<br>
<div>
<div>Hello,<br>
<br>
I concur with Magnus that moving the TNG codebase to
C++ would be a major win and make integration in e.g.
GROMACS even better.<br>
I can also see that I help with mentoring from the
GROMACS side, to help with providing a smooth
integration process.<br>
<br>
Cheers<br>
<br>
Paul<br>
<br>
On 19/03/2020 09:13, Magnus Lundborg wrote:<br>
<blockquote type="cite">Hi,<br>
<br>
As the main developer of the TNG API I'm happy to
hear about this initiative as we needed more hands
already from the beginning, and no-one has taken the
development over since I moved on to other things.<br>
<br>
On 2020-03-18 21:17, David van der Spoel wrote:<br>
<blockquote type="cite">Den 2020-03-18 kl.
19:20, skrev Oliver Beckstein:<br>
<blockquote type="cite">Hello Gromacs
Developers,<br>
<br>
As part of Google Summer of Code 2020 with
MDAnalysis <<a href="https://www.mdanalysis.org/2020/02/22/gsoc2020/#google-summer-of-code-2020" target="_blank">https://www.mdanalysis.org/2020/02/22/gsoc2020/#google-summer-of-code-2020</a>>
we proposed a project to work on the TNG format.
Originally the plan was to just make sure that
MDAnalysis can work with TNG but after a chat
with Erik at BPS (and in the spirit of the last
MolSSI interoperability workshop) we thought
that it would be more useful to take a step back
and possibly work towards finalizing the TNG
format <<a href="https://github.com/MDAnalysis/mdanalysis/wiki/Project-Ideas-2020#project-6-implement-tng-support" target="_blank">https://github.com/MDAnalysis/mdanalysis/wiki/Project-Ideas-2020#project-6-implement-tng-support</a>> with
the goal to make it usable in any MD analysis
code (including MDAnalysis). The preliminary
objectives would be:<br>
</blockquote>
<br>
Great initiative!<br>
<br>
<blockquote type="cite"><br>
1. Fully define the API and capabilities of
TNG.<br>
</blockquote>
The existing functionality or would you add stuff
that has been disccussed for a long time like
energies and other data blocks?<br>
</blockquote>
As far as I know the API should be complete as it
is, but perhaps not as polished as would be nice.
Adding energies and other data blocks are more a
matter of adding it in the software packages using
the library. The only exception is that data block
IDs are kept as a central repository in the library.
But this is just to keep track of them and to avoid
ID conflicts. As far as I remember, there is in
principle nothing that prevents anyone from writing
anything in TNG.<br>
<blockquote type="cite"><br>
<blockquote type="cite"> 2. Write
documentation.<br>
3. Write a reference library implementation (C
or C++).<br>
</blockquote>
How would that be different from the existing
implementation?<br>
</blockquote>
Yes, what is the difference between the existing API
and library (in C)? There are plans to make it more
C++ compliant. That could be a good project. A full
rewrite to proper C++ would be even better. One
problem since early on was that the API and ABI was
promised to be fully backwards compatible. That
makes a redesign harder and explains some of the
"late add-ons".<br>
<blockquote type="cite"><br>
<blockquote type="cite"> 4. Write tests.<br>
</blockquote>
</blockquote>
There are some functionality tests in the TNG
library, but more extensive unit tests would of
course be good.<br>
<blockquote type="cite">
<blockquote type="cite"> 5. Bonus: Write
Python bindings (see start in our pytng<br>
<<a href="https://github.com/MDAnalysis/pytng" target="_blank">https://github.com/MDAnalysis/pytng</a>>
library) and integrate with<br>
MDAnalysis<br>
</blockquote>
<br>
<blockquote type="cite"><br>
This project outline is not set in stone and we
would be more than happy to adapt it according
to your expert input.<br>
<br>
We have at least one promising candidate student
who is interested in working on this project
during 10 weeks this summer.<br>
<br>
We would need at least one knowledgable
co-mentor from the GROMACS developer community
who could commit to mentoring. See <a href="https://google.github.io/gsocguides/mentor/" target="_blank">https://google.github.io/gsocguides/mentor/</a> what
is expected of mentors. In short, you would be
involved in selecting students, communicating
with the student (primarily using mailing lists
and issue trackers) on a near-daily basis, help
with keeping the project on track, and
evaluating the student for GSoC (midterm and
final evaluation at pass/fail level). About
5h/week is a realistic minimum.<br>
</blockquote>
</blockquote>
I could hopefully clarify some things in the
beginning of the project and possible during as
well, but I'm afraid I cannot promise any regular
co-mentoring.<br>
<blockquote type="cite">
<blockquote type="cite"><br>
We completely understand that in the current
global crisis, you might have more urgent things
to do. But if you think that you could be a
co-mentor for this project, please let us know
soon because students have to write their
applications; their deadline is March 31 but
they can submit applications now and unless we
have a GROMACS co-mentor we will not be offering
the TNG project so students.<br>
<br>
Thank you!<br>
<br>
Oliver (for the MDAnalysis GSoC 2020 Mentors)<br>
<br>
<br>
<br>
-- <br>
Oliver Beckstein, DPhil * <a href="mailto:oliver.beckstein@asu.edu" target="_blank">oliver.beckstein@asu.edu</a>
<<a href="mailto:oliver.beckstein@asu.edu" target="_blank">mailto:oliver.beckstein@asu.edu</a>><br>
<a href="https://becksteinlab.physics.asu.edu/" target="_blank">https://becksteinlab.physics.asu.edu/</a><br>
<br>
Associate Professor of Physics<br>
Arizona State University<br>
Center for Biological Physics and Department of
Physics<br>
Tempe, AZ 85287-1504<br>
USA<br>
<br>
Office: PSF 348<br>
Phone: +1 (480) 727-9765<br>
FAX: +1 (480) 965-4669<br>
<br>
Department of
Physics: <a href="https://physics.asu.edu/content/oliver-beckstein" target="_blank">https://physics.asu.edu/content/oliver-beckstein</a><br>
Center for Biological
Physics: <a href="https://cbp.asu.edu/content/oliver-beckstein" target="_blank">https://cbp.asu.edu/content/oliver-beckstein</a><br>
<br>
<br>
</blockquote>
<br>
<br>
</blockquote>
<br>
</blockquote>
<br>
-- <br>
Paul Bauer, PhD<br>
GROMACS Development Manager<br>
KTH Stockholm, SciLifeLab<br>
0046737308594<br>
<br>
-- <br>
Gromacs Developers mailing list<br>
<br>
* Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a>
before posting!<br>
<br>
* Can't post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a><br>
<br>
* For (un)subscribe requests visit<br>
<a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" target="_blank">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a>
or send a mail to <a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a>.<br>
</div>
</div>
</blockquote>
</div>
<br>
<div>
<div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<div style="overflow-wrap: break-word;">
<div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br>
--<br>
Oliver Beckstein, DPhil * <a href="mailto:oliver.beckstein@asu.edu" target="_blank">oliver.beckstein@asu.edu</a><br>
<a href="https://becksteinlab.physics.asu.edu/" target="_blank">https://becksteinlab.physics.asu.edu/</a><br>
<br>
Associate Professor of Physics<br>
Arizona State University<br>
Center for Biological Physics and Department of
Physics<br>
Tempe, AZ 85287-1504<br>
USA<br>
<br>
Department of
Physics: <a href="https://physics.asu.edu/content/oliver-beckstein" target="_blank">https://physics.asu.edu/content/oliver-beckstein</a><br>
Center for Biological
Physics: <a href="https://cbp.asu.edu/content/oliver-beckstein" target="_blank">https://cbp.asu.edu/content/oliver-beckstein</a></div>
</div>
</div>
</div>
</div>
<br>
</div>
</div>
<br>
<fieldset></fieldset>
</blockquote><p><br>
</p>
<pre cols="72">--
Paul Bauer, PhD
GROMACS Development Manager
KTH Stockholm, SciLifeLab
0046737308594</pre>
</div>
-- <br>Gromacs Developers mailing list<br><br>* Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a> before posting!<br><br>* Can't post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a><br><br>* For (un)subscribe requests visit<br><a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" target="_blank">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a> or send a mail to <a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a>.</div></blockquote></div><br><div>
<div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div style="overflow-wrap: break-word;"><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br>--<br>Oliver Beckstein, DPhil * <a href="mailto:oliver.beckstein@asu.edu" target="_blank">oliver.beckstein@asu.edu</a><br><a href="https://becksteinlab.physics.asu.edu/" target="_blank">https://becksteinlab.physics.asu.edu/</a><br><br>Associate Professor of Physics<br>Arizona State University<br>Center for Biological Physics and Department of Physics<br>Tempe, AZ 85287-1504<br>USA<br><br>Department of Physics: <a href="https://physics.asu.edu/content/oliver-beckstein" target="_blank">https://physics.asu.edu/content/oliver-beckstein</a><br>Center for Biological Physics: <a href="https://cbp.asu.edu/content/oliver-beckstein" target="_blank">https://cbp.asu.edu/content/oliver-beckstein</a></div></div></div></div>
</div>
<br></div></div>-- <br>
Gromacs Developers mailing list<br>
<br>
* Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a> before posting!<br>
<br>
* Can't post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a><br>
<br>
* For (un)subscribe requests visit<br>
<a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" rel="noreferrer" target="_blank">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a> or send a mail to <a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a>.</blockquote></div>