Package: rig
Rig is a Python library which contains a collection of complementary tools for
developing applications for the massively-parallelSpiNNakerarchitecture.
First and foremost, Rig aims to present a light-weight, well tested and well
documented interface for SpiNNaker application developers.Quick-startThe latest stable release can be installed from thePython Package
Indexusing:pip install rigYou 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())
514301To find out how to do something useful, head over to theRig documentation on
ReadTheDocs.SeeDEVELOP.mdfor information on how to get involved in Rig development
or install the latest development version.OverviewRig 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 SpiNNakertype_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 mappingplace_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 managementmachine_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 applicationsrig-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 SupportRig is tested against the following versions of Python:2.73.43.5Other versions may or may not work.ContributorsSeeCONTRIBUTORS.mdfor a list of all the folk who’ve
contributed to Rig.LicenseRig is licensed under theGNU General Public License Version 2.