##// END OF EJS Templates
Moving widgets->Widgets
Moving widgets->Widgets

File last commit:

r15185:24fd7362
r16056:d485c781
Show More
plotting_frontend.py
60 lines | 1.5 KiB | text/x-python | PythonLexer
MinRK
updates to docs and examples
r3670 """An example of how to use IPython1 for plotting remote parallel data
MinRK
remove kernel examples already ported to newparallel
r3675 The two files plotting_frontend.py and plotting_backend.py go together.
MinRK
updates to docs and examples
r3670
To run this example, first start the IPython controller and 4
engines::
Thomas Kluyver
Tidy up references to ipclusterz in parallel examples.
r6457 ipcluster start -n 4
MinRK
updates to docs and examples
r3670
MinRK
remove pylab from the parallel examples
r15185 Then start ipython with matplotlib integration::
MinRK
updates to docs and examples
r3670
MinRK
remove pylab from the parallel examples
r15185 ipython --matplotlib
MinRK
updates to docs and examples
r3670
MinRK
remove kernel examples already ported to newparallel
r3675 Then a simple "run plotting_frontend.py" in IPython will run the
MinRK
updates to docs and examples
r3670 example. When this is done, all the variables (such as number, downx, etc.)
are available in IPython, so for example you can make additional plots.
"""
Thomas Kluyver
Update print syntax in parallel examples.
r6455 from __future__ import print_function
MinRK
updates to docs and examples
r3670
MinRK
remove pylab from the parallel examples
r15185 import matplotlib.pyplot as plt
MinRK
remove kernel examples already ported to newparallel
r3675 from IPython.parallel import Client
MinRK
updates to docs and examples
r3670
MinRK
remove kernel examples already ported to newparallel
r3675 # Connect to the cluster
rc = Client()
view = rc[:]
MinRK
updates to docs and examples
r3670
# Run the simulation on all the engines
MinRK
remove kernel examples already ported to newparallel
r3675 view.run('plotting_backend.py')
MinRK
updates to docs and examples
r3670
MinRK
remove kernel examples already ported to newparallel
r3675 # Bring back the data. These are all AsyncResult objects
number = view.pull('number')
d_number = view.pull('d_number')
downx = view.gather('downx')
downy = view.gather('downy')
downpx = view.gather('downpx')
downpy = view.gather('downpy')
MinRK
updates to docs and examples
r3670
MinRK
remove kernel examples already ported to newparallel
r3675 # but we can still iterate through AsyncResults before they are done
Thomas Kluyver
Update print syntax in parallel examples.
r6455 print("number: ", sum(number))
print("downsampled number: ", sum(d_number))
MinRK
updates to docs and examples
r3670
MinRK
remove kernel examples already ported to newparallel
r3675
MinRK
updates to docs and examples
r3670 # Make a scatter plot of the gathered data
# These calls to matplotlib could be replaced by calls to pygist or
# another plotting package.
MinRK
remove pylab from the parallel examples
r15185 plt.figure(1)
MinRK
remove kernel examples already ported to newparallel
r3675 # wait for downx/y
downx = downx.get()
downy = downy.get()
MinRK
remove pylab from the parallel examples
r15185 plt.scatter(downx, downy)
plt.xlabel('x')
plt.ylabel('y')
plt.figure(2)
MinRK
remove kernel examples already ported to newparallel
r3675 # wait for downpx/y
downpx = downpx.get()
downpy = downpy.get()
MinRK
remove pylab from the parallel examples
r15185 plt.scatter(downpx, downpy)
plt.xlabel('px')
plt.ylabel('py')
plt.show()