##// END OF EJS Templates
Add simple MPI parallel example notebook.
Add simple MPI parallel example notebook.

File last commit:

r4910:0dc49390
r4911:a3229f5e
Show More
wmanager.py
44 lines | 1.1 KiB | text/x-python | PythonLexer
"""Mock workflow manager.
This is a mock work manager whose submitted 'jobs' simply consist of executing
a python string. What we want is to see the implementation of the ipython
controller part.
"""
from __future__ import print_function
import atexit
import sys
from subprocess import Popen
def cleanup(controller, engines):
"""Cleanup routine to shut down all subprocesses we opened."""
import signal, time
print('Starting cleanup')
print('Stopping engines...')
for e in engines:
e.send_signal(signal.SIGINT)
print('Stopping controller...')
# so it can shut down its queues
controller.send_signal(signal.SIGINT)
time.sleep(0.1)
print('Killing controller...')
controller.kill()
print('Cleanup done')
if __name__ == '__main__':
# Start controller in separate process
cont = Popen(['python', '-m', 'IPython.parallel.ipcontrollerapp'])
print('Started controller')
# "Submit jobs"
eng = []
for i in range(4):
eng.append(Popen(['python', 'job_wrapper.py','x=%s' % i]))
# Ensure that all subpro
atexit.register(lambda : cleanup(cont, eng))