Walker

Image

Walker is a mathematical tool to analyze and design the behavior of stochastic differential equations.

Using the Charm++ runtime system, it employs asynchronous (or non-blocking) parallel programming and decomposes computational problems into a large number of work units (that may be more than the available number of processors) enabling arbitrary overlap of parallel computation, communication, input, and output. Then the runtime system dynamically and automatically homogenizes computational load across the simulation distributed across many computers.

Tools

Walker consists of the following tools:

WalkerTime-integrator for stochastic differential equations

Walker is a mathematical tool to analyze and design the behavior of stochastic differential equations. Solving a multivariate Fokker-Planck equation, it allows the estimation of arbitrary coupled statistics and probability distributions as they evolve in time and is used for the design of statistical moment approximations for turbulent flows.

RNGTestRandom number generators test suite

RNGTest is a test harness to subject random number generators to stringent statistical tests, enabling quantitative ranking with respect to their quality and computational cost. Multiple generators can be tested from Intel's Math Kernel Library, RNGSSE, and Random123.

UnitTestTest suite for synchronous and asynchronous functions

UnitTest is an asynchronous distributed-memory-parallel test harness, capable of testing serial, synchronous (e.g., MPI) parallel, and asynchronous parallel (e.g., Charm++) functions.

Build

Install prerequisites: Debian/Ubuntu linux

apt-get install git autoconf cmake gfortran g++ gmsh libblas-dev liblapack-dev liblapacke-dev libopenmpi-dev libhdf5-dev libhdf5-openmpi-dev libnetcdf-mpi-dev libboost-all-dev tao-pegtl-dev libpstreams-dev librandom123-dev libbackward-cpp-dev libdw-dev binutils-dev

Clone, build external libs, build, test

git clone https://codeberg.org/wlkr/walker.git && cd walker
mkdir external/build && cd external/build && cmake .. && make -sj$(grep -c processor /proc/cpuinfo) && cd -
mkdir build && cd build && cmake ../src && make -sj$(grep -c processor /proc/cpuinfo) && cd -
cd build && ./charmrun +p $(grep -c processor /proc/cpuinfo) Main/unittest -v -q && ctest -j $(grep -c processor /proc/cpuinfo) --output-on-failure -LE extreme && cd -

All executables will be under build/Main/.

License

GPL v3.

History

Walker was originally developed as part of Quinoa and later was split off from the mesh-based solvers to contain only the tools in this repository.