THIS PROJECT HAS BEEN ABANDONED
After some development in the
develop branch, the interface has changed enough for me to make the decicion to give it a clean slate. The new project is called MCKL, which at the moment is almost identical to the
develop branch of vSMC. It can be found at https://github.com/zhouyan/MCKL
The vSMC library provides a framework for implementing SMC algorithms. It has a modules that perform resampling, etc., operations common to all SMC algorithms and applications. In addition, it provides bases for implementing parallelized samplers. The SMC algorithms are highly parallelizable, but there are many frameworks for doing this. This library tries to hide the different parallelization mechanism behind a unified interface, and thus increases code reuse.
This is a header only template C++ library. To install the library just move
the contents of the
include directory into a proper place, e.g.,
/usr/local/include on Unix-alike systems. Alternatively, one can use
CMake (3.0.0 or later required),
cd /path_to_vSMC_source mkdir build cd build cmake .. make install
One may need administrator permissions to perform the last installation step or
alternatively one can define the CMake variable
to change the destination of installation.
This library requires a working BLAS/LAPACK implementation, with the standard C
interface headers (
lapacke.h). Some of the library's
functionalities can only be used if a optional dependencies are present.
Notably, HDF5, TBB, OpenMP and MKL. One can
tell the library that these optional features are available by defining
configuration macros such as
-DVSMC_HAS_HDF5=1 during compilation.
This library makes heavy use of some template metaprogramming techniques. It requires a C++11 standard conforming compiler.
Other compilers might work but are not tested. Complete C++11 implementation is required.
Examples are in the
example subdirectory, to build them,
export CXXFLAGS=c++11 cd /path_to_vSMC_source mkdir build cd build cmake .. make example
Some examples may only be built if some optional dependencies are present.
The vSMC library is distributed with a 2-clause BSD license which can be found
LICENSE file distributed with the source.