{ "info": { "author": "Mike McKerns", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2", "Topic :: Scientific/Engineering", "Topic :: Software Development" ], "description": "----------------------------------------------\npyina: MPI parallel map and cluster scheduling\n----------------------------------------------\n\nAbout Pyina\n===========\n\nThe ``pyina`` package provides several basic tools to make MPI-based\nparallel computing more accessable to the end user. The goal\nof ``pyina`` is to allow the user to extend their own code to MPI-based\nparallel computing with minimal refactoring.\n\nThe central element of ``pyina`` is the parallel map algorithm.\n``pyina`` currently provides two strategies for executing the parallel-map,\nwhere a strategy is the algorithm for distributing the work list of\njobs across the availble nodes. These strategies can be used *\"in-the-raw\"*\n(i.e. directly) to provide the map algorithm to a user's own mpi-aware code.\nFurther, in ``pyina.mpi`` ``pyina`` provides pipe and map implementations\n(known as *\"easy map\"*) that hide the MPI internals from the user. With the\n*\"easy map\"*, the user can launch their code in parallel batch mode -- using\nstandard python and without ever having to write a line of MPI code.\n\nThere are several ways that a user would typically launch their code in\nparallel -- directly with ``mpirun`` or ``mpiexec``, or through the use of a\nscheduler such as *torque* or *slurm*. ``pyina`` encapsulates several of these\n*\"launchers\"*, and provides a common interface to the different methods of\nlaunching a MPI job.\n\n``pyina`` is part of ``pathos``, a python framework for heterogeneous computing.\n``pyina`` is in active development, so any user feedback, bug reports, comments,\nor suggestions are highly appreciated. A list of known issues is maintained\nat http://trac.mystic.cacr.caltech.edu/project/pathos/query.html, with a public\nticket list at https://github.com/uqfoundation/pyina/issues.\n\n\nMajor Features\n==============\n\n``pyina`` provides a highly configurable parallel map interface\nto running MPI jobs, with:\n\n - a map interface that extends the python ``map`` standard\n - the ability to submit batch jobs to a selection of schedulers\n - the ability to customize node and process launch configurations\n - the ability to launch parallel MPI jobs with standard python\n - ease in selecting different strategies for processing a work list\n\n\nCurrent Release\n===============\n\nThis documentation is for version ``pyina-0.2.2``.\n\nThe latest released version of ``pyina`` is available at:\n\n https://pypi.org/project/pyina\n\n``pyina`` is distributed under a 3-clause BSD license.\n\n >>> import pyina\n >>> print (pyina.license())\n\n\nDevelopment Version\n===================\n\nYou can get the latest development version with all the shiny new features at:\n\n https://github.com/uqfoundation\n\nIf you have a new contribution, please submit a pull request.\n\n\nInstallation\n============\n\n``pyina`` is packaged to install from source, so you must\ndownload the tarball, unzip, and run the installer::\n\n [download]\n $ tar -xvzf pyina-0.2.2.tar.gz\n $ cd pyina-0.2.2\n $ python setup py build\n $ python setup py install\n\nYou will be warned of any missing dependencies and/or settings after\nyou run the \"build\" step above. ``pyina`` depends on ``dill``, ``pox``, ``pathos``, and\n``mpi4py``, so you should install them first. A version of MPI must also be\ninstalled. Launchers in ``pyina`` that submit to a scheduler will throw errors\nif the underlying scheduler is not available, however a scheduler is not\nrequired for ``pyina`` to execute.\n\nAlternately, ``pyina`` can be installed with ``pip`` or ``easy_install``::\n\n $ pip install pyina\n\n\nRequirements\n============\n\n``pyina`` requires:\n\n - ``python``, **version >= 2.6** or **version >= 3.3**\n - ``numpy``, **version >= 1.0**\n - ``mpi4py``, **version >= 1.3**\n - ``dill``, **version >= 0.3.0**\n - ``pox``, **version >= 0.2.6**\n - ``pathos``, **version >= 0.2.4**\n\nOptional requirements:\n\n - ``setuptools``, **version >= 0.6**\n - ``mystic``, **version >= 0.3.3**\n\n\nMore Information\n================\n\nProbably the best way to get started is to look at the documentation at\nhttp://pyina.rtfd.io. Also see ``pyina.examples`` and ``pyina.tests``\nfor a set of scripts that demonstrate the configuration and launching of\nmpi-based parallel jobs using the *\"easy map\"* interface. Also see\n``pyina.examples_other`` for a set of scripts that test the more raw\ninternals of ``pyina``. You can run the tests with ``python -m pyina.tests``.\nA script is included for querying, setting up, and tearing down an MPI\nenvironment, see ``python -m pyina`` for more information. The source code\nis generally well documented, so further questions may be resolved by\ninspecting the code itself. Please feel free to submit a ticket on github,\nor ask a question on stackoverflow (**@Mike McKerns**).\nIf you would like to share how you use ``pyina`` in your work, please send\nan email (to **mmckerns at uqfoundation dot org**).\n\nImportant classes and functions are found here:\n\n - ``pyina.mpi`` [the map API definition]\n - ``pyina.schedulers`` [all available schedulers] \n - ``pyina.launchers`` [all available launchers] \n\nMapping strategies are found here:\n\n - ``pyina.mpi_scatter`` [the scatter-gather strategy]\n - ``pyina.mpi_pool`` [the worker pool strategy]\n\n``pyina`` also provides a convience script that helps navigate the\nMPI environment. This script can be run from anywhere with::\n\n $ mpi_world\n\nIf may also be convienent to set a shell alias for the launch of 'raw'\nmpi-python jobs. Set something like the following (for bash)::\n\n $ alias mpython1='mpiexec -np 1 `which python`'\n $ alias mpython2='mpiexec -np 2 `which python`'\n $ ...\n\n\nCitation\n========\n\nIf you use ``pyina`` to do research that leads to publication, we ask that you\nacknowledge use of ``pyina`` by citing the following in your publication::\n\n M.M. McKerns, L. Strand, T. Sullivan, A. Fang, M.A.G. Aivazis,\n \"Building a framework for predictive science\", Proceedings of\n the 10th Python in Science Conference, 2011;\n http://arxiv.org/pdf/1202.1056\n\n Michael McKerns and Michael Aivazis,\n \"pathos: a framework for heterogeneous computing\", 2010- ;\n http://trac.mystic.cacr.caltech.edu/project/pathos\n\nPlease see http://trac.mystic.cacr.caltech.edu/project/pathos or\nhttp://arxiv.org/pdf/1202.1056 for further information.", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/uqfoundation/pyina/archive/master.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.org/project/pyina", "keywords": "", "license": "3-clause BSD", "maintainer": "", "maintainer_email": "", "name": "pyina", "package_url": "https://pypi.org/project/pyina/", "platform": "Linux", "project_url": "https://pypi.org/project/pyina/", "project_urls": { "Download": "https://github.com/uqfoundation/pyina/archive/master.zip", "Homepage": "https://pypi.org/project/pyina" }, "release_url": "https://pypi.org/project/pyina/0.2.2/", "requires_dist": null, "requires_python": "", "summary": "MPI parallel map and cluster scheduling", "version": "0.2.2" }, "last_serial": 5458482, "releases": { "0.1a1": [ { "comment_text": "", "digests": { "md5": "e6c3c09d6b86f0a47246348680e35fbf", "sha256": "a4e04338c66f7754342be9985b22b6f32293e6f7bb75e585865aa073c082f689" }, "downloads": -1, "filename": "pyina-0.1a1.tgz", "has_sig": false, "md5_digest": "e6c3c09d6b86f0a47246348680e35fbf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35280, "upload_time": "2015-12-22T20:26:09", "url": "https://files.pythonhosted.org/packages/8d/5d/a4e6c6dc52d2a05e8059a345b31f1b283258ac26c14021aa74e367d37544/pyina-0.1a1.tgz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "1da2814c31cc71779222acec4af91aeb", "sha256": "6698ddd4c0d8c4cc9a87637743c19bba35557616fd7d611479109d92f959b9ab" }, "downloads": -1, "filename": "pyina-0.2.0.tar.gz", "has_sig": false, "md5_digest": "1da2814c31cc71779222acec4af91aeb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 126948, "upload_time": "2018-06-22T00:58:43", "url": "https://files.pythonhosted.org/packages/4b/47/5a83b45075f47a823287796cbc7bd3c6706b4afc6a808b8149a5776a62a8/pyina-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "06b23230666c92d646af955ecd1026c9", "sha256": "562f3d480deb3b6213151ba0eea9b1cf7071bcfb78ebbcc482e72d0162fa55cb" }, "downloads": -1, "filename": "pyina-0.2.1.tar.gz", "has_sig": false, "md5_digest": "06b23230666c92d646af955ecd1026c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 127224, "upload_time": "2019-01-22T01:02:55", "url": "https://files.pythonhosted.org/packages/c7/dd/a58dd5b5b943a48e92f71451ce45cddba62b20efc5577c55f08bef295e4a/pyina-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "d406a97eb6221f7ad147b7ea31b1a6d8", "sha256": "3700315ad86c48868459ea3b29de23583ff9d3f20d2c692b5181f619fda5d3d6" }, "downloads": -1, "filename": "pyina-0.2.2.tar.gz", "has_sig": false, "md5_digest": "d406a97eb6221f7ad147b7ea31b1a6d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 127380, "upload_time": "2019-06-27T19:20:08", "url": "https://files.pythonhosted.org/packages/c1/75/950990011deb3ac5917985a42b67ff10f910d8ff00c0f57dfb74dffdf5d7/pyina-0.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d406a97eb6221f7ad147b7ea31b1a6d8", "sha256": "3700315ad86c48868459ea3b29de23583ff9d3f20d2c692b5181f619fda5d3d6" }, "downloads": -1, "filename": "pyina-0.2.2.tar.gz", "has_sig": false, "md5_digest": "d406a97eb6221f7ad147b7ea31b1a6d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 127380, "upload_time": "2019-06-27T19:20:08", "url": "https://files.pythonhosted.org/packages/c1/75/950990011deb3ac5917985a42b67ff10f910d8ff00c0f57dfb74dffdf5d7/pyina-0.2.2.tar.gz" } ] }