Lightning-fast simulator for the Exponential and Gaussian Random Energy Models
If you use this code, please consider citing our work
⚡ Fast spin-flips using decimal representation and bit-flip operations, driven by the Arbitrary Precision (AP) library, no need to store an expensive std::vector<int>
for every system anymore.
⚡ System energies are stored using a least recently used cache, leading to orders of magnitude more memory saving and together wth the AP library, arbitrarily large systems.
⚡ MPI load-balancer, allowing for massively parallel simulations on high-performance computing systems. The rare time-consuming job no longer holds up other simulations.
Please see our documentation for instructions on how to install, run and understand the results of hdspin!
The hdspin software is released under a 3-clause BSD license.
Much of this work would have been significantly harder if not for some incredible products of the open source community!
The hdspin software hosts codes locally as per the permissive terms of the associated licenses (check out this explicitly clear blog post regarding the Catch library for more details, if you're interested). These excellent packages are:
- Niels Lohmann's Json header, for handling config serialization to disk
- Alexander Ponomarev's LRU cache header, for handling the... LRU cache
- Catch2 (the header-only version), for unit testing
- CLI11 for all command line argument needs
- The Arbitrary Precision library, for all arbitrary precision integer uses
This software is based upon work supported by the U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research, Department of Energy Computational Science Graduate Fellowship under Award Number DE-FG02-97ER25308.