-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmainpage.dox
79 lines (57 loc) · 3.19 KB
/
mainpage.dox
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/*!
@mainpage Walker
@m_div{m-col-t-4 m-col-m-3 m-right-t}
<img src="images/Eo_circle_light-green_letter-w.svg"/>
@m_enddiv
_Walker_ is a mathematical tool to analyze and design the behavior of
stochastic differential equations.
Using the [Charm++](http://charmplusplus.org/) 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.
@section mainpage_tools Tools
Walker consists of the following tools:
@ref walker_main --- __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](https://en.wikipedia.org/wiki/Fokker%E2%80%93Planck_equation),
it allows the estimation of arbitrary coupled @ref statistics_output
"statistics" and probability distributions as they evolve in time and
is used for the design of @ref papers "statistical moment approximations"
for turbulent flows.
@ref rngtest_main --- __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](https://software.intel.com/en-us/intel-mkl),
[RNGSSE](https://doi.org/10.1016/j.cpc.2013.04.007), and
[Random123](http://www.thesalmons.org/john/random123/releases/latest/docs/index.html).
@ref unittest_main --- __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.
@section mainpage_build Build
Install prerequisites: _Debian/Ubuntu linux_
@code
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
@endcode
Clone, build external libs, build, test
@code
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 -
@endcode
All executables will be under `build/Main/`.
@section mainpage_license License
GPL v3.
@section mainpage_history History
Walker was originally developed as part of
[Quinoa](https://quinoacomputing.github.io/archive/) and later was split off
from the mesh-based solvers to contain only the tools in this repository.
*/