Skip to content

mfkiwl/pstack

 
 

Repository files navigation

POETS Simulation Stack (pstack)

PSIM Setup

Overview

pstack is a distributed POETS simulation stack based on Redis. It exposes the compute power of a hetrogeneous array of POETS back-end engines to multiple users in a POSIX-like environment.

Features:

  • Processes: application instances modeled after POSIX processes
  • Multi-user support: multiple users can run processes on a single pstack service simultaneously
  • Distributed execution: a single application can be distributed across several machines in arbitrary arrangements
  • Real-time Monitoring: live monitor of running processes and back-end engine resource utilisation
  • Heterogeneity: supports arbitrary back-end engines (e.g. different simulators or even actual hardware)
  • Job queues: processes are queued when back-end engines are unavailable or insufficient
  • Terminal: command line user interface with built-in Python interpreter
  • Debugging: supports debug breakpoints and manual inspection/injection of messages
  • Unit Testing: Down-to-earth unit testing framework supporting push-button testing over entire back-end infrastructure
  • Minimal dependencies: just pip and socat on a fresh Ubuntu installation.
  • Automated Deployment: parallel (multi-host) installation over SSH in 10 seconds using fabric.

Design Goals:

  • Focus on developing POETS-specific capabilities while leaving more common programming chores to existing specialized tools and technologies (Redis for distributed shared memory and socat for socket communication).
  • Decouple stack layers using TCP connections to permit reliable, performant and secure distributed operation using standard communication technologies (Ethernet, SSH tunnels etc.).
  • Leverage Python for productivity (multiprocessing, jinja) and C for performance (simulation)
  • Deliver the best performance and feature set while keeping the implementation as simple and maintainable as possible.

Documentation

Design Notes

User Guides

Developer Guides

About

POETS Simulation Stack

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 63.4%
  • C++ 34.9%
  • Shell 1.7%