MCBooster
1.0.1
Tool to generate MC phase space samples in parallel.
|
MCBooster is an header only library designed for the fast generation of phase space events. The library makes use of Thrust and can deploy OpenMP threads, CUDA and Xeon Phi cores. It is focused on performance and precision.
The libray core algorithm follow as close as it is possible the implementation of the class TGenPhaseSpace from ROOT framwork, which is based on the GENBOD function (W515 from CERNLIB) using the Raubold and Lynch method as described in
_F. James, Monte Carlo Phase Space, CERN 68-15 (1968)_.
Generates phase space Monte Carlo samples with up to nine particles in the final state, using very simple and intuitive interface. Example:
Other key features are:
MCBooster also provides a bunch of custom types, containers and an increasing number of algorithms to maximaze performance, avoid unecessary usage of memory and grant flexibility and protability between host and device calculations and deployment scenarios.
Just changing .cu to .cpp in any source code writen only using the provided cosntructs is enough to compile your application for OpenMP using GCC in a machine without a NVIDIA GPU installed.
Many other possibilities and functionaties, bounded only by the creativity of the users.
The latest version can be found on the project relases page.
The complete and updated Doxygen source code documentation of this release is available in HTML format on the reference manual webpage. Users can also browse the documentation by class, file or name using the following links:
1.classes
2.files
3.names
MCBooster is a header only library, so no build process is necessary to install it. Just place the mcbooter
folder and its contents where your system can find it. The library run on Linux systems and requires C++11 and the Thrust library. Some examples demonstrating the basic features of the library are included in the src
folder. These code samples require ROOT and TCLAP library. CUDA based projects will require a local installation of CUDA Tookit with version 6.5 or higher. Alternatively, projects the targeting OpenMP backend can be compiled with either nvcc or gcc. The CUDA runtime is not required to use OpemMP with gcc.
Some example code samples demonstrating the basic usage of the library are stored in the src directory, in the project source tree. These samples can be built using CMAKE according the following instructions:
git clone https://github.com/MultithreadCorner/MCBooster.git
cd MCBooster
mkdir build
cd build
cmake ../
make
Users with root privilegies can do make install
and get the targets installed into system-install-dir/bin (usually /usr/local. Notice the project installation path is printed out in the setp 4). Users without root privileges can point the installation path to a different location cmake -DCMAKE_INSTALL_PREFIX=<user-path>/ ../
.
The examples are named according to the convention MCBooster_Example_<BACKEND AND COMPILER>_<EXAMPLE NAME>
. To run an example do ./example-name
. The examples are described below:
The program print some events and timing information to sdtout and plotsthe distributions of the above variables plus the B0 -> J/psiK pi Dalitz plot.
MCBooster is released under the GNU General Public License version 3. Please see the file called COPYING.
Here’s what you should do if you need help or would like to contribute:
MCBooster was created and is mantained by Antonio Augusto Alves Jr.
MCBooster's development has been supported by the National Science Foundation under grant number PHY-1414736. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the developers and do not necessarily reflect the views of the National Science Foundation.