ZeroMq based multiprocessing framework.
|ROS||Indigo Jade Kinetic|
PyZMP is a multiprocess library based on ZeroMQ.
The aim is to make experimenting with multiprocess and distributed architecture more solid and overall easier. If at all possible, the goal is to arrive at a minimal set of concepts, that makes solid and efficient distributed system easy to build.
Distributed systems models, as per wikipedia https://en.wikipedia.org/wiki/Distributed_computing#Models, can be classified as:
We will focus on the latter first, while keeping in mind it is likely just a special case of the second (network cannot be controlled, algorithm on each node has to be the same). A good exercise here is how to keep a representation of the distribution coherent on each node, despite potential network partition that cna occur.
Doing an Analysis on existing distributed software architecture is likely a very broad task, but we can focus on just a few here, at least as a first step. These should be enough to implement any of the distributed systems models cited above:
with different views for the user, more or less transparently : - make a request / send a task and (asynchronously or not) wait the response/result - receive dataflow from somewhere and send dataflow to somewhere else
Additionally, an interesting endeavour could be to see how https://en.wikipedia.org/wiki/Control_theory applies to such distributed systems (message passing <=> charge transfer).
Note : This is currently a personal perspective that likely require more thorough analysis, so feel free to send a Pull Request.
This repository has a few main branches:
Apart from these we follow a feature branching workflow
Install ` pip install pyzmp `
Run self tests ` pyzmp `
Clone this repository ` git clone http://github.com/asmodehn/pyzmp `
Create you virtualenv to workon using virtualenvwrapper ` mkvirtualenv pyzmpenv `
Install all dependencies via dev-requirements ` pip install -r dev-requirements.txt `
Run self tests ` pyzmp `
Run all tests (with all possible configurations) with tox ` tox `
Note : Tox envs are recreated every time to ensure consistency. So it s better to develop while in a non-tox-managed venv.
A good example showing use of pyzmp, simple RPC client/server example
tutorials implementing multi node communication (under development)
Distributed software means software being executed in different “nodes” and collaboration via communication through different “channels”:
This will allow us to structure our software in a network graph. PYZMP aims to be the foundation on which such a network graph can be easily, and confidently, built and used.
Implementation Priorities :
Type of Distributed Architecture that can be built with pyzmp:
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|File Name & Checksum SHA256 Checksum Help||Version||File Type||Upload Date|
|pyzmp-0.0.16-py2.py3-none-any.whl (26.0 kB) Copy SHA256 Checksum SHA256||py2.py3||Wheel||May 18, 2017|
|pyzmp-0.0.16.tar.gz (24.9 kB) Copy SHA256 Checksum SHA256||–||Source||May 18, 2017|