SpiNNaker-PACMAN


NameSpiNNaker-PACMAN JSON
Version 1!7.1.0 PyPI version JSON
download
home_pagehttps://github.com/SpiNNakerManchester/PACMAN
SummaryPartition and Configuration Manager
upload_time2023-10-02 09:18:47
maintainerSpiNNakerTeam
docs_urlNone
author
requires_python<4,>=3.7
licenseApache-2.0
keywords spinnaker routing partitioning placement
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            
This package provides utilities for partitioning, placing a routing on a
SpiNNaker machine

Requirements
============
In addition to a standard Python installation, this package depends on:

 - SpiNNMachine

These requirements can be install using `pip`:

    pip install SpiNNMachine

User Installation
=================
If you want to install for all users, run:

    sudo pip install PACMAN

If you want to install only for yourself, run:

    pip install PACMAN --user

To install in a `virtualenv`, with the `virtualenv` enabled, run:

    pip install PACMAN

_Using a virtual environment is recommended for all SpiNNaker software._

Developer Installation
======================
If you want to be able to edit the source code, but still have it referenced
from other Python modules, you can set the install to be a developer install.
In this case, download the source code, and extract it locally, or else clone
the git repository:

    git clone http://github.com/SpiNNakerManchester/PACMAN.git

To install as a development version which all users will then be able to use,
run the following where the code has been extracted:

    sudo pip install -e .

To install as a development version for only yourself, run:

    pip install -e . --user

To install as a development version in a `virtualenv`, with the `virutalenv`
enabled, run:

    pip install -e .

Test Installation
=================
To be able to run the unitests add [Test] to the pip installs above

    pip install -e .[Test]

