Commit Graph

6 Commits

Author SHA1 Message Date
Luke Campagnola
005160423e Converted all old-style classes to new-style for PySide compatibility. (thanks Chris) 2012-11-28 22:47:52 -05:00
Luke Campagnola
92d11cee91 Parallelizer: more clever assessment of CPU count (ignores hyperthreaded cores on linux) 2012-08-31 17:20:05 -04:00
Luke Campagnola
e21480855f multiprocess updates:
- avoid sending keyboard interrupt signals to child processes
  - parallelizer keeps better track of processes that die unexpectedly
  - added ability to specify a different executable when starting new processes
2012-08-17 16:15:13 -04:00
Luke Campagnola
73e94f543c Parallelize now reseeds random number generators after fork()
Bugfix -- AxisItem enforces tick boundaries more strictly
2012-06-30 23:32:26 -04:00
Luke Campagnola
d1fdbadd19 Multiprocessing updates / fixes:
- ForkedProcess is much more careful with inherited state -- closes file handles, removes atexit and excepthook callbacks
   - Remote processes copy sys.path from parent
   - Parallelizer has ProgressDialog support
   - Many docstring updates
   - Added some test code for remote GraphicsView rendering
2012-06-21 22:00:04 -04:00
Luke Campagnola
72006fe05b Added custom multiprocessing module:
- 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)
2012-06-18 15:20:35 -04:00