https://github.com/project-rig/rig
A collection of tools for developing SpiNNaker applications.
https://github.com/project-rig/rig
python spinnaker
Last synced: 5 months ago
JSON representation
A collection of tools for developing SpiNNaker applications.
- Host: GitHub
- URL: https://github.com/project-rig/rig
- Owner: project-rig
- License: gpl-2.0
- Created: 2015-01-19T21:20:40.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2025-05-08T20:25:17.000Z (about 1 year ago)
- Last Synced: 2025-09-15T12:59:05.735Z (10 months ago)
- Topics: python, spinnaker
- Language: Python
- Homepage:
- Size: 2.55 MB
- Stars: 4
- Watchers: 4
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
Rig
===
.. image:: ./docs/source/logo.png?raw=True
:alt: The Rig Logo
.. image:: https://img.shields.io/pypi/v/rig.svg?style=flat
:alt: PyPi version
:target: https://pypi.python.org/pypi/rig/
.. image:: https://readthedocs.org/projects/rig/badge/?version=stable
:alt: Documentation
:target: http://rig.readthedocs.org/
.. image:: https://travis-ci.org/project-rig/rig.svg?branch=master
:alt: Build Status
:target: https://travis-ci.org/project-rig/rig
.. image:: https://img.shields.io/codecov/c/github/project-rig/rig/master.svg
:alt: Coverage Status
:target: https://codecov.io/github/project-rig/rig
Rig is a Python library which contains a collection of complementary tools for
developing applications for the massively-parallel
`SpiNNaker `_ architecture.
First and foremost, Rig aims to present a light-weight, well tested and well
documented interface for SpiNNaker application developers.
Quick-start
-----------
The latest stable release can be installed from the `Python Package
Index `_ using::
pip install rig
You could then use Rig to write a Python one-liner to count the number of cores
in your SpiNNaker super computer::
>>> from rig.machine_control import MachineController
>>> sum(chip.num_cores for chip in
... MachineController("spinn-4").get_system_info().values())
514301
To find out how to do something useful, head over to the `Rig documentation on
ReadTheDocs `_.
See `DEVELOP.md`__ for information on how to get involved in Rig development
or install the latest development version.
__ ./DEVELOP.md
Overview
--------
Rig does not mandate any particular application work flow but rather provides a
set of common utilities with well-defined, composable interfaces. Developers
are encouraged to use whatever subset of these tools they consider useful.
The utilities provided by Rig can be broken down approximately as follows:
* Data packaging for SpiNNaker
* ``type_casts``: conversion functions between common
Python and Numpy data types and the fixed-point types used by SpiNNaker.
* ``bitfield.BitField``: an abstraction for flexibly defining routing keys
for SpiNNaker applications ranging from the trivial to those involving
multiple external devices with conflicting routing key formats.
* Graph-to-machine mapping
* ``place_and_route``: a suite of algorithms for mapping graph-like problems
onto the SpiNNaker hardware, allocating on-chip resources and generating
routing tables.
* ``routing_table``: a suite of algorithms for minimising and analysing
SpiNNaker's multicast routing tables.
* ``geometry``: utility functions for working with SpiNNaker's hexagonal
torus topology.
* Execution control and machine management
* ``machine_control.MachineController``: a high-level interface to SpiNNaker
machines. Can be used to boot machines, load and control applications,
and more.
* ``machine_control.BMPController``: a high-level interface to the
Board Management Processors (BMPs) found in large SpiNNaker
installations. Can be used to control system power and read diagnostic
information such as temperature and FPGA status.
* Standalone utility applications
* ``rig-boot``: No-nonsense command line utility for booting SpiNNaker
systems.
* ``rig-power``: No-nonsense command line utility for power-cycling SpiNNaker
systems.
* ``rig-info``: No-nonsense command line utility to get high-level
information about a SpiNNaker system, e.g. "what is it running, is it on
fire?".
* ``rig-discover``: No-nonsense command line utility for discovering the IP of
connected, unbooted SpiNNaker boards.
* ``rig-iobuf``: No-nonsense command line utility for reading IOBUF messages
from a SpiNNaker application.
* ``rig-ps``: No-nonsense command line utility for listing all applications
(and their locations) in a SpiNNaker machine.
* ``rig-counters``: No-nonsense command line utility which can
non-intrusively monitor a SpiNNaker system for dropped packets.
Python Version Support
----------------------
Rig is tested against the following versions of Python:
* 2.7
* 3.4
* 3.5
Other versions may or may not work.
Contributors
------------
See `CONTRIBUTORS.md`__ for a list of all the folk who've
contributed to Rig.
__ ./CONTRIBUTORS.md
License
-------
Rig is licensed under the `GNU General Public License Version 2`_.
.. _GNU General Public License Version 2: ./LICENSE