PMDA - Parallel Molecular Dynamics Analysis

Build Status Coverage PRs welcome DOI




Oct 18, 2020

Ready to use analysis and buildings blocks to write parallel analysis algorithms using MDAnalysis with Dask.


This project is alpha software and not API stable. It will and should rapidly evolve to test different approaches to implementing parallel analysis in a seamless and intuitive fashion.

For example, run a rmsd analysis on all available cores:

import MDAnalysis as mda
from pmda import rms

u = mda.Universe(top, traj)
ref = mda.Universe(top, traj)

rmsd_ana = rms.RMSD(u.atoms, ref.atoms).run(n_jobs=-1)


By default PMDA uses the multiprocessing scheduler of Dask. This is sufficient if you want to run your simulation on a single machine although you may use any of the single-machine schedulers that Dask supports. If your analysis takes a long time you can also spread it to several nodes using the distributed scheduler (see Parallelization for more details).

To write your own parallel algorithms you can subclass the ParallelAnalysisBase class (see Writing new parallel analysis for more details).

License and source code

PMDA is released under the GNU General Public License, version 2 (see the files AUTHORS and LICENSE for details).

Source code is available in the public GitHub repository


The easiest way to install PMDA is as a conda package and will result in a complete installation on Linux, macOS, and Windows 1. If you have not installed Python packages before, we recommend that you perform the conda installation.

PMDA runs under Python 3.4 or higher or Python 2.7 on Linux, macOS, and Windows 1.

Install a release with conda

First installation with conda:

conda config --add channels conda-forge
conda install pmda

which will automatically install a full set of dependencies (including MDAnalysis, Dask, and distributed).

To upgrade later:

conda update pmda

Install a release with pip

The latest release is available from and can be installed with pip

pip install --upgrade pmda

Development version from source

To install the latest development version from source, run

git clone [email protected]:MDAnalysis/pmda.git
cd pmda
python install

Getting help

Help is also available through the MDAnalysis mailing list.

Please report bugs and feature requests for PMDA through the Issue Tracker.


PMDA welcomes new contributions. Please drop by the MDAnalysis developer mailing list to discuss and ask questions.

To contribute code, submit a pull request against the master branch in the PMDA repository.


If you use PMDA in published work please cite [Fan2019].



PMDA itself is a pure Python package and runs without problems on all operating systems that support Python. However, it requires MDAnalysis for its operation and support for Windows is currently experimental in MDAnalysis 0.19.1.