LAMMPS developer workshop discussion

hi everybody,

this e-mail is to start a thread discussing a potential LAMMPS
developer workshop. i would suggest to keep this discussion public for
a bit to explore ideas and possible ways to implement it until it
comes down to specific organizational details, which are better
discussed off-list.

a) number and "kind" of participants
a prerequisite for participation would have to be a significant
experience as a LAMMPS *user*, demonstrated C++ programming skills,
and some familiarity with modifying LAMMPS. ideally several people
with good LAMMPS development experience would be present so they could
mentor the others. while a 1:1 pairing would be most effective, that
is unlikely to work out, so i'd envision groups of 1 experienced
person mentoring 2-3 less experienced people. each of these teams of
3-4 folks could then take on certain tasks from a list that would be
agreed on before the workshops starts. mentors would not necessarily
be required to be present all the time (1-2hrs each day should suffice
for most of them), and one could also consider using
videoconferencing, if needed. i think a suitable group would be at
least 8 and no more than 24 people (including mentors).

b) venue, duration and date
the natural choice of a venue would be somewhere in/near albuquerque
as that would make it the most convenient for sandian's to stop by
without too much disruption of their regular work. but any kind of
facility with sufficient internet access, a meeting room, and some
more space where the groups could work on their own would do. this is
often given on university campuses (especially during summer break),
but one could also simply rent a hospitality suite in a hotel. i am
certain that i could get suitable facilities at temple, for example.
since it may take a day or two to get into a productive workflow, it
should take at least a week; going for two full weeks may be pushing
it, but including the weekend would provide some extra time and the
opportunity to arrange for some kind of excursion. a compromise might
be to co-schedule the event with the next LAMMPS-users workshop. if
things stay as they have been over the last years, the next
LAMMPS-users workshop would happen around august 2015.

c) format
there are multiple possible ways to do this, but as a draft i would
suggest to start each day with a presentation about a certain facility
or subsystem in LAMMPS (styles, neighbor list, acceleration,
coupling/embedding), then have a (brief?) plenary review of that day's
assignments and status of the previous day's work and then work in the
groups.

d) topics
- expansion of the developer's guide: e.g. sections of "how do i ...?"
that explain how certain features are implemented.
- setting up a reference manual via doxygen (existing documentation
could be included)
- some more detailed and beginner-proof tutorials that explain LAMMPS
features in the context of learning MD.
- consolidation of the various similar potential variants. e.g. using templates
- improvements to the build system
- optimizations
- commented test cases for validation of LAMMPS.

i am certain there are plenty more ideas floating around that i don't
have on my mind right now.

axel.

Axel,

So, what if there would be some bug-tracking service like redmine coupled with dedicated git repository? It would let sandians, you and other experts to publicly state tasks that need to be done, and provide people who can contribute a couple of hours from time to time with "things to do now". Of course, coding-related problems may also appear in that tracker.

Oleg

Hi Axel
    Thanks for the proposal.

    I am interested.
    I have not started my job yet, but if I am employed (I think I
am), and if my PI will allow me to go, I'd come. Otherwise, I'd be
interested in videoconferencing.
    I'm flexible about the time and place.
    (The topic I'm currently interested in are how to modify the code
to change the topology during the simulation, but that may change if I
come to my senses.)
Cheers

Andrew

sorry spamming the mailing list.

Hi Axel
    Thanks for the proposal.

    I am interested.
    I have not started my job yet, but if I am employed (I think I
am), and if my PI will allow me to go, I'd come. Otherwise, I'd be
interested in videoconferencing.

sorry, i don't think that videoconferencing for anybody but "mentors"
will work (and even in that case, there are amends to be made by
on-site people). the key point is to be taken out of your normal
context and to be able to focus. that is why i like doing workshops
and tutorials at ICTP so much. that is a self-contained facility with
organizational support where you can focus on science and training
(which is ICTP's mission in the first place).

    I'm flexible about the time and place.
    (The topic I'm currently interested in are how to modify the code
to change the topology during the simulation, but that may change if I
come to my senses.)

which reminds me of another set of topics: improved compatibility with
CHARMM, Amber and Gromacs. the existing legacy converter tools all
have some issues. it would be a nice self-contained project to build a
new set of tools from scratch ...and a validation test suite to go
with it. well, CHARMM has some additional hurdles with (still) missing
cross term support and it would probably be easier to re-implement
dihedral and urey-bradley support in a less convoluted way that
doesn't make assumptions that were true at the time of older CHARMM
force field versions.

axel.

Axel,

from my point of view, the topics you indicated fall in two major categories: work on code and auxiliary "housekeeping" work. I agree that probably the best way to involve people in working on the first - coding - category is the hackaton format that you suggest. At the same time, the second category (documentation, comments in code, tutorials etc.) a) cannot be "solved" once - it needs continuous work - and b) does not require so much expertise in LAMMPS internals. It still needs some cooperation and management, though (as you pointed out in previous email).

