vSMC  v3.0.0
Scalable Monte Carlo
vSMC

Introduction

The vSMC library provides a framework for implementing Monte Carlo algorithms. It was originally developed for the purpose of parallel implementation of SMC algorithms. But it now supports other algorithms as well. The library provides basic building blocks for implementing parallelizable Monte Carlo algorithms.

Installation

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.

Documentation

Doxygen generated reference manuals for the master and develop branches, as well as for individual releases can be found online (see release notes for links). A [Manual][VSMCManual] is also provided.

Third-party dependencies

This library requires a working BLAS implementation. 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.

Compiler support

This library makes heavy use of some template metaprogramming techniques. It requires a C++11 standard conforming compiler.

This library has been regularly tested with recent Clang, GCC and Intel C++ Compiler in C++11 mode.

Other compilers might work but are not tested. Complete C++11 implementation is required with thread-local storage as an exception.

Examples

Examples are in the example subdirectory, to build them,

1 export CXXFLAGS="-std=c++11"
2 cd /path_to_vSMC_source
3 mkdir build
4 cd build
5 cmake .. -DCMAKE_BUILD_TYPE=Release
6 make example

Some examples may only be built if optional dependencies are present.

License

The vSMC library is distributed with a 2-clause BSD license which can be found in the LICENSE file distributed with the source.