Skip to main content

Rig

The Rig Logo PyPi version Documentation Build Status Coverage Status

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.

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.

License

Rig is licensed under the GNU General Public License Version 2.

Metadata

Release files for rig 2.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rig 2.4.1
File Size Uploaded
rig-2.4.1.tar.gz 175.6 kB Details

Release files / rig-2.4.1.tar.gz

Download URL rig-2.4.1.tar.gz
Size 175.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5a3896dbde3f291c5dd34769e7329ef5d5e4da34fee53479bd13dc5e5d540b8a
BLAKE2b-256 checksum
How to use checksums
e42f618a8ca32bbca31caafdd5f2ba0fec4153cd9c4e24e38c1cfd9fb44f3d92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

2.4.1 This release

1 release file

2.4.0

1 release file

2.3.0

1 release file

2.2.0

1 release file

2.1.2

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.0

1 release file

1.7.1

1 release file

1.7.0

1 release file

1.6.0

1 release file

1.5.1

1 release file

1.5.0

1 release file

1.4.0

1 release file

1.3.0

1 release file

1.2.0

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.0

1 release file

0.15.0

1 release file

0.14.0

1 release file

0.13.4

1 release file

0.13.3

1 release file

0.13.2

1 release file

0.13.1

1 release file

0.13.0

1 release file

0.12.2

1 release file

0.12.1

1 release file

0.12.0

1 release file

0.11.1

1 release file

0.11.0

1 release file

0.10.1

1 release file

0.10.0

1 release file

0.9.0

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8.0

1 release file

0.7.0

1 release file

0.6.4

1 release file

0.6.3

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.5.6

1 release file

0.5.5

1 release file

0.5.4

1 release file

0.5.3

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page