72006fe05b
- allows starting new processes and controlling them remotely from the parent process - remote processes can run their own GUI, Qt signals can be connected between processes (in general this is not possible with the built-in multiprocessing module due to the use of fork() ). - Control works by a system of proxy-objects such that controlling a remote process looks almost exactly like working with local objects. - Uses sockets to communicate between processes (so in theory could be made to work over a network), but also includes a mode that uses fork() to allow fast parallelization. - Wicked-easy inline parallelization by adding only one line of code to break up work between processes (requires fork; sorry windows users)
23 lines
808 B
Python
23 lines
808 B
Python
"""
|
|
Multiprocessing utility library
|
|
(parallelization done the way I like it)
|
|
|
|
Luke Campagnola
|
|
2012.06.10
|
|
|
|
This library provides:
|
|
|
|
- simple mechanism for starting a new python interpreter process that can be controlled from the original process
|
|
(this allows, for example, displaying and manipulating plots in a remote process
|
|
while the parent process is free to do other work)
|
|
- proxy system that allows objects hosted in the remote process to be used as if they were local
|
|
- Qt signal connection between processes
|
|
- very simple in-line parallelization (fork only; does not work on windows) for number-crunching
|
|
|
|
TODO:
|
|
allow remote processes to serve as rendering engines that pass pixmaps back to the parent process for display
|
|
(RemoteGraphicsView class)
|
|
"""
|
|
|
|
from processes import *
|