Introduction¶
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.