{ "info": { "author": "Daniele Coslovich", "author_email": "daniele.coslovich@umontpellier.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Topic :: Scientific/Engineering :: Physics" ], "description": "atooms-pt: Multi-core / multi-GPU parallel tempering\n====================================================\n\n|pypi| |version| |license| |DOI|\n\n`Parallel\ntempering `__ is a\nsimulation method that accelerates sampling of configuration space in\nsystems with rugged energy landscapes. Applications range from the\nsimulation of biomolecules to studies of phase transitions in condensed\nmatter or spin glasses. The key idea is to perform Monte Carlo or\nmolecular dynamics simulations of independent replicas of the system of\ninterest at different state conditions (say, temperatures). During the\nsimulation, the states of pairs of replicas are exchanged in a way that\nrespects detailed balance. Through these exchanges replicas can overcome\nenergy barriers and sample the configuration space more efficiently.\n\nSince replicas evolve independently between exchanges, the algorithm is\nstraightforward to parallelize. atooms-pt relies on\n`mpi4py `__ to distribute groups of\nreplicas to multiple CPUs and/or GPUs and it builds on the\n`atooms `__ framework to decouple\nthe algorithm from the underlying simulation backend. The scalability is\nexcellent up to several tens of CPUs or GPUs. The preferred simulation\nbackend is `RUMD `__, a molecular dynamics code running\nentirely on GPUs that is very efficient even on small system sizes, say\nof a few hundreds particles.\n\nQuick start\n-----------\n\n>From the command line:\n\n.. code:: shell\n\n pt.py --steps 10 -T 1.0,0.9,0.8 -e 50000 -i data/kalj.xyz.gz /tmp/output_dir\n\nThis will run 10 steps of parallel tempering simulation for three\nreplicas, starting from the configuration in ``data/kalj.xyz.gz`` and\nwriting output to ``/tmp/output_dir``. The replicas are simulated at\ntemperatures 1.0, 0.9 and 0.8 and temperature exchanges are attempted\nevery 50000 steps of the underlying simulation backend.\n\nThe same simulation can be ran from python:\n\n.. code:: python\n\n from atooms.backends.rumd import Rumd\n from atooms.simulation import Simulation\n from atooms.parallel_tempering import ParallelTempering\n\n temperatures = [1.0, 0.9, 0.8]\n\n # Create backends and wrap them as simulation instances\n backend = [Rumd(integrator='nvt', temperature=T) for T in temperatures]\n sim = [Simulation(s) for s in backend]\n pt = ParallelTempering(sim, params=temperatures,\n output_path='/tmp/output_dir',\n steps=10, exchange_interval=50000)\n pt.run()\n\nThe current implementation targets the RUMD molecular dynamics package,\nbut any atooms simulation backend (for instance, LAMMPS) should work\njust fine.\n\nRequirements\n------------\n\n- `numpy `__\n- `atooms `__\n- `mpi4py `__\n- `RUMD `__ (for multi-GPU)\n\nInstallation\n------------\n\n>From the python package index\n\n::\n\n pip install atooms-pt\n\n>From the code repository\n\n::\n\n git clone https://gitlab.info-ufr.univ-montp2.fr/atooms/parallel_tempering.git\n python setup.py install\n\nAcknowledgments\n---------------\n\nThis code was developed in the context of PRACE (\"Partnership for\nAdvanced Computing in Europe\") project 2010PA1751 \"Multi-GPU parallel\ntempering simulations\".\n\nAuthors\n-------\n\nDaniele Coslovich:\nhttp://www.coulomb.univ-montp2.fr/perso/daniele.coslovich/\n\n.. |pypi| image:: https://img.shields.io/pypi/v/atooms-pt.svg\n :target: https://pypi.python.org/pypi/atooms-pt/\n.. |version| image:: https://img.shields.io/pypi/pyversions/atooms-pt.svg\n :target: https://pypi.python.org/pypi/atooms-pt/\n.. |license| image:: https://img.shields.io/pypi/l/atooms-pt.svg\n :target: https://en.wikipedia.org/wiki/GNU_General_Public_License\n.. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.1183662.svg\n :target: https://doi.org/10.5281/zenodo.1183662\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.info-ufr.univ-montp2.fr/daniele.coslovich/atooms/parallel_tempering", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "atooms-pt", "package_url": "https://pypi.org/project/atooms-pt/", "platform": "", "project_url": "https://pypi.org/project/atooms-pt/", "project_urls": { "Homepage": "https://gitlab.info-ufr.univ-montp2.fr/daniele.coslovich/atooms/parallel_tempering" }, "release_url": "https://pypi.org/project/atooms-pt/1.1.1/", "requires_dist": [ "atooms (>=1)" ], "requires_python": "", "summary": "Multi-CPU / multi-GPU parallel tempering", "version": "1.1.1" }, "last_serial": 4450629, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "8d937b1ea35692913fb96374f048a7ed", "sha256": "78a679df6416084277b750495445be2b381f7c6aa8c5bab14ba90aa2db87567b" }, "downloads": -1, "filename": "atooms_pt-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8d937b1ea35692913fb96374f048a7ed", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14893, "upload_time": "2018-02-22T15:03:39", "url": "https://files.pythonhosted.org/packages/e4/cd/56b8d18d9b239e8c8c4d9b7c0a20bf53e60efece94c32299fbd80afd8b94/atooms_pt-1.0.1-py2.py3-none-any.whl" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "c385a6581e8ed27be953ee7e54c2d2d3", "sha256": "8b3f0a2b92868ca630f6ea76770433150a0cce6faf6bd9038e5660268364566b" }, "downloads": -1, "filename": "atooms_pt-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c385a6581e8ed27be953ee7e54c2d2d3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17244, "upload_time": "2018-02-27T21:58:58", "url": "https://files.pythonhosted.org/packages/31/8f/681ae46102ef6b2201368888cbccf213c6c53778ce7b21f68b7ff2038495/atooms_pt-1.1.0-py2.py3-none-any.whl" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "1428668ee7943e65e2b260ae28872f2b", "sha256": "6905150d4f99ec459fa72ccc0acdb06bfcc9efb142cee81ed0061b92f4a5af38" }, "downloads": -1, "filename": "atooms_pt-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1428668ee7943e65e2b260ae28872f2b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16252, "upload_time": "2018-11-04T21:13:28", "url": "https://files.pythonhosted.org/packages/50/c2/603a69fd5b688efc7433dea6784d0943a2bc2cbc637e9f7819aea4336769/atooms_pt-1.1.1-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1428668ee7943e65e2b260ae28872f2b", "sha256": "6905150d4f99ec459fa72ccc0acdb06bfcc9efb142cee81ed0061b92f4a5af38" }, "downloads": -1, "filename": "atooms_pt-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1428668ee7943e65e2b260ae28872f2b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16252, "upload_time": "2018-11-04T21:13:28", "url": "https://files.pythonhosted.org/packages/50/c2/603a69fd5b688efc7433dea6784d0943a2bc2cbc637e9f7819aea4336769/atooms_pt-1.1.1-py2.py3-none-any.whl" } ] }