espressomd-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ESPResSo-users] C++11 required and Random numbers


From: Florian Weik
Subject: [ESPResSo-users] C++11 required and Random numbers
Date: Wed, 24 Feb 2016 11:52:18 +0100

TL;DR
Espresso will need C++11 starting next week. PRNG changed. Further dependencies in the future.

Hi all,

I plan to merge pull request #546 next week.
This changes the random number generator to a Mersenne twister (from ran2 from Numerical Recipies, which has been scraped from the book years ago due to bad properties) as defined by the C++ standard [2], which I think offers a good trade-off between quality and speed.
The behavior of you simulations my change in detail due to this, but of course sound
sampling should not depend on the exact random numbers anyway. The Mersenne twister has
a much longer period than the old PRNG, which makes it more suitable for MC simulations,
which is, aside from technical grounds the reason for this change.

The importance with this change is that form this point on Espresso will require an C++11 compatible compiler. This means at least gcc 4.8, clang 3.3, icc 11.0 or version 8.4 of the Cray compiler. If you want to use the GPU features you need at least version 7.0 of NVCC and the toolkit. This supports all devices from compute capability 2.0 on, older devices have not been supported by Espresso for quite some time.

I also want to remind you that we will deprecate the autoconf and automake build system in favor of cmake in the near future. Already now there are features that are only available via cmake, and new features will only be added to that system if they require modification of the build system.

In addition Espresso will soon need various parts of the boost library, including serialization, mpi and signals2. This will help to reduce the amount of generic code that has to be maintained in Espresso, so we can concentrate more resources on functionality that is specific to our code. We don't think this will be an issue because boost is widespread and if not available can be build without further dependencies.

We are also thinking about dropping support for building without MPI, if you think this is a problem for you please say so. The reason for this is that the current solution is no longer viable in connection with boost.mpi.

Regards,
Florian

[1]: https://github.com/espressomd/espresso/pull/546
[2]: http://www.cplusplus.com/reference/random/mt19937/

--
Florian Weik, Dipl.-Phys.,
Institut für Computerphysik, Allmandring 3, D-70569 Stuttgart
Phone: +49-711-685-67703
Public Key 0x0562F11D Fingerprint 3294 6360 EC93 37A3 BD40  F597 0BAD 3AF8 0562 F11D


reply via email to

[Prev in Thread] Current Thread [Next in Thread]