Walker
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:
Walker — Time-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.
RNGTest — Random 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.
UnitTest — Test 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.