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.
- Installation
- Using
psim
(standalone simulations) - Using
pcli
(distributed simulations) - Cambridge
pstack
Deployment