Do you want people to use CP2K?

akohlmey akoh... at
Sat Apr 28 22:01:32 UTC 2007

Hi everybody!

Here is one question to the CP2K developers team
that is bugging me and some other people for a while now:

Do you really want people to _use_ cp2k?

If not, please _tell_ us so that we don't
lose more time in trying to play catch-up
with compiler versions, libraries, unexpected
input file changes and don't need to suffer
every single time, when we try to compile it
on a new machine.

If yes, please take the following issues
under serious consideration:

- We need to have an official release! As much as it is
  understandable, that many of you want to wait until you
  have the perfect program, it is impossible to tell somebody
  in a supercomputing center 'I need cp2k, but I need the version
  of jan-33-2007, since that worked so well for regular QuickStep,
  and please also compile feb-30-2007 because that was better for QM/

  A significant part of the functionality in cp2k is now quite
  so why not pick a 'known-to-be-good(TM)' version, make a list of
  working features, then create a branch on the cvs, make a (beta?)
  release (2007-05.pl0) and apply only bug fixes to that branch and
  make those available from time to time. If done with some
  it would mean little additional work, but _much_ more consistent
  behavior for the released code branch, which is exactly what users
  if you want people to use cp2k, you have to give them a chance.

- The compileability (portability?) of cp2k should be a priority, at
  least on the release branch. It is especially difficult to port
  to many commonly used platforms at the major supercomputing centers
  (US, Europe, Japan). It is a reality the many of the tools available
  do not follow the latest greatest standards and sticking to a more
  globally supported subset will allow of a greater exposure of cp2k
  to high-end hardware and thus more ambitious and prestigious

  With the most extreme example being the libint interface (and
  functionals would actually be an application that needs to be run
  on high-end hardware) and the fact that even a tool bundled with
  and required to compile cp2k (forpar.x) chokes on it. This is a
  point, where it is difficult to see the common sense in it.
  Where do we get a g95 for a NEC-SX8, IBM BG/L, Cray XT3?
  Do we really need a function pointer interface to C?
  This is essentially an invitation for compilers to miscompile the
  code and debugging becomes even more difficult as it is already.

- People that want to use the (great) features that are currently
  under active development and that are willing to follow the cvs,
  but are not developers, need to know what is happening.
  Even the cp2k website says:

   Using the code for production quality simulations is possible but
   requires detailed knowledge about the active development.

  So where do we _get_ this knowledge?

  As an aside: in the last draft of this mail, there was a paragraph
  here, suggesting to move the forum away from the disastrous
  Berlios site where we can have something that works more like
  a mailing list (i.e. you can quote previous messages). With the
  new cp2k google group, this is no longer required. Thanks for that.

- Finally, if you want 'just users' to really put your code to use,
  we need to have a some _real_ examples that produce 'good(TM)'
  results, that people can follow them. The regtest directories are
  not very helpful, as those inputs are engineered to test
  reproducibility of previously implemented features.

  And then some (simple) guidelines are needed on how to setup a
  'normal' calculation, how to pick potentials, basis sets, force
  avoid common problems, etc. so that people can actually start
  on producing a good user's guide. In my opinion, a good user's
  is written by users (and not necessarily developers), thus 'early
  users need feedback on their inputs and the documentation they would
  'Help in exchange for Documentation' could be a motto for this.

  Again, initially i would suggest here to use some wiki-style
  web service (even berlios would provide this), but it seems the
  solution in the google group would be more suitable, at least
  for building an initial draft.

Certainly, some of you will now feel (a little?) offended, as you
put in all the hard work and made everything freely available, so why
should you bother? Right! You are totally entitled to say that, but
then please don't present cp2k as something that everybody can (and
should) use.

cp2k has obviously a lot of potential, but as long as only a few
can exploit it, it will stay a sideshow. If you _want_ people to use
you have to occasionally make a step towards them.

Thanks for reading this far. We hope that you don't find this text
more thought provoking than inflammatory, and rather see it as a
conscientious effort by devoted users to help bringing cp2k into
mainstream use. Something that would benefit both, (current and
future) users and developers.

with best regards,
    axel kohlmeyer.

supported by:
Mauro Boero
Guillaume Lamoureux
Nichols A. Romero

P.S.: The final edit is by me (axel), so any errors or
are most likely my fault.

More information about the CP2K-user mailing list