Commit 2a0ae4be authored by Daniel Brown's avatar Daniel Brown
Browse files

adding parakat example

parent 121fe5fc
# Example on running multiple kat objects at once using the parakat feature.
#
# Firstly you need to start an ipython cluster on your computer. To do this open
# a new terminal and type the command:
#
# ipcluster start -n 4
#
# This will start a cluster with 4 workers. You should set this number to how many
# cores you have.
#
import pykat
from pykat.parallel import parakat
# Create a connection to the server
pk = parakat()
# Create a bunch of kat objects to run
kat1 = pykat.finesse.kat()
kat2 = pykat.finesse.kat()
kat3 = pykat.finesse.kat()
kat1.parseCommands("""
l l1 1 0 n0
s s1 1 n0 n1
pd P n1
noxaxis
""")
kat2.parseCommands("""
l l1 2 0 n0
s s1 1 n0 n1
pd P n1
noxaxis
""")
kat3.parseCommands("""
l l1 3 0 n0
s s1 1 n0 n1
pd P n1
noxaxis
""")
# Each kat object that is started straightaway when called like this.
# You can add as many as you want, the number that will
# run at once depends on the number of workers in the cluster
pk.run(kat1, cmd_args=["-cr=on"])
pk.run(kat2, cmd_args=["-cr=on"])
pk.run(kat3, cmd_args=["-cr=on"])
# Now you can get the output objects for each of the files run
# They will be returned in order. So you can get each of the outputs using:
out1, out2, out3 = pk.getResults()
print(out1["P"])
print(out2["P"])
print(out3["P"])
# or you could also get the outputs in a list:
outs = pk.getResults()
# so you'd then access the ouputs like: outs[0], outs[1], etc.
# This option is useful if you want to iterate over each output
# result in a for loop for example:
for out in outs:
print(out["P"])
# Call `clear` to remove the last output results
# After this you could run more in parallel and get the outputs
# for those.
pk.clear()
# When finally done you should close the connection to the cluster
pk.close()
......@@ -89,8 +89,8 @@ class parakat(object):
return out
def clear(self):
del(self._result)
self._result = []
del(self._results)
self._results = []
def close(self):
self._rc.close()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment