Skip to main content

A directed netlist representation for stream processing

Project description

streamnet

A directed netlist representation for stream processing

What is a streamnet object?

A streamnet object (for lack of an existing term) is essentially a directed graph composed of a set of elements, a set of external input ports, a set of external output ports where:

  • Elements are nodes with labeled input and output pins. They can be zero, in which case they become internal sources or sinks of information.
  • External input ports are nodes with an indegree of zero
  • External output ports are nodes with an outdegree of zero

These nodes are connected by directed edges with the following restriction:

  • Input pins in each element must have an indegree of one
  • There are no restrictions in the outdegree of output pins, including zero

Note that every streamnet object is also an element.

What does this streamnet represent?

Streamnets represent a subset of circuits and architectures where information flows between components in a directional, causal way.

What is the execution model of this network?

The execution model is essentially a flavor of dataflow programming:

A streamnet object has a method step that puts new inputs into the input ports of the network. The step instruction is broadcasted to all elements in the network.

Each element is either its own Streamnet object or an arbitrary object with a similar interface. Elements can be stateful and/or have side effects outside the streamnet, such as logging.

When a step instruction is broadcasted inside a streamnet, all elements pulls the existing input states and carry out the computation. This is consistent with a synchronous execution model, though elements can implement delays and queues. They can also pass information probabilistically to incorporate asynchronous behavior.

Wait, is this a new type of object?

There are many dataflow or flow programming languages that probably implement similar abstractions. Streamnet is a variation on netlists in the sense that it is directed and input pins must have an indegree of one. It is also a generalization of flow networks.

The purpose here is to serve as a unifying model to tie in circuits, digital architectures, and spiking neural networks.

Streamnet implementaation

This repository contains a Python implementation of a Streamnet. Obviously the goal is to recreate this model in a way that takes advantage of parallelism.

Team

Streamnet is being developed by Angel Yanguas-Gil as part of Threadwork, a project funded through DOE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

streamnet-0.1.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

streamnet-0.1.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file streamnet-0.1.0.tar.gz.

File metadata

  • Download URL: streamnet-0.1.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for streamnet-0.1.0.tar.gz
Algorithm Hash digest
SHA256 18b3949e1911ce3efb85c3f4da54183cfac464be190933cbaa43f223b70154b7
MD5 90158e9d5a2673aa02a79ea9c71dc7f5
BLAKE2b-256 87d64e4e7c0ac9b69d8c4767db34ca8b570eb1ef6d0cf2c24365bfbb3210cefb

See more details on using hashes here.

File details

Details for the file streamnet-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: streamnet-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for streamnet-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 446f6014b3ad782d4ccdd51d31cf28f43affabddcbe4128b726ae42625c46979
MD5 4cc4d9abdd75d6d5c7dab4c800118b95
BLAKE2b-256 1d1e4a7736a6fdace4ca05f49198b4a8e7d3d7b313d44dbcfb0a18d47ff020b5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page