Introduction

_images/mpmc.png

MPMC (Massively Parallel Monte Carlo) is an open-source Monte Carlo package primarily designed for the simulation of liquids, molecular interfaces and functionalized nanoscale materials. It was originally developed by Jon Belof, includes contributions from Keith McLaughlin, Brant Tudor, Christian Cioce, Adam Hogan and Douglas Franz, and is currently maintained by the Brian Space group in the Department of Chemistry at North Carolina State University. MPMC has been applied to the scientific research challenges of nanomaterials for clean energy, environmental sequestration, and molecular detection. Developed to run efficiently on the most powerful supercomputing platforms, MPMC can scale to very large numbers of CPUs or GPUs (with support provided for NVidia’s CUDA).

Optimized for the study of nanoscale interfaces, MPMC supports many common intermolecular potentials including Lennard-Jones and damped dispersion paired with exponential repulsion, many-body polarization, coupled-dipole van der Waals, quantum rotational statistics, semi-classical quantum effects, advanced importance sampling methods relevant to fluids, and numerous tools for the development of intermolecular potentials.

Citing MPMC

Franz, D. M.; Belof, J. L.; McLaughlin, K.; Cioce, C. R.; Tudor, B.; Hogan, A.; Laratelli, L.; Mulcair, M.; Mostrom, M.; Navas, A.; Stern, A. C.; Forrest, K. A.; Pham, T.; Space, B.
Adv. Theory Simul. 2019, DOI: 10.1002/adts.201900113.

Supported Systems

Currently a basic build of MPMC only requires a modern C compiler and CMake. Optionally MPMC may be configured to use OpenMPI or CUDA. Configuring with Coupled-Dipole VDW or QM Rotation options requires LAPACK.

MPMC supports compilation on Linux, macOS, and Windows; however MPMC is primarily tested on Linux and support is not guaranteed on other platforms.

Downloading MPMC

MPMC can be downloaded from the releases page on GitHub or with the following command:

git clone --recursive https://github.com/mpmccode/mpmc

Building MPMC

Once MPMC has been downloaded it may be quickly compiled with the following bash script:

bash compile.sh

Note that CMake v2.8 is required for compilation. More complete control may be exercised by invoking CMake directly:

mkdir build
cd build
cmake -DQM_ROTATION=OFF -DVDW=OFF -DMPI=OFF -DCUDA=OFF -DCMAKE_BUILD_TYPE=Release -Wno-dev ../
make

Make sure to add MPMC to your path after compiling!

Running MPMC

MPMC accepts only one argument on the command line, the location of the MPMC input script:

mpmc input.inp

Updating MPMC

MPMC can be updated with the following command:

git pull

and then rebuilding as necessary.

MPMC Tutorials

Example MPMC input scripts and PQRs are available in the tutorials_and_examples folder in the root directory.

MPMC Testing Suite

An end-to-end test suite for MPMC is currently under development. If cloning MPMC anew, use the following to include the tests:

git clone https://github.com/mpmccode/mpmc --recurse-submodules

To clone the submodule into an existing MPMC installation, use this instead:

cd mpmc
git submodule init
git submodule update

To run the tests, make sure you have Python installed, compile MPMC normally, and then run:

cd mpmc_testing
python3 run_tests.py

More information about the test suite can be found in its repository.

License

MPMC is licensed under the GNU GPL v3 license, a copy is located in the root directory.