<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hello Extended TNG people,<br></div><div dir="ltr"><br></div><div>Whether or not you choose to use Eigen, directly, for data interchange, I would encourage you to consider compatibility with Eigen / mdspan / mdarray buffer layout (and descriptors) to allow zero-copy data interchange across library binaries and allow super-fast numpy compatibility, whether or not you get as far as the Python bindings in the current project.</div><div><br></div><div>I expect to be working on data interchange for GROMACS at the beginning of May, and it would be great to be working towards a world of zero-copy data interchange between a TNG library, MDAnalysis and GROMACS.<br></div><div><br></div><div><div style="color:rgb(0,0,0)">I would be happy to consult on efficiency, compatibility, or interoperability. In any case, I look forward to any results of this effort.</div></div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">Best,</div><div style="color:rgb(0,0,0)">M. Eric Irrgang</div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 23, 2020 at 1:15 AM Oliver Beckstein &lt;<a href="mailto:obeckste@asu.edu">obeckste@asu.edu</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word">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++ &amp; 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 &lt;<a href="mailto:paul.bauer.q@gmail.com" target="_blank">paul.bauer.q@gmail.com</a>&gt; 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&#39;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 &lt;<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>&gt; 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 &lt;<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>&gt; 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 &quot;late add-ons&quot;.<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>    &lt;<a href="https://github.com/MDAnalysis/pytng" target="_blank">https://github.com/MDAnalysis/pytng</a>&gt; 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&#39;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> &lt;<a href="mailto:oliver.beckstein@asu.edu" target="_blank">mailto:oliver.beckstein@asu.edu</a>&gt;<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&#39;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="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><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;word-wrap:break-word"><div style="word-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></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&#39;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>