Skip to main content

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.

Metadata

Release files for streamnet 0.1.0

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

Source distribution (sdist)

Source distribution for streamnet 0.1.0
File Size Uploaded
streamnet-0.1.0.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for streamnet 0.1.0
File Interpreter ABI Platform
streamnet-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.6 kB

Release files / streamnet-0.1.0.tar.gz

Download URL streamnet-0.1.0.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
18b3949e1911ce3efb85c3f4da54183cfac464be190933cbaa43f223b70154b7
BLAKE2b-256 checksum
How to use checksums
87d64e4e7c0ac9b69d8c4767db34ca8b570eb1ef6d0cf2c24365bfbb3210cefb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / streamnet-0.1.0-py3-none-any.whl

Download URL streamnet-0.1.0-py3-none-any.whl
Size 7.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
446f6014b3ad782d4ccdd51d31cf28f43affabddcbe4128b726ae42625c46979
BLAKE2b-256 checksum
How to use checksums
1d1e4a7736a6fdace4ca05f49198b4a8e7d3d7b313d44dbcfb0a18d47ff020b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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