Easy access and remote control of local/remote Python instances
Simple Remote Python (SRPy) intends to harness the power of the Python by allowing multiple python programs (instances) to seamlessly communicate and share information between each other. As such, each CPU (or core) in each computer can be considered as an individual that can request for other individuals to store information or run processing tasks. In this context, SRPy abstracts itself from the physical boundaries between processors and computers by looking at them simply as volunteer workers that are able to deal with workloads - this workers can even work in a social manner by communicating with each other on a non-centralized way, sharing information and processing requests. It features:
- Remote control of python instances (through Python or Jython)
- Parallel execution of python code on SMP and clusters
- Low overhead
- Pure python code
- Cross-platform portability and interoperability (Windows, Linux, Unix, Mac OS X)
- Cross-architecture portability and interoperability (x86, x86-64, etc.)
- Open source
Note: Although Jython SRPy clients are supported, the server will not run under Jython. This is a limitation inherited by the Pyro dependency that will be fixed soon.
If you have setuptools installed you should be able to do easy_install srpy to install SRPy. Otherwise you can download the project source and do python setup.py install to install. SRPy also works directly from source, just copy the folder srpy to your favorite location and import it. To start the server do: python path/to/srpyapp.py
The SRPy distribution depends on the Pyro library, it is bundled inside SRPy. It has been tested on Python 2.5 and 2.6.
SRPy comes bundled with Pyro, most of its features come from interfacing with the Pyro library.
SRPy is not the only software of the genre, many other great libraries that provide similar features are available:
Many of the ideas inside SRPy have come from this packages, we don’t intend to be the best, just a different flavor that concentrates in bringing:
- easy of use
- compatibility with the great features brought from Pyro
- both Python and Jython compatibility
Documentation can be found on the doc/ directory. Also do python path/to/srpyapp.py –help to see the server options.
- Fixed Pyro import bug
- Fixed bug that didn’t allow multi-server start on Windows
- No longer depends on Parallel-Python
- Documentation greatly improved and is now included
- EngBox now acts as a container
- EngBox able to benchmark remote Python Engines
- Improved thread safety
- Code cleanup
- srpyapp.py can now use a Pyro configuration file
- Fixed several errors
- Added EngBox class to srpyclient to help manage multiple PythonEngines
- Fixed a Pyro import error: Successfully imports bundled Pyro if available
- srpy and srpy-bundled are now a unified package