i mostly agree on this, but also the second category needs a "big
push" to get started, and that is something that is best done with a
group of people, away from the common distraction and - if possible -
with a bit of a friendly competition to motivate people. the main
reason for such a push is that only if there is a presentable result
that would be convincing, there is a chance that the effort will make
it at some point into the main repository.

So, what if there would be some bug-tracking service like redmine coupled with dedicated git repository? It would let sandians, you and other experts to publicly state tasks that need to be done, and provide people who can contribute a couple of hours from time to time with "things to do now". Of course, coding-related problems may also appear in that tracker.

those do exist. they are just not used. the git repo of both the
regular LAMMPS distribution and the LAMMPS-ICMS branch are mirrored to
both github and bitbucket. each group/person can fork one of them and
then submit pull requests. ideally this would be based off of
LAMMPS-ICMS, as that would make integrating pull requests infinitely
easier and we do not lose the commit history.

check out: https://github.com/lammps/lammps and
https://bitbucket.org/akohlmey/lammps
both repos have two branches (master and lammps-icms), there is a bug
tracking facility and more.

i would not expect too much initiative from (senior) people at SNL
outside of some general consulting. nevertheless, steve has stated
many times that he is willing to accept useful contributions on all
levels. but we both have seen that he is not very familiar with the
various aspects of modern software project management and the
associated tools. the barrier to change his workflow (which works very
well for him and that he is very comfortable with) is too high. so for
the time being, i believe that "we" (and that primarily means people
that *are* familiar with such workflows and tools) have to take the
initiative and demonstrate the benefit. like i mentioned earlier,
similar things have happened in a similar fashion (i.e. people taking
initiative and making a convincing case) and as a consequence
contributing to LAMMPS and working as a "downstream developer" is now
considerably easier than what it used to be.

axel.

I am in, albeit under spatio-financial constraints. I live and study in Turkey but I might be able to get some travel funding. Traveling to 1st world is always somewhat problematic for non-1st-world-citizens but it can be dealt with. That being said, it would be so much easier for me to attend at ICTP.

Also, what is the LAMMPS-ICMS branch? How is it different than the main branch?

Murat

Hi everyone,

I'd be very interested in attending this, though like others it would be subject to finding funding (which would be easier if the location were European than if otherwise). I don't have a particular area of interest right now, but we have a few ideas on the horizon for which it would be really useful to have a broader understanding of how all the bits of LAMMPS fit together. I agree it could be a great chance to blitz through some ideas on a wish list of features.

Thanks,

Niall

I am in, albeit under spatio-financial constraints. I live and study in
Turkey but I might be able to get some travel funding. Traveling to 1st
world is always somewhat problematic for non-1st-world-citizens but it can
be dealt with. That being said, it would be so much easier for me to attend
at ICTP.

in order to have an ICTP supported activity, a (successful) proposal
would have to be written and submitted by february 2015 for the year
2016. otherwise facilities would have to be rented.

also, i would like to point out that in travel to a conference (which
often has a limited impact) causes a considerable cost

Also, what is the LAMMPS-ICMS branch? How is it different than the main
branch?

https://sites.google.com/site/akohlmey/software/lammps-icms

Hi everyone,

I would also be very interested in attending this, but l am in a similar situation as Niall and it strongly depends on whether I can allocate funding for it.
Anyway, I think it’s a great idea to organise that!

Thanks,

Peter

Hi everyone,

I'd be very interested in attending this, though like others it would be
subject to finding funding (which would be easier if the location were
European than if otherwise). I don't have a particular area of interest

if you want an activity to be hosted in europe, you'd have to find
some place to host it. more importantly, you also need to bring in
people that can act as "mentor", most of which are located in the US,
and most of those in Albuquerque. this is why it would be the most
effective to place the activity in conjunction with the next LAMMPS
users workshop.

that being said, there is nothing prohibiting us from having two such
events (in general, since the LAMMPS workshop in ABQ is on a two year
schedule, it would also make sense to alternate this event between the
US and europe as well). in any case, the only way to make this work is
to either submit a proposal to an entity that supports such activities
(for europe that could be CECAM) and accept that there is a
significant delay, or to do this in a self-organized fashion, which
may mean to be creative in obtaining funding.

one thing that comes to my mind is that we could pass a hat around and
see if any of the companies that utilize LAMMPS in their products
(e.g. graphical or web/cloud frontends) have an interest to support
this kind of activity (perhaps also some suggestions/requests) and
provide some sponsoring money. in fact, they might even want to send a
staffer or two as a participant.

unlike a conference or symposium, there would be less of an
opportunity to generate leads for future sales, but it could be seen
as an investment into "infrastructure"...

hmm....