Ready to use analysis and buildings blocks to write parallel analysis algorithms using MDAnalysis with dask.
Warning
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)
print(rmsd_ana.rmsd)
By default PMDA use the multiprocessing scheduler of dask. This is sufficient
if you want to run your simulation on a single machine. If your analysis takes
a very long time (>30 min) you can also spread it to several nodes using the
distributed scheduler. To do this you can pass a scheduler
keyword
argument to the run
method.
To write your own parallel algorithms you can subclass the
pmda.parallel.ParallelAnalysisBase
class.
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 https://github.com/MDAnalysis/pmda/.
The latest release is available from https://pypi.org/project/pmda/ and can be installed with pip
pip install --upgrade pmda
To install the latest development version from source, run
git clone [email protected]:MDAnalysis/pmda.git
cd pmda
python setup.py install
Help is also available through the MDAnalysis mailing list
https://groups.google.com/group/mdnalysis-discussion
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 [Linke2018].
[Linke2018] | Max Linke, & Oliver Beckstein. (2018, May 11). MDAnalysis/pmda: 0.1.0 (Version 0.1.0). Zenodo. http://doi.org/10.5281/zenodo.1245759 |