Documentation
=============
[PACMAN python documentation](http://pacman.readthedocs.io/en/7.1.0)
<br>
[Combined python documentation](http://spinnakermanchester.readthedocs.io/en/7.1.0)


PACMAN Executor
===============
PACMAN contains a simple workflow execution system which allows the user to
specify a set of available algorithms which, when provided with a set of inputs
can produce a set of outputs.  The executor will then work out the order in
which the algorithms should be run (and indeed if the algorithms *can* be run)
by looking at the inputs required and outputs generated by each algorithm.

As well as parameters required by the algorithms, the workflow system
additionally supports the concept of "tokens".  A token can be used to represent
the action of an algorithm that does not produce a specific output.  For
example, on a SpiNNaker machine, this might include the loading of data or the
loading of application binaries, neither of which produces a Python object as
output, but performs and important task in any case.  Each token can also be
specified to be "part" of a whole task.  This allows an algorithm to declare
that it has done part of a task, and have a future algorithm require that all
of the task has been completed without knowing what parts need to be done.
Again, the example of loading of data can be used here where there may be
several algorithms that can load data in different ways but all the data must
be loaded before the application binaries are loaded; however the application
binary loader can just say that all data loading is done before execution,
avoiding the need to modify the algorithm in the event that a new algorithm
is created.

The arguments of the algorithms that *can* be represented as Python objects
are specified using semantic types.  These are simply represented as strings;
the values of the strings are only important in that they must match between
the inputs and outputs of algorithms in the flow for an algorithm to be
recognised as producing an output that another algorithm can use as an input.

Each algorithm to be run by this executor specifies:
 - The required inputs of the algorithm.  This can include both arguments of
   the algorithm and tokens required.
 - The optional inputs of the algorithm, again including both arguments and
   tokens.
 - The outputs generated by the algorithm, both as semantic types and tokens.

The executor is provided with:
 - A list of algorithms that must be executed.  If it is not possible to
   execute these, an error is raised.  These will be executed regardless of
   if the output of the algorithm is already available.
 - A list of algorithms that can be executed optionally to produce an output.
   If one of these algorithms generates an input type or a partial or complete
   token that is an optional input to a required algorithm, and no other
   required algorithm can generate this input, the optional algorithm *will* be
   run before that required algorithm.  An optional algorithm will not be run
   if it doesn't generate an output which is an input for another algorithm
   which isn't already provided in some other way.
 - A list of inputs to seed the workflow with.  This can be used to provide
   initial inputs to the workflow, or to stop an optional algorithm from
   executing by providing in advance the output that the algorithm generates.
 - A list of input tokens to seed the workflow with.  These can only be
   specified as complete tokens which are provided.  Partial tokens cannot
   currently be provided.
 - A list of required outputs that the workflow must generate.  In addition
   to the list of algorithms to run, these outputs must be generated by the
   workflow at some stage, or else an error is raised.
 - A list of required output tokens that the workflow must generate.  As with
   the outputs these must be generated by the workflow at some stage or else
   an error is raised.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/SpiNNakerManchester/PACMAN",
    "name": "SpiNNaker-PACMAN",
    "maintainer": "SpiNNakerTeam",
    "docs_url": null,
    "requires_python": "<4,>=3.7",
    "maintainer_email": "spinnakerusers@googlegroups.com",
    "keywords": "spinnaker,routing,partitioning,placement",
    "author": "",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/87/7f/e23bdd59c3cc2c10924debba5a084105b45c81bbfb4ee184651ff7d48f25/SpiNNaker_PACMAN-1!7.1.0.tar.gz",
    "platform": null,
    "description": "\nThis package provides utilities for partitioning, placing a routing on a\nSpiNNaker machine\n\nRequirements\n============\nIn addition to a standard Python installation, this package depends on:\n\n - SpiNNMachine\n\nThese requirements can be install using `pip`:\n\n    pip install SpiNNMachine\n\nUser Installation\n=================\nIf you want to install for all users, run:\n\n    sudo pip install PACMAN\n\nIf you want to install only for yourself, run:\n\n    pip install PACMAN --user\n\nTo install in a `virtualenv`, with the `virtualenv` enabled, run:\n\n    pip install PACMAN\n\n_Using a virtual environment is recommended for all SpiNNaker software._\n\nDeveloper Installation\n======================\nIf you want to be able to edit the source code, but still have it referenced\nfrom other Python modules, you can set the install to be a developer install.\nIn this case, download the source code, and extract it locally, or else clone\nthe git repository:\n\n    git clone http://github.com/SpiNNakerManchester/PACMAN.git\n\nTo install as a development version which all users will then be able to use,\nrun the following where the code has been extracted:\n\n    sudo pip install -e .\n\nTo install as a development version for only yourself, run:\n\n    pip install -e . --user\n\nTo install as a development version in a `virtualenv`, with the `virutalenv`\nenabled, run:\n\n    pip install -e .\n\nTest Installation\n=================\nTo be able to run the unitests add [Test] to the pip installs above\n\n    pip install -e .[Test]\n\nDocumentation\n=============\n[PACMAN python documentation](http://pacman.readthedocs.io/en/7.1.0)\n<br>\n[Combined python documentation](http://spinnakermanchester.readthedocs.io/en/7.1.0)\n\n\nPACMAN Executor\n===============\nPACMAN contains a simple workflow execution system which allows the user to\nspecify a set of available algorithms which, when provided with a set of inputs\ncan produce a set of outputs.  The executor will then work out the order in\nwhich the algorithms should be run (and indeed if the algorithms *can* be run)\nby looking at the inputs required and outputs generated by each algorithm.\n\nAs well as parameters required by the algorithms, the workflow system\nadditionally supports the concept of \"tokens\".  A token can be used to represent\nthe action of an algorithm that does not produce a specific output.  For\nexample, on a SpiNNaker machine, this might include the loading of data or the\nloading of application binaries, neither of which produces a Python object as\noutput, but performs and important task in any case.  Each token can also be\nspecified to be \"part\" of a whole task.  This allows an algorithm to declare\nthat it has done part of a task, and have a future algorithm require that all\nof the task has been completed without knowing what parts need to be done.\nAgain, the example of loading of data can be used here where there may be\nseveral algorithms that can load data in different ways but all the data must\nbe loaded before the application binaries are loaded; however the application\nbinary loader can just say that all data loading is done before execution,\navoiding the need to modify the algorithm in the event that a new algorithm\nis created.\n\nThe arguments of the algorithms that *can* be represented as Python objects\nare specified using semantic types.  These are simply represented as strings;\nthe values of the strings are only important in that they must match between\nthe inputs and outputs of algorithms in the flow for an algorithm to be\nrecognised as producing an output that another algorithm can use as an input.\n\nEach algorithm to be run by this executor specifies:\n - The required inputs of the algorithm.  This can include both arguments of\n   the algorithm and tokens required.\n - The optional inputs of the algorithm, again including both arguments and\n   tokens.\n - The outputs generated by the algorithm, both as semantic types and tokens.\n\nThe executor is provided with:\n - A list of algorithms that must be executed.  If it is not possible to\n   execute these, an error is raised.  These will be executed regardless of\n   if the output of the algorithm is already available.\n - A list of algorithms that can be executed optionally to produce an output.\n   If one of these algorithms generates an input type or a partial or complete\n   token that is an optional input to a required algorithm, and no other\n   required algorithm can generate this input, the optional algorithm *will* be\n   run before that required algorithm.  An optional algorithm will not be run\n   if it doesn't generate an output which is an input for another algorithm\n   which isn't already provided in some other way.\n - A list of inputs to seed the workflow with.  This can be used to provide\n   initial inputs to the workflow, or to stop an optional algorithm from\n   executing by providing in advance the output that the algorithm generates.\n - A list of input tokens to seed the workflow with.  These can only be\n   specified as complete tokens which are provided.  Partial tokens cannot\n   currently be provided.\n - A list of required outputs that the workflow must generate.  In addition\n   to the list of algorithms to run, these outputs must be generated by the\n   workflow at some stage, or else an error is raised.\n - A list of required output tokens that the workflow must generate.  As with\n   the outputs these must be generated by the workflow at some stage or else\n   an error is raised.\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Partition and Configuration Manager",
    "version": "1!7.1.0",
    "project_urls": {
        "Homepage": "https://github.com/SpiNNakerManchester/PACMAN"
    },
    "split_keywords": [
        "spinnaker",
        "routing",
        "partitioning",
        "placement"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8f70e9a6c1c9006119ad35346cab542de2699dad1be78c8b30083ea322289e3d",
                "md5": "ff97f26034c983594b89b35024142ffb",
                "sha256": "291928da8d89ef8ccba18530d934094ac8bb86aa8c5109a532121982c7913452"
            },
            "downloads": -1,
            "filename": "SpiNNaker_PACMAN-1!7.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ff97f26034c983594b89b35024142ffb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.7",
            "size": 231412,
            "upload_time": "2023-10-02T09:18:45",
            "upload_time_iso_8601": "2023-10-02T09:18:45.656338Z",
            "url": "https://files.pythonhosted.org/packages/8f/70/e9a6c1c9006119ad35346cab542de2699dad1be78c8b30083ea322289e3d/SpiNNaker_PACMAN-1!7.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "877fe23bdd59c3cc2c10924debba5a084105b45c81bbfb4ee184651ff7d48f25",
                "md5": "c32600afdf8af7fe4db99273481125a1",
                "sha256": "023542970864015ac6d16be72f7a92e347da556e78cd2b0f9ce50f0b41ef0440"
            },
            "downloads": -1,
            "filename": "SpiNNaker_PACMAN-1!7.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c32600afdf8af7fe4db99273481125a1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.7",
            "size": 131823,
            "upload_time": "2023-10-02T09:18:47",
            "upload_time_iso_8601": "2023-10-02T09:18:47.458314Z",
            "url": "https://files.pythonhosted.org/packages/87/7f/e23bdd59c3cc2c10924debba5a084105b45c81bbfb4ee184651ff7d48f25/SpiNNaker_PACMAN-1!7.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-02 09:18:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "SpiNNakerManchester",
    "github_project": "PACMAN",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "spinnaker-pacman"
}
        
Elapsed time: 0.12297s