Introduction

MDPAR is a hybrid Mpi/OpenMp parallel molecular dynamics simulator.

Below follows an expert from the user manual describing the package components you will find in the archive that is available for download.

You may also want to read the user manual which is available both as a separate download and packaged in the downloadable archive.

 

The Simulator’s Main Executable

The simulator’s main executable is mdpar. It loads the molecular system’s setup from properly formatted input files and it runs in parallel using mpi and openmp. It outputs the simulation’s results to text or binary files. The results may be particle trajectories, calculated physical quantities like total energy etc. The main executable is also used to perform some auxiliary tasks like converting an input system’s topology to other formats.

 

Data Conversion and Analysis Utilities

There is series of small utilities that perform helpful tasks. The are mostly python scripts that may have been converted to executables or not depending on how the package has been installed on your system

  • py Creates a tabulated bond potential file from an analytical formula.
  • py Creates a tabulated angle potential file from an analytical formula.
  • py Creates a tabulated dihedral potential file from an analytical formula.
  • py Creates a tabulated non bonded potential file from an analytical formula.
  • py: Converts saved trajectory to VCF format that can be viewed by VMD.
  • py: Converts a 9 term dihedral potential to a 5 term one by curve fitting.
  • py: Converts Lennard-Jones potential to Morse potential by curve fitting.

 

Test Cases

The simulation package is accompanied with some preconfigured test cases, serving primarily in checking the validity and performance of the simulation and also serving as example configurations for a new user of the package.

There exists an automated test script that runs a sequence of preconfigured simulations with both our simulation and LAMMPS. The deviation of the calculated statistical quantities between the two simulation packages has been stored on disk and the results are checked to conform to it. A report is generated stating the conformance of the results or not, accompanied with plots of the statistical quantities checked.

 

Performance Measurement Script

A small test script exists that runs a system with variable number of processors to produce parallel speedup graphs. It is the perf.py script located in the in the mdconfs folder.

To run it you must specify the configuration the performance measurements are to be performed against and the number of mpi ranks and the number of openmp threads each mpi rank should use.

After the script has completed you will find a series of performance related plots in mdconfs folder in png format:

  • The plot of the execution time vs total number of threads
  • The plot of speedup vs total number of threads
  • The plot of efficiency vs total number of threads
  • The plots of speedup and efficiency vs total number of threads for the most prominent parts of the execution time.
  • The plot of the relative execution time spent at the most prominent parts of the simulation vs the number of total threads

By reading these plots you can get hints on where to focus optimization efforts during development or detect the effects of newly introduced modules on the performance of the simulation.