From 75d9c51241affdc926fdb6f6b289651236b45161 2011-04-08 00:38:18 From: MinRK Date: 2011-04-08 00:38:18 Subject: [PATCH] dependency tweaks + dependency/scheduler docs --- diff --git a/IPython/zmq/parallel/client.py b/IPython/zmq/parallel/client.py index a6c5e84..fb082e8 100644 --- a/IPython/zmq/parallel/client.py +++ b/IPython/zmq/parallel/client.py @@ -863,14 +863,9 @@ class Client(object): return dep.msg_ids elif dep is None: return [] - elif isinstance(dep, set): - return list(dep) - elif isinstance(dep, (list,dict)): - return dep - elif isinstance(dep, str): - return [dep] else: - raise TypeError("Dependency may be: set,list,dict,Dependency or AsyncResult, not %r"%type(dep)) + # pass to Dependency constructor + return list(Dependency(dep)) def apply(self, f, args=None, kwargs=None, bound=True, block=None, targets=None, after=None, follow=None, timeout=None): @@ -921,9 +916,11 @@ class Client(object): This job will only be run on an engine where this dependency is met. - timeout : float or None + timeout : float/int or None Only for load-balanced execution (targets=None) - Specify an amount of time (in seconds) + Specify an amount of time (in seconds) for the scheduler to + wait for dependencies to be met before failing with a + DependencyTimeout. Returns ------- @@ -950,9 +947,6 @@ class Client(object): if not isinstance(kwargs, dict): raise TypeError("kwargs must be dict, not %s"%type(kwargs)) - after = self._build_dependency(after) - follow = self._build_dependency(follow) - options = dict(bound=bound, block=block) if targets is None: @@ -984,6 +978,8 @@ class Client(object): warnings.warn(msg, RuntimeWarning) + after = self._build_dependency(after) + follow = self._build_dependency(follow) subheader = dict(after=after, follow=follow, timeout=timeout) bufs = ss.pack_apply_message(f,args,kwargs) content = dict(bound=bound) diff --git a/IPython/zmq/parallel/dependency.py b/IPython/zmq/parallel/dependency.py index 7f78097..0a511cc 100644 --- a/IPython/zmq/parallel/dependency.py +++ b/IPython/zmq/parallel/dependency.py @@ -2,13 +2,7 @@ from IPython.external.decorator import decorator from error import UnmetDependency - - -# flags -ALL = 1 << 0 -ANY = 1 << 1 -HERE = 1 << 2 -ANYWHERE = 1 << 3 +from asyncresult import AsyncResult class depend(object): @@ -59,53 +53,58 @@ class Dependency(set): Subclassed from set().""" - mode='all' + all=True success_only=True - def __init__(self, dependencies=[], mode='all', success_only=True): + def __init__(self, dependencies=[], all=True, success_only=True): if isinstance(dependencies, dict): # load from dict - mode = dependencies.get('mode', mode) + all = dependencies.get('all', True) success_only = dependencies.get('success_only', success_only) dependencies = dependencies.get('dependencies', []) - set.__init__(self, dependencies) - self.mode = mode.lower() + ids = [] + if isinstance(dependencies, AsyncResult): + ids.extend(AsyncResult.msg_ids) + else: + for d in dependencies: + if isinstance(d, basestring): + ids.append(d) + elif isinstance(d, AsyncResult): + ids.extend(d.msg_ids) + else: + raise TypeError("invalid dependency type: %r"%type(d)) + set.__init__(self, ids) + self.all = all self.success_only=success_only - if self.mode not in ('any', 'all'): - raise NotImplementedError("Only any|all supported, not %r"%mode) def check(self, completed, failed=None): if failed is not None and not self.success_only: completed = completed.union(failed) if len(self) == 0: return True - if self.mode == 'all': + if self.all: return self.issubset(completed) - elif self.mode == 'any': - return not self.isdisjoint(completed) else: - raise NotImplementedError("Only any|all supported, not %r"%mode) + return not self.isdisjoint(completed) def unreachable(self, failed): if len(self) == 0 or len(failed) == 0 or not self.success_only: return False - print self, self.success_only, self.mode, failed - if self.mode == 'all': + # print self, self.success_only, self.all, failed + if self.all: return not self.isdisjoint(failed) - elif self.mode == 'any': - return self.issubset(failed) else: - raise NotImplementedError("Only any|all supported, not %r"%mode) + return self.issubset(failed) def as_dict(self): """Represent this dependency as a dict. For json compatibility.""" return dict( dependencies=list(self), - mode=self.mode, + all=self.all, success_only=self.success_only, ) -__all__ = ['depend', 'require', 'Dependency'] +__all__ = ['depend', 'require', 'dependent', 'Dependency'] diff --git a/IPython/zmq/parallel/error.py b/IPython/zmq/parallel/error.py index a52b512..0cf4058 100644 --- a/IPython/zmq/parallel/error.py +++ b/IPython/zmq/parallel/error.py @@ -154,7 +154,10 @@ class UnmetDependency(KernelError): class ImpossibleDependency(UnmetDependency): pass -class DependencyTimeout(UnmetDependency): +class DependencyTimeout(ImpossibleDependency): + pass + +class InvalidDependency(ImpossibleDependency): pass class RemoteError(KernelError): diff --git a/IPython/zmq/parallel/hub.py b/IPython/zmq/parallel/hub.py index 3c9b31c..a263707 100755 --- a/IPython/zmq/parallel/hub.py +++ b/IPython/zmq/parallel/hub.py @@ -100,7 +100,7 @@ class HubFactory(RegistrationFactory): """The Configurable for setting up a Hub.""" # name of a scheduler scheme - scheme = Str('lru', config=True) + scheme = Str('leastload', config=True) # port-pairs for monitoredqueues: hb = Instance(list, config=True) diff --git a/IPython/zmq/parallel/ipclusterapp.py b/IPython/zmq/parallel/ipclusterapp.py index b4fb995..cbeed95 100755 --- a/IPython/zmq/parallel/ipclusterapp.py +++ b/IPython/zmq/parallel/ipclusterapp.py @@ -20,7 +20,9 @@ import logging import os import signal import logging +import errno +import zmq from zmq.eventloop import ioloop from IPython.external.argparse import ArgumentParser, SUPPRESS @@ -385,7 +387,8 @@ class IPClusterApp(ApplicationWithClusterDir): # observing of engine stopping is inconsistent. Some launchers # might trigger on a single engine stopping, other wait until # all stop. TODO: think more about how to handle this. - + else: + self.controller_launcher = None el_class = import_item(config.Global.engine_launcher) self.engine_launcher = el_class( @@ -427,7 +430,7 @@ class IPClusterApp(ApplicationWithClusterDir): def stop_controller(self, r=None): # self.log.info("In stop_controller") - if self.controller_launcher.running: + if self.controller_launcher and self.controller_launcher.running: return self.controller_launcher.stop() def stop_engines(self, r=None): @@ -516,8 +519,13 @@ class IPClusterApp(ApplicationWithClusterDir): self.write_pid_file() try: self.loop.start() - except: - self.log.info("stopping...") + except KeyboardInterrupt: + pass + except zmq.ZMQError as e: + if e.errno == errno.EINTR: + pass + else: + raise self.remove_pid_file() def start_app_engines(self): @@ -539,8 +547,13 @@ class IPClusterApp(ApplicationWithClusterDir): # self.write_pid_file() try: self.loop.start() - except: - self.log.fatal("stopping...") + except KeyboardInterrupt: + pass + except zmq.ZMQError as e: + if e.errno == errno.EINTR: + pass + else: + raise # self.remove_pid_file() def start_app_stop(self): diff --git a/IPython/zmq/parallel/scheduler.py b/IPython/zmq/parallel/scheduler.py index ae2f851..4e0430a 100644 --- a/IPython/zmq/parallel/scheduler.py +++ b/IPython/zmq/parallel/scheduler.py @@ -127,7 +127,7 @@ class TaskScheduler(SessionFactory): mon_stream = Instance(zmqstream.ZMQStream) # hub-facing pub stream # internals: - dependencies = Dict() # dict by msg_id of [ msg_ids that depend on key ] + graph = Dict() # dict by msg_id of [ msg_ids that depend on key ] depending = Dict() # dict by msg_id of (msg_id, raw_msg, after, follow) pending = Dict() # dict by engine_uuid of submitted tasks completed = Dict() # dict by engine_uuid of completed tasks @@ -139,6 +139,7 @@ class TaskScheduler(SessionFactory): all_completed = Set() # set of all completed tasks all_failed = Set() # set of all failed tasks all_done = Set() # set of all finished tasks=union(completed,failed) + all_ids = Set() # set of all submitted task IDs blacklist = Dict() # dict by msg_id of locations where a job has encountered UnmetDependency auditor = Instance('zmq.eventloop.ioloop.PeriodicCallback') @@ -239,7 +240,7 @@ class TaskScheduler(SessionFactory): msg = self.session.send(self.client_stream, 'apply_reply', content, parent=parent, ident=idents) self.session.send(self.mon_stream, msg, ident=['outtask']+idents) - self.update_dependencies(msg_id) + self.update_graph(msg_id) #----------------------------------------------------------------------- @@ -252,20 +253,21 @@ class TaskScheduler(SessionFactory): self.notifier_stream.flush() try: idents, msg = self.session.feed_identities(raw_msg, copy=False) - except Exception as e: - self.log.error("task::Invaid msg: %s"%msg) + msg = self.session.unpack_message(msg, content=False, copy=False) + except: + self.log.error("task::Invaid task: %s"%raw_msg, exc_info=True) return # send to monitor self.mon_stream.send_multipart(['intask']+raw_msg, copy=False) - msg = self.session.unpack_message(msg, content=False, copy=False) header = msg['header'] msg_id = header['msg_id'] + self.all_ids.add(msg_id) # time dependencies after = Dependency(header.get('after', [])) - if after.mode == 'all': + if after.all: after.difference_update(self.all_completed) if not after.success_only: after.difference_update(self.all_failed) @@ -276,10 +278,16 @@ class TaskScheduler(SessionFactory): # location dependencies follow = Dependency(header.get('follow', [])) - # check if unreachable: - if after.unreachable(self.all_failed) or follow.unreachable(self.all_failed): - self.depending[msg_id] = [raw_msg,MET,MET,None] - return self.fail_unreachable(msg_id) + + for dep in after,follow: + # check valid: + if msg_id in dep or dep.difference(self.all_ids): + self.depending[msg_id] = [raw_msg,MET,MET,None] + return self.fail_unreachable(msg_id, error.InvalidDependency) + # check if unreachable: + if dep.unreachable(self.all_failed): + self.depending[msg_id] = [raw_msg,MET,MET,None] + return self.fail_unreachable(msg_id) # turn timeouts into datetime objects: timeout = header.get('timeout', None) @@ -288,7 +296,7 @@ class TaskScheduler(SessionFactory): if after.check(self.all_completed, self.all_failed): # time deps already met, try to run - if not self.maybe_run(msg_id, raw_msg, follow): + if not self.maybe_run(msg_id, raw_msg, follow, timeout): # can't run yet self.save_unmet(msg_id, raw_msg, after, follow, timeout) else: @@ -306,25 +314,23 @@ class TaskScheduler(SessionFactory): self.fail_unreachable(msg_id, timeout=True) @logged - def fail_unreachable(self, msg_id, timeout=False): + def fail_unreachable(self, msg_id, why=error.ImpossibleDependency): """a message has become unreachable""" if msg_id not in self.depending: self.log.error("msg %r already failed!"%msg_id) return raw_msg, after, follow, timeout = self.depending.pop(msg_id) for mid in follow.union(after): - if mid in self.dependencies: - self.dependencies[mid].remove(msg_id) + if mid in self.graph: + self.graph[mid].remove(msg_id) # FIXME: unpacking a message I've already unpacked, but didn't save: idents,msg = self.session.feed_identities(raw_msg, copy=False) msg = self.session.unpack_message(msg, copy=False, content=False) header = msg['header'] - impossible = error.DependencyTimeout if timeout else error.ImpossibleDependency - try: - raise impossible() + raise why() except: content = ss.wrap_exception() @@ -335,10 +341,10 @@ class TaskScheduler(SessionFactory): parent=header, ident=idents) self.session.send(self.mon_stream, msg, ident=['outtask']+idents) - self.update_dependencies(msg_id, success=False) + self.update_graph(msg_id, success=False) @logged - def maybe_run(self, msg_id, raw_msg, follow=None): + def maybe_run(self, msg_id, raw_msg, follow=None, timeout=None): """check location dependencies, and run if they are met.""" if follow: @@ -349,8 +355,7 @@ class TaskScheduler(SessionFactory): indices = filter(can_run, range(len(self.targets))) if not indices: - # TODO evaluate unmeetable follow dependencies - if follow.mode == 'all': + if follow.all: dests = set() relevant = self.all_completed if follow.success_only else self.all_done for m in follow.intersection(relevant): @@ -363,7 +368,7 @@ class TaskScheduler(SessionFactory): else: indices = None - self.submit_task(msg_id, raw_msg, indices) + self.submit_task(msg_id, raw_msg, follow, timeout, indices) return True @logged @@ -372,12 +377,12 @@ class TaskScheduler(SessionFactory): self.depending[msg_id] = [raw_msg,after,follow,timeout] # track the ids in follow or after, but not those already finished for dep_id in after.union(follow).difference(self.all_done): - if dep_id not in self.dependencies: - self.dependencies[dep_id] = set() - self.dependencies[dep_id].add(msg_id) + if dep_id not in self.graph: + self.graph[dep_id] = set() + self.graph[dep_id].add(msg_id) @logged - def submit_task(self, msg_id, raw_msg, follow=None, indices=None): + def submit_task(self, msg_id, raw_msg, follow, timeout, indices=None): """Submit a task to any of a subset of our targets.""" if indices: loads = [self.loads[i] for i in indices] @@ -391,7 +396,7 @@ class TaskScheduler(SessionFactory): self.engine_stream.send(target, flags=zmq.SNDMORE, copy=False) self.engine_stream.send_multipart(raw_msg, copy=False) self.add_job(idx) - self.pending[target][msg_id] = (raw_msg, follow) + self.pending[target][msg_id] = (raw_msg, follow, timeout) content = dict(msg_id=msg_id, engine_id=target) self.session.send(self.mon_stream, 'task_destination', content=content, ident=['tracktask',self.session.session]) @@ -403,10 +408,11 @@ class TaskScheduler(SessionFactory): def dispatch_result(self, raw_msg): try: idents,msg = self.session.feed_identities(raw_msg, copy=False) - except Exception as e: - self.log.error("task::Invaid result: %s"%msg) + msg = self.session.unpack_message(msg, content=False, copy=False) + except: + self.log.error("task::Invaid result: %s"%raw_msg, exc_info=True) return - msg = self.session.unpack_message(msg, content=False, copy=False) + header = msg['header'] if header.get('dependencies_met', True): success = (header['status'] == 'ok') @@ -438,7 +444,7 @@ class TaskScheduler(SessionFactory): self.all_done.add(msg_id) self.destinations[msg_id] = engine - self.update_dependencies(msg_id, success) + self.update_graph(msg_id, success) @logged def handle_unmet_dependency(self, idents, parent): @@ -448,30 +454,30 @@ class TaskScheduler(SessionFactory): self.blacklist[msg_id] = set() self.blacklist[msg_id].add(engine) raw_msg,follow,timeout = self.pending[engine].pop(msg_id) - if not self.maybe_run(msg_id, raw_msg, follow): + if not self.maybe_run(msg_id, raw_msg, follow, timeout): # resubmit failed, put it back in our dependency tree self.save_unmet(msg_id, raw_msg, MET, follow, timeout) pass @logged - def update_dependencies(self, dep_id, success=True): + def update_graph(self, dep_id, success=True): """dep_id just finished. Update our dependency table and submit any jobs that just became runable.""" # print ("\n\n***********") # pprint (dep_id) - # pprint (self.dependencies) + # pprint (self.graph) # pprint (self.depending) # pprint (self.all_completed) # pprint (self.all_failed) # print ("\n\n***********\n\n") - if dep_id not in self.dependencies: + if dep_id not in self.graph: return - jobs = self.dependencies.pop(dep_id) + jobs = self.graph.pop(dep_id) for msg_id in jobs: raw_msg, after, follow, timeout = self.depending[msg_id] # if dep_id in after: - # if after.mode == 'all' and (success or not after.success_only): + # if after.all and (success or not after.success_only): # after.remove(dep_id) if after.unreachable(self.all_failed) or follow.unreachable(self.all_failed): @@ -479,12 +485,12 @@ class TaskScheduler(SessionFactory): elif after.check(self.all_completed, self.all_failed): # time deps met, maybe run self.depending[msg_id][1] = MET - if self.maybe_run(msg_id, raw_msg, follow): + if self.maybe_run(msg_id, raw_msg, follow, timeout): self.depending.pop(msg_id) for mid in follow.union(after): - if mid in self.dependencies: - self.dependencies[mid].remove(msg_id) + if mid in self.graph: + self.graph[mid].remove(msg_id) #---------------------------------------------------------------------- # methods to be overridden by subclasses @@ -506,7 +512,8 @@ class TaskScheduler(SessionFactory): -def launch_scheduler(in_addr, out_addr, mon_addr, not_addr, config=None,logname='ZMQ', log_addr=None, loglevel=logging.DEBUG, scheme='weighted'): +def launch_scheduler(in_addr, out_addr, mon_addr, not_addr, config=None,logname='ZMQ', + log_addr=None, loglevel=logging.DEBUG, scheme='lru'): from zmq.eventloop import ioloop from zmq.eventloop.zmqstream import ZMQStream diff --git a/IPython/zmq/parallel/view.py b/IPython/zmq/parallel/view.py index 3249dd2..a67c4da 100644 --- a/IPython/zmq/parallel/view.py +++ b/IPython/zmq/parallel/view.py @@ -228,7 +228,12 @@ class DirectView(View): >>> dv_even = client[::2] >>> dv_some = client[1:3] - This object provides dictionary access + This object provides dictionary access to engine namespaces: + + # push a=5: + >>> dv['a'] = 5 + # pull 'foo': + >>> db['foo'] """ diff --git a/docs/examples/newparallel/demo/dag/dagdeps.py b/docs/examples/newparallel/dagdeps.py similarity index 89% rename from docs/examples/newparallel/demo/dag/dagdeps.py rename to docs/examples/newparallel/dagdeps.py index c3b6837..ee2bcc8 100644 --- a/docs/examples/newparallel/demo/dag/dagdeps.py +++ b/docs/examples/newparallel/dagdeps.py @@ -57,7 +57,7 @@ def submit_jobs(client, G, jobs): """Submit jobs via client where G describes the time dependencies.""" results = {} for node in nx.topological_sort(G): - deps = [ results[n].msg_ids[0] for n in G.predecessors(node) ] + deps = [ results[n] for n in G.predecessors(node) ] results[node] = client.apply(jobs[node], after=deps) return results @@ -77,30 +77,34 @@ def main(nodes, edges): point at least slightly to the right if the graph is valid. """ from matplotlib.dates import date2num + from matplotlib.cm import gist_rainbow print "building DAG" G = random_dag(nodes, edges) jobs = {} pos = {} + colors = {} for node in G: jobs[node] = randomwait client = cmod.Client() - print "submitting tasks" + print "submitting %i tasks with %i dependencies"%(nodes,edges) results = submit_jobs(client, G, jobs) print "waiting for results" client.barrier() print "done" for node in G: - # times[node] = results[node].get() - t = date2num(results[node].metadata.started) - pos[node] = (t, G.in_degree(node)+random()) - + md = results[node].metadata + start = date2num(md.started) + runtime = date2num(md.completed) - start + pos[node] = (start, runtime) + colors[node] = md.engine_id validate_tree(G, results) - nx.draw(G, pos) + nx.draw(G, pos, node_list = colors.keys(), node_color=colors.values(), cmap=gist_rainbow) return G,results if __name__ == '__main__': import pylab - main(32,128) + # main(5,10) + main(32,96) pylab.show() \ No newline at end of file diff --git a/docs/source/parallelz/dag_dependencies.txt b/docs/source/parallelz/dag_dependencies.txt new file mode 100644 index 0000000..b1816ae --- /dev/null +++ b/docs/source/parallelz/dag_dependencies.txt @@ -0,0 +1,172 @@ +.. _dag_dependencies: + +================ +DAG Dependencies +================ + +Often, parallel workflow is described in terms of a `Directed Acyclic Graph +`_ or DAG. A popular library +for working with Graphs is NetworkX_. Here, we will walk through a demo mapping +a nx DAG to task dependencies. + +The full script that runs this demo can be found in +:file:`docs/examples/newparallel/dagdeps.py`. + +Why are DAGs good for task dependencies? +---------------------------------------- + +The 'G' in DAG is 'Graph'. A Graph is a collection of **nodes** and **edges** that connect +the nodes. For our purposes, each node would be a task, and each edge would be a +dependency. The 'D' in DAG stands for 'Directed'. This means that each edge has a +direction associated with it. So we can interpret the edge (a,b) as meaning that b depends +on a, whereas the edge (b,a) would mean a depends on b. The 'A' is 'Acyclic', meaning that +there must not be any closed loops in the graph. This is important for dependencies, +because if a loop were closed, then a task could ultimately depend on itself, and never be +able to run. If your workflow can be described as a DAG, then it is impossible for your +dependencies to cause a deadlock. + +A Sample DAG +------------ + +Here, we have a very simple 5-node DAG: + +.. figure:: simpledag.* + +With NetworkX, an arrow is just a fattened bit on the edge. Here, we can see that task 0 +depends on nothing, and can run immediately. 1 and 2 depend on 0; 3 depends on + 1 and 2; and 4 depends only on 1. + +A possible sequence of events for this workflow: + +0. Task 0 can run right away +1. 0 finishes, so 1,2 can start +2. 1 finishes, 3 is still waiting on 2, but 4 can start right away +3. 2 finishes, and 3 can finally start + + +Further, taking failures into account, assuming all dependencies are run with the default +`success_only=True`, the following cases would occur for each node's failure: + +0. fails: all other tasks fail as Impossible +1. 2 can still succeed, but 3,4 are unreachable +2. 3 becomes unreachable, but 4 is unaffected +3. and 4. are terminal, and can have no effect on other nodes + +The code to generate the simple DAG: + +.. sourcecode:: python + + import networkx as nx + + G = nx.DiGraph() + + # add 5 nodes, labeled 0-4: + map(G.add_node, range(5)) + # 1,2 depend on 0: + G.add_edge(0,1) + G.add_edge(0,2) + # 3 depends on 1,2 + G.add_edge(1,3) + G.add_edge(2,3) + # 4 depends on 1 + G.add_edge(1,4) + + # now draw the graph: + pos = { 0 : (0,0), 1 : (1,1), 2 : (-1,1), + 3 : (0,2), 4 : (2,2)} + nx.draw(G, pos, edge_color='r') + + +For demonstration purposes, we have a function that generates a random DAG with a given +number of nodes and edges. + +.. literalinclude:: ../../examples/newparallel/dagdeps.py + :language: python + :lines: 20-36 + +So first, we start with a graph of 32 nodes, with 128 edges: + +.. sourcecode:: ipython + + In [2]: G = random_dag(32,128) + +Now, we need to build our dict of jobs corresponding to the nodes on the graph: + +.. sourcecode:: ipython + + In [3]: jobs = {} + + # in reality, each job would presumably be different + # randomwait is just a function that sleeps for a random interval + In [4]: for node in G: + ...: jobs[node] = randomwait + +Once we have a dict of jobs matching the nodes on the graph, we can start submitting jobs, +and linking up the dependencies. Since we don't know a job's msg_id until it is submitted, +which is necessary for building dependencies, it is critical that we don't submit any jobs +before other jobs it may depend on. Fortunately, NetworkX provides a +:meth:`topological_sort` method which ensures exactly this. It presents an iterable, that +guarantees that when you arrive at a node, you have already visited all the nodes it +on which it depends: + +.. sourcecode:: ipython + + In [5]: c = client.Client() + + In [6]: results = {} + + In [7]: for node in G.topological_sort(): + ...: # get list of AsyncResult objects from nodes + ...: # leading into this one as dependencies + ...: deps = [ results[n] for n in G.predecessors(node) ] + ...: # submit and store AsyncResult object + ...: results[node] = client.apply(jobs[node], after=deps, block=False) + +Now that we have submitted all the jobs, we can wait for the results: + +.. sourcecode:: ipython + + In [8]: [ r.get() for r in results.values() ] + +Now, at least we know that all the jobs ran and did not fail (``r.get()`` would have +raised an error if a task failed). But we don't know that the ordering was properly +respected. For this, we can use the :attr:`metadata` attribute of each AsyncResult. + +These objects store a variety of metadata about each task, including various timestamps. +We can validate that the dependencies were respected by checking that each task was +started after all of its predecessors were completed: + +.. literalinclude:: ../../examples/newparallel/dagdeps.py + :language: python + :lines: 64-70 + +We can also validate the graph visually. By drawing the graph with each node's x-position +as its start time, all arrows must be pointing to the right if the order was respected. +For spreading, the y-position will be the in-degree, so tasks with lots of dependencies +will be at the top, and tasks with few dependencies will be at the bottom. + +.. sourcecode:: ipython + + In [10]: from matplotlib.dates import date2num + + In [11]: from matplotlib.cm import gist_rainbow + + In [12]: pos = {}; colors = {} + + In [12]: for node in G: + ...: md = results[node].metadata + ...: start = date2num(md.started) + ...: runtime = date2num(md.completed) - start + ...: pos[node] = (start, runtime) + ...: colors[node] = md.engine_id + + In [13]: nx.draw(G, pos, node_list=colors.keys(), node_color=colors.values(), + ...: cmap=gist_rainbow) + +.. figure:: dagdeps.* + + Time started on x, runtime on y, and color-coded by engine-id (in this case there + were four engines). + + +.. _NetworkX: http://networkx.lanl.gov/ diff --git a/docs/source/parallelz/dagdeps.pdf b/docs/source/parallelz/dagdeps.pdf new file mode 100644 index 0000000000000000000000000000000000000000..33bdc9d182553afc7bc9bd5a238ed9a1ba8ef6cd GIT binary patch literal 16910 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

EuN%>2K-0KixB*UWwclsyw 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 for more. @@ -270,15 +270,12 @@ local Python/IPython session: .. sourcecode:: ipython # define our function - In [35]: def wait(t): - ....: import time - ....: tic = time.time() - ....: time.sleep(t) - ....: return time.time()-tic + In [6]: def wait(t): + ...: import time + ...: tic = time.time() + ...: time.sleep(t) + ...: return time.time()-tic - # In blocking mode - In [6]: rc.apply('import time') - # In non-blocking mode In [7]: pr = rc[:].apply_async(wait, 2) @@ -316,8 +313,8 @@ local Python/IPython session: Often, it is desirable to wait until a set of :class:`AsyncResult` objects are done. For this, there is a the method :meth:`barrier`. This method takes a -tuple of :class:`AsyncResult` objects (or `msg_ids`) and blocks until all of the associated -results are ready: +tuple of :class:`AsyncResult` objects (or `msg_ids`) and blocks until all of the +associated results are ready: .. sourcecode:: ipython @@ -329,7 +326,7 @@ results are ready: # Wait until all of them are done In [74]: rc.barrier(pr_list) - # Then, their results are ready using get_result or the r attribute + # Then, their results are ready using get() or the `.r` attribute In [75]: pr_list[0].get() Out[75]: [2.9982571601867676, 2.9982588291168213, 2.9987530708312988, 2.9990990161895752] diff --git a/docs/source/parallelz/parallel_security.txt b/docs/source/parallelz/parallel_security.txt index 042edd9..a588db2 100644 --- a/docs/source/parallelz/parallel_security.txt +++ b/docs/source/parallelz/parallel_security.txt @@ -320,4 +320,5 @@ channel is established. .. [RFC5246] - +.. [OpenSSH] +.. [Paramiko] diff --git a/docs/source/parallelz/parallel_task.txt b/docs/source/parallelz/parallel_task.txt index b188e89..99213ff 100644 --- a/docs/source/parallelz/parallel_task.txt +++ b/docs/source/parallelz/parallel_task.txt @@ -4,13 +4,13 @@ The IPython task interface ========================== -The task interface to the controller presents the engines as a fault tolerant, +The task interface to the cluster presents the engines as a fault tolerant, dynamic load-balanced system of workers. Unlike the multiengine interface, in -the task interface, the user have no direct access to individual engines. By -allowing the IPython scheduler to assign work, this interface is both simpler -and more powerful. +the task interface the user have no direct access to individual engines. By +allowing the IPython scheduler to assign work, this interface is simultaneously +simpler and more powerful. -Best of all the user can use both of these interfaces running at the same time +Best of all, the user can use both of these interfaces running at the same time to take advantage of their respective strengths. When the user can break up the user's work into segments that do not depend on previous execution, the task interface is ideal. But it also has more power and flexibility, allowing @@ -97,11 +97,275 @@ that turns any Python function into a parallel function: In [10]: @lview.parallel() ....: def f(x): ....: return 10.0*x**4 - ....: + ....: In [11]: f.map(range(32)) # this is done in parallel Out[11]: [0.0,10.0,160.0,...] +Dependencies +============ + +Often, pure atomic load-balancing is too primitive for your work. In these cases, you +may want to associate some kind of `Dependency` that describes when, where, or whether +a task can be run. In IPython, we provide two types of dependencies: +`Functional Dependencies`_ and `Graph Dependencies`_ + +.. note:: + + It is important to note that the pure ZeroMQ scheduler does not support dependencies, + and you will see errors or warnings if you try to use dependencies with the pure + scheduler. + +Functional Dependencies +----------------------- + +Functional dependencies are used to determine whether a given engine is capable of running +a particular task. This is implemented via a special :class:`Exception` class, +:class:`UnmetDependency`, found in `IPython.zmq.parallel.error`. Its use is very simple: +if a task fails with an UnmetDependency exception, then the scheduler, instead of relaying +the error up to the client like any other error, catches the error, and submits the task +to a different engine. This will repeat indefinitely, and a task will never be submitted +to a given engine a second time. + +You can manually raise the :class:`UnmetDependency` yourself, but IPython has provided +some decorators for facilitating this behavior. + +There are two decorators and a class used for functional dependencies: + +.. sourcecode:: ipython + + In [9]: from IPython.zmq.parallel.dependency import depend, require, dependent + +@require +******** + +The simplest sort of dependency is requiring that a Python module is available. The +``@require`` decorator lets you define a function that will only run on engines where names +you specify are importable: + +.. sourcecode:: ipython + + In [10]: @require('numpy', 'zmq') + ...: def myfunc(): + ...: import numpy,zmq + ...: return dostuff() + +Now, any time you apply :func:`myfunc`, the task will only run on a machine that has +numpy and pyzmq available. + +@depend +******* + +The ``@depend`` decorator lets you decorate any function with any *other* function to +evaluate the dependency. The dependency function will be called at the start of the task, +and if it returns ``False``, then the dependency will be considered unmet, and the task +will be assigned to another engine. If the dependency returns *anything other than +``False``*, the rest of the task will continue. + +.. sourcecode:: ipython + + In [10]: def platform_specific(plat): + ...: import sys + ...: return sys.platform == plat + + In [11]: @depend(platform_specific, 'darwin') + ...: def mactask(): + ...: do_mac_stuff() + + In [12]: @depend(platform_specific, 'nt') + ...: def wintask(): + ...: do_windows_stuff() + +In this case, any time you apply ``mytask``, it will only run on an OSX machine. +``@depend`` is just like ``apply``, in that it has a ``@depend(f,*args,**kwargs)`` +signature. + +dependents +********** + +You don't have to use the decorators on your tasks, if for instance you may want +to run tasks with a single function but varying dependencies, you can directly construct +the :class:`dependent` object that the decorators use: + +.. sourcecode::ipython + + In [13]: def mytask(*args): + ...: dostuff() + + In [14]: mactask = dependent(mytask, platform_specific, 'darwin') + # this is the same as decorating the declaration of mytask with @depend + # but you can do it again: + + In [15]: wintask = dependent(mytask, platform_specific, 'nt') + + # in general: + In [16]: t = dependent(f, g, *dargs, **dkwargs) + + # is equivalent to: + In [17]: @depend(g, *dargs, **dkwargs) + ...: def t(a,b,c): + ...: # contents of f + +Graph Dependencies +------------------ + +Sometimes you want to restrict the time and/or location to run a given task as a function +of the time and/or location of other tasks. This is implemented via a subclass of +:class:`set`, called a :class:`Dependency`. A Dependency is just a set of `msg_ids` +corresponding to tasks, and a few attributes to guide how to decide when the Dependency +has been met. + +The switches we provide for interpreting whether a given dependency set has been met: + +any|all + Whether the dependency is considered met if *any* of the dependencies are done, or + only after *all* of them have finished. This is set by a Dependency's :attr:`all` + boolean attribute, which defaults to ``True``. + +success_only + Whether to consider only tasks that did not raise an error as being fulfilled. + Sometimes you want to run a task after another, but only if that task succeeded. In + this case, ``success_only`` should be ``True``. However sometimes you may not care + whether the task succeeds, and always want the second task to run, in which case + you should use `success_only=False`. The default behavior is to only use successes. + +There are other switches for interpretation that are made at the *task* level. These are +specified via keyword arguments to the client's :meth:`apply` method. + +after,follow + You may want to run a task *after* a given set of dependencies have been run and/or + run it *where* another set of dependencies are met. To support this, every task has an + `after` dependency to restrict time, and a `follow` dependency to restrict + destination. + +timeout + You may also want to set a time-limit for how long the scheduler should wait before a + task's dependencies are met. This is done via a `timeout`, which defaults to 0, which + indicates that the task should never timeout. If the timeout is reached, and the + scheduler still hasn't been able to assign the task to an engine, the task will fail + with a :class:`DependencyTimeout`. + +.. note:: + + Dependencies only work within the task scheduler. You cannot instruct a load-balanced + task to run after a job submitted via the MUX interface. + +The simplest form of Dependencies is with `all=True,success_only=True`. In these cases, +you can skip using Dependency objects, and just pass msg_ids or AsyncResult objects as the +`follow` and `after` keywords to :meth:`client.apply`: + +.. sourcecode:: ipython + + In [14]: client.block=False + + In [15]: ar = client.apply(f, args, kwargs, targets=None) + + In [16]: ar2 = client.apply(f2, targets=None) + + In [17]: ar3 = client.apply(f3, after=[ar,ar2]) + + In [17]: ar4 = client.apply(f3, follow=[ar], timeout=2.5) + + +.. seealso:: + + Some parallel workloads can be described as a `Directed Acyclic Graph + `_, or DAG. See :ref:`DAG + Dependencies ` for an example demonstrating how to use map a NetworkX DAG + onto task dependencies. + + + +Impossible Dependencies +*********************** + +The schedulers do perform some analysis on graph dependencies to determine whether they +are not possible to be met. If the scheduler does discover that a dependency cannot be +met, then the task will fail with an :class:`ImpossibleDependency` error. This way, if the +scheduler realized that a task can never be run, it won't sit indefinitely in the +scheduler clogging the pipeline. + +The basic cases that are checked: + +* depending on nonexistent messages +* `follow` dependencies were run on more than one machine and `all=True` +* any dependencies failed and `all=True,success_only=True` +* all dependencies failed and `all=False,success_only=True` + +.. warning:: + + This analysis has not been proven to be rigorous, so it is likely possible for tasks + to become impossible to run in obscure situations, so a timeout may be a good choice. + +Schedulers +========== + +There are a variety of valid ways to determine where jobs should be assigned in a +load-balancing situation. In IPython, we support several standard schemes, and +even make it easy to define your own. The scheme can be selected via the ``--scheme`` +argument to :command:`ipcontrollerz`, or in the :attr:`HubFactory.scheme` attribute +of a controller config object. + +The built-in routing schemes: + +lru: Least Recently Used + + Always assign work to the least-recently-used engine. A close relative of + round-robin, it will be fair with respect to the number of tasks, agnostic + with respect to runtime of each task. + +plainrandom: Plain Random + Randomly picks an engine on which to run. + +twobin: Two-Bin Random + + **Depends on numpy** + + Pick two engines at random, and use the LRU of the two. This is known to be better + than plain random in many cases, but requires a small amount of computation. + +leastload: Least Load + + **This is the default scheme** + + Always assign tasks to the engine with the fewest outstanding tasks (LRU breaks tie). + +weighted: Weighted Two-Bin Random + + **Depends on numpy** + + Pick two engines at random using the number of outstanding tasks as inverse weights, + and use the one with the lower load. + + +Pure ZMQ Scheduler +------------------ + +For maximum throughput, the 'pure' scheme is not Python at all, but a C-level +:class:`MonitoredQueue` from PyZMQ, which uses a ZeroMQ ``XREQ`` socket to perform all +load-balancing. This scheduler does not support any of the advanced features of the Python +:class:`.Scheduler`. + +Disabled features when using the ZMQ Scheduler: + +* Engine unregistration + Task farming will be disabled if an engine unregisters. + Further, if an engine is unregistered during computation, the scheduler may not recover. +* Dependencies + Since there is no Python logic inside the Scheduler, routing decisions cannot be made + based on message content. +* Early destination notification + The Python schedulers know which engine gets which task, and notify the Hub. This + allows graceful handling of Engines coming and going. There is no way to know + where ZeroMQ messages have gone, so there is no way to know what tasks are on which + engine until they *finish*. This makes recovery from engine shutdown very difficult. + + +.. note:: + + TODO: performance comparisons + + More details ============ @@ -125,8 +389,7 @@ The following is an overview of how to use these classes together: tasks, or use the :meth:`AsyncResult.get` method of the results to wait for and then receive the results. -We are in the process of developing more detailed information about the task -interface. For now, the docstrings of the :meth:`Client.apply`, -and :func:`depend` methods should be consulted. +.. seealso:: + A demo of :ref:`DAG Dependencies ` with NetworkX and IPython. diff --git a/docs/source/parallelz/parallel_winhpc.txt b/docs/source/parallelz/parallel_winhpc.txt index 0477262..eedd8c6 100644 --- a/docs/source/parallelz/parallel_winhpc.txt +++ b/docs/source/parallelz/parallel_winhpc.txt @@ -123,7 +123,7 @@ opening a Windows Command Prompt and typing ``ipython``. This will start IPython's interactive shell and you should see something like the following screenshot: -.. image:: ipython_shell.* +.. image:: ../parallel/ipython_shell.* Starting an IPython cluster =========================== @@ -171,7 +171,7 @@ You should see a number of messages printed to the screen, ending with "IPython cluster: started". The result should look something like the following screenshot: -.. image:: ipclusterz_start.* +.. image:: ../parallel/ipcluster_start.* At this point, the controller and two engines are running on your local host. This configuration is useful for testing and for situations where you want to @@ -213,7 +213,7 @@ The output of this command is shown in the screenshot below. Notice how :command:`ipclusterz` prints out the location of the newly created cluster directory. -.. image:: ipclusterz_create.* +.. image:: ../parallel/ipcluster_create.* Configuring a cluster profile ----------------------------- @@ -282,7 +282,7 @@ must be run again to regenerate the XML job description files. The following screenshot shows what the HPC Job Manager interface looks like with a running IPython cluster. -.. image:: hpc_job_manager.* +.. image:: ../parallel/hpc_job_manager.* Performing a simple interactive parallel computation ==================================================== @@ -333,5 +333,5 @@ The :meth:`map` method has the same signature as Python's builtin :func:`map` function, but runs the calculation in parallel. More involved examples of using :class:`MultiEngineClient` are provided in the examples that follow. -.. image:: mec_simple.* +.. image:: ../parallel/mec_simple.* diff --git a/docs/source/parallelz/simpledag.pdf b/docs/source/parallelz/simpledag.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5aadf0dfe2732f3ebd5fdcf1cb363c09e4b46023 GIT binary patch literal 5162 zc$}>m2{=@1yF$xB3sIsvDMe-GEOTa&vX{vkLW`I<7|RSZhb+;q<l%fyAIx@$ zqvm;1B8r4LN(P>xq9Cy(1m-H)&y`9j81JPHim2#g2PjAhC5Hvd9ZG{}J7Bg4DVN5` z0)a*RZf#|NR%su^b|HhrB3o%3(3a*%@VGDs$ADU2MF~_S%@s!gQ^6Pk^tC4gr9nW1 zGbst7LSYo`)=^H$NKqsdm$SjAUUDDNs%)J>MX*^8n-i9*l@63?mRnm@MS7|W*F07< z7f+d0F@-GJn6#i&FlA%)iIN+G+t$UrD?Hn-?fX;lPLIR;*d2J>;pTwO&t&`6iN97h z-Dpa_Cw;equxz+{#%4_9g@h3k&!3#ge%yM^x49|u<&)x$GacK#*G8Ra-zB^|FAtnI zTRjGk5ssf+uHkVg`uT=roB3Y0_D{5oSsL@N`^tuK6@xT#oPImhx|pry1dUz2@=DF6 zve6fx7ELoYH=8u_ha1-~9#_9S(627HK{P{Qac|JNaIc(W7c(}xP zrz)cJ7icMt-E$UaZ7(Sj89Yx{97y+66q!vsa$!Hmfa|tKyD-%u*K=X@;U}(d_k}pZ z6*rs$Q*JMFiOkR*c}y!LZ+-ktDmU-9?`|EqWp7w^I{jo}+2g}mwIbh-V>Q)fe-C-F zI6vzUzwS)o*guz;?RmOsOSMJefUx2BF++QS^QOk>rsl0Hr)^qjyi3bPc!;w_%FS`7 zyozJWtTUE|KXh5Nf9-Jd$GgoIJk}6w`(P(|XEjuokrG)vFU`D0bkITYbAh(zzO-xu zD)^9XOvBsjymfcXO!k)?DSmsRJ#5n1_~Y+KtY235`BU?Qs{O*6?G^sj4IN_)!o(Nq zJ~bB=rY>&H(2=E&9zA{!>!Q!I;~s4`Pcy}nBRh+Wgid;$0&(FQ%cye}B-VPP5jf9`Tr?CTF2v5BwCEAF}Z=fs4vty&|z(&wie--%4$`4p}A z^yljbD_4L2?sbHf|050ac>f-WHO1y!5n3QmXSF-h_lxg2?l;(+9MS zI5RAu&gcCDqOxL6_NtWG#*66_+I7~t%R+Zu<8z5GIPNzdU;)zO@Vcbg=v2W&)m~N_ zySdxn?4%MDo&H4)!_QQ?4%)2mu=Xtx=7hADVS3^2W?31#sum(kH5=Q1yz)0Dbl#hC zJMom-y5p~+*C~X5y^Bs5P}Gqy_`wK;k+E+-TJye9Lk#VyBH>=IZHEr62!ZqqMh{vO zl>#mzUbDCq}JmMtl+%aR#BQYi~u4KcxGhXKHK7Q=h zy_SHeaZ{JA*5?I06{n3OsE2D0vNCPg)R_FSdu2@G)3a^{abX6sSoKkMbpgY|%Jp4* zOD*?pa~;^ynOxm&{wQzzn=8479}RQb{+LxFc{nXB*7%l84{Ipl)Q%mh>oCDG-r-1JfM~C{?T%S*SV1T%CmQJM!`;*(2gD3YfUu&*4ov?GI|miZuR}-6|)lp z7N)M(8CXABH$QxlMMZUX+Gopy1Fc#{$&UJ-G78jl)Gm*1)O%_7CjRm`I5=zP7Rb+g zvwpJ8s~_eaNqX<=|N%T6PV#@w{Uy zUU~D--aylA19HO(qiiist_!HzD9t=iLwSe}7gpI=R}bpU`~k#fWiwhQ@q>V7r>l z(E2BO3AXavFOSuyzwdkoT^YD8#SXSGk9NQ0Hge~Trq`DjmOgyBd+hlY=kuDc#2D%e zM(Q~##(KFF_*G6gGbGk1c+i{u#LRUDt!h?*5HBG*&iT?WZ7~Lfdg9%1w_tZ{#+c~3 ziyEFW_b%_Qb~~7=*|zkC_T|%~?vP{m@5#KBx_+|DBoD{D=Ti%Dn{Dd(MGNxNjB1jf z)lc3lS~xjO>#wCwzuuMWULVJqrC($zI55vAr@pR6bHOT4PZ(}`8f`OdLf?WiYC2#MrK) zNT8psm{M-_CS@W|kwk9pA&nGCAZC|~h?0q!#)^d?DAQhjoq@j3RwO5x-tIrM@ev16 zp>h~iHlu9MnB^4H+R+Uj4*I@Ok&Ny(0R^Gj`6;>170culO#&lIg>035o;k|rz~&gv z1$_B@Sbzy&KZxxh0WPPzPTFXDad0pR+C;i-TmpmiWham_Da@8i0C#Eym{FlJ63l}^ zZ%Nytl>3DTh!)#f)FmAw2-U_FS8*=wSh^WywD~6;f&CO2=?%8iNfIK5aSUSnI+Eg$ zPzokEJXPyeBF6mxhj6)w;uu$h@NzKvQy{8~Ee{9Mgy6$K9B3m6i6Cj=HcFjoom9-i zy3ASva}nhK0nq=t7YBC+2c#K?i@hv2IoQa$S8m)4da45qxTX7(!~SN z0=di_=Kx3W86bE9W)$!^44#W(kdlUgIY0)10mle1W{m(NA2^8~8Ni4yj-W@z*|coh zLCQcd&LY4b#wmmfFqy_kq5mMfuK3ZWsl<^6LJ1Jj6|*m_loOz!k_Cn{+Ze5A?*Pek z8uSh!?JYu;1BZvwW-D`ni}qBNMl#6+fatc3=7KW5hM2W31_G|&3($$6%z?hZ_*%ec zazX`|d{6}@SGsbdH_&=9bFfzx7|Rg?_`NF!`T+qSQ|1Lq^nmW1=my#*5O;_fdjS(` z<$4bw1j?w=qu-a}K&aF_revaB-}X#dMZ4Y+=<3Sci5}hc747==B7kT1e-D zuyJ~=tK4E=kwkw;ZhuH#e@F~geRYTdWe|ngPU0Z?nn0DR`>DP^$W`~MzPZ?eGE9l3 z5_|gH!_?jaLr{>xC=bODKFTvkc+(JMni=z$5)=~%8Uxcv5fv37r6R=3;i#Zsc)2Jr z959Aud_I8!LWZHVCmqT{S%^GVG7}D^s3;3I`|BD@9?X)El$nZtaWXO(0wofIkS{+_ zp9m1mVE7A;jvTWh>Bez5;NLkz=P@!r0#-uLR&_tpFBy{gYDi~T!$?X}k4 zd!4=4Z=J+CY_ppC7$$mhD*aV#o!0^ANQvf z@1sFw4Cn-o; zXOc*FH$O2_H`t&&C)xtM{W1O4Hv)oihsiK8+?YT_kR@BV(D582BS@Y)3Z3(Hagf+c z#1OF-^=1Xat>062Y-w$6?JgG=JN{rtsmbW*Xhv4n&B>QYzKQHt zHv%y~J0&IMmz67f##&r!UrUa@xxJ@!SSWksx}c}GX!iZ%#pdDb9tI8F_`DU(SCzd| zHi>@h?l86)p$neJsg0&3E*4}I`4j~PnNGNr@*gI5q;#t~B}y&$Ym>{*b^qmRcynN& zbfPM1DnV2eSfd&2c)SmBe8E{AhoH-fD=Ko54eWbrE61FrY6W`)PAzYaM)D*5;@YR_ zg5~UrcO$*IUr&Teu3wY9&`tCVdeh#HlvQz7C&S>e8QDnhMMdqpIKxNht@w$-@y!G*}~mz>pEkq>dNZ8?k#HMbK7XrgoU%FOPGInm{luWdqmGJN!p zY(e^A4p}}pck7<=5aTel1(L>3wPt1?0+|=On>+S27_RV|817Ux-+=5W)UG!Gx$v2H zVMSlR4VYCvNNv{-AD-Y34owu@iHxj>=&9og=iw=XR->Ux3miILzTDbyVPjT-pRv|# zAYZ5_Rb|guo4(sKS)eCvcfK(DfbO=-xmLdFg@vom9h#GO;^}Zr0%xtpY?Ca|d9e@k zC7Fr`#Kpz6nQh3D6|eJKBgmmgZWKi3c8}28vbvA(E6bkyYFkUhZEdjeXG8BJ&Cl=1 z0&dNM%!Temy^Mt)LuAGgt|xz(AKa21+;jWN6-IG=dslLIBwLdBVBPRzx_@V=Pet&| zl<9~PcYRv}XKE{-!_T#s+@jBpkc;nXH+@=2&daw+Tj_Nm)GRnL;B5OD#_%xRrna^; zTq;qYn1gE`_F=l(N|>IaiST%dX0XiIg+N?#Ff`Qckkjq%+Y~<&>%!FT*=>@;{K~Y1 zYfZ(H>-3R=Tc4hs`stF}66F4>e$G@b`>dx(ZT`$%%1AB8HqC7en}5HoER!yMh80WW z*fX^^BfD%QEquoMXG0wEX&EuEbW3OAnIf_IlUa9-2`}bV2#fm@DfCDk4gamPLHtU7 zcMV&s;7cZwU*NB2mfU^oh9NIYg^K^WA$Zu9KSdSXsr=Yyzh~N-AJG;v^tq*oqL;Pt z*346lVO4I=q9Eow8;Lc)@_e`3i|X3oI%<(lEvkFs1Sr?vyhZ9_6bG=Y_t!v;@ zy>Wy1TJoO;Qn%uD!(nXmHzPj6oQ?ZBG?3#)gPbWN0kgh3@yP6{L*}l6>Z0Ca18KsF z29NI^Z?3Pe_wwMF`^N{It;|iBIN5Rcd4NBCS9-4StmcO5lC?;`d+YRM8vjCV^+@8k z_o6-gX?D+T&dk`~8lDd^LyQW>Pe=s|YBpX-n24O}q|Z_{MrJ1i+d?*di#*?*=y$YT z+aUCQOKtDG#p<&s(fm^$F2HgbXxxygc?V6 zy+f?9E6hLDHF9GwoC57U;j}CN(KKhl_=vDrcp>9U8=B9b-fxZ)96x@19w)sbl}<_T z-)ES72%Poi_kNo$pKjRD_9(11_x=yKs%;=sYunL-ek*&^QU`11%U`S57T2&9ktGjO z{pr#kqENP#UzyP@dAqw|a`lR$gQPJMs1EE`@YOt;Q#W`JV&b!)b+4^Da z(Q@#AjP7(>`c^Ee8ExH{m=Nj>>zpYQYnYgn&Nf~wKl1IEw@*YOCv&R(hu_Nr82kkH z5UPfKL}hV8U`1L&n#;zd0g*2I>|!%MXg@6a6KNLQ8y9`J*;@j`8Ik?xCzn)JdgP^N zCDh!{fy1G=OIRdGW&W|&DKXSk!(To8c30)602(o`?P{s^wVocy*CzYkQ%%>Jx;$;t z7o&vvcmE1m%;YfqD@V7<*DcN4TOx2ZBzcR*O1kWhiu-GV3phiM>A8brk}DY*zYKQe z7I%dj)Ff(Gev)p+a1*;QCY)TKURi06)md4*Qy|!O8i@jiWUF`X+*w#slHSD(GmSj* zfdzNO?2{XbV={TjL43UU@bpa4p_bdeU24eKj-$*aR$OHJ8b9)$if}Wvm3v2!hB8VaH15%Q+Fl>m$-SO`f}s^QXgs2X?$5h1 z5#6Ust$OyC7sC?6i<-Td=_^r!tz&2PCLXeSQ|EYe9|gLbkITCs{dJs~J`cJrJ8Pi3 zd3)zXv;ao8X0FnLHFM1@)V57U(CXLs#AF?0tnuEo`%xlx$Jb7iL?Jlbx;m_wtb=oX z4}1%WA#)F|j$o?iBIuSksd8zr`(8}-M1Zd!e24dZnXM3t%C~NbbXdsMo3~_-$6+o@ ze6>NBk*04KX$zeBD~`+kuJSw%gA)+c^soE!!O5@gPrHW@h$UBUpFM-2>h?|((H}7K z`>SQ<;HP_7S%vmtJ1(N_!7v3!UbT`=gIfdYi371@?gv16IG40AF-uhk$tu#0XK@jB ze9cZUQ{P6~qK6|QV>*R!WTWhH5JvvIPGr1@Lb&soa|aIB^>rbK6EU=`fnx;Ar0K<| z)@5;T7i!1baB;WKms9oz}fW-fk4J+Tk^+S^F_Y%XpE2>P4> z*}*vV#8sA9qv?3`0W!7mX!WIED1>{brrmcFv3u#_{L>hk3Fhnw#NC5d%x|w&%+`h2 zw(O)7wnb`iZ?uuF9`H6&SH4k!xt}nXwF!GVN&{OW>O;;47LCw`+lvjmqz%E#%4qU= zUwv*uZQNUPRldM2FmDyZ=giYB%XmY(7_`zxA_I1X|^}FwuMReP#Wt zOI8K4#d*udqkn^W$B6eYpb(l*P3O^3!U_*YCYy)sDAGQ!kLUdmZ&egamJ2S!$otoc zUd^Ksm(+6{ents%y%}#e^N=g8q#JZR?_#{whFG%u+d;)0s?G$mB{&KA`2Re`>Ku9 zzmZ8ag(SZ%JjD5~c5^lowP=;rVL-)unfnPSVa+~#*`34l3Hg4E9z>v&lM*8^@!ss!$zt zM33pQ4oB`297TJKn zS{5J`=!+%iGi4U-fC$hB$WUgXhLO{aL>8(sz z#B90ZJb@+VSi@=DOdwW!GWIJ_2%p+WWm~yb>hX%cG*;eX7^XyS)fZW4#FEp^Wfm=f z=7=n^0BOlk0&$Bs<1>LmNcLg6M>L&)ZX=cCAW=Hd zXUnS^ZzD}EK?%-AT2z+%hC#)S3rLimI>=K9Pm8pV93l|?9*0y}#gbbyr@8e?*QyJDn^RaCZKQN%lyyy=w8VNSC31QK+j^#oTd<&Utrc-fjYK%POr#R~qj?p|-iRCGGMnR%f^EX72ts>ITIZ5wI7KFYcRf=g+a zoncrSa&c9)Li%dT>$&3!nRZ+Uh!fj5?7&(X3fyE#LkQBO&w2|hv;iakzDf&+VJ?HP zG{{AD5qciF9&_-A&}F2B@36Ek0{zosC^TJdI1C)~Hts2G z_--)Qys1fUpoxa>26N3e+rJ|^zWZf}Jdye?sgLi52{b#q$dMkFlnUnR9g4v?4(2w4 zxuRx0Fz&!d4nTZ0+U}5>+p0=kbENO}m0t`EeU2Yr!!8W$ZKx9pef<3V^4m2?T<>;2 zUMndtmT0~CUrA<*Ti6QViMt*i{Zz&rnK&WOF=wI`<-}p|?frqPy z>5<6DFUu84^Sr&i=P9U?PYqW4r`8P31p745p8GZE59s0k^Rm@J0xCP%f z$O+k-sYd)JYV&te~^EO&yL$GOPV{h8bc84H!?L@&#Y>N`2n70D!RoOE{$@4Ld_ zcMIsu4Ij;b9e$z<>C)|C6Fs*^dpG*dYuu|{ZrLAQ6D~vVokB7S$HvCO#Xq^dSZ-K( zK}|7wsz1F~=FNArDZCTxUop{>m64sDUA2SYuy$ZzK-%mQ?A13VEk6%Sv4-)@woQ<1 zF#6HP(2j1-Pe4x?3!Hm}y%|0^8C46>{7dpm%PpnnRuDShz9_$#@A97)F7Pa+q@~}c z9!+@njkN@Fd{-3PO?HgvwY87N|8!@fw)ehG@9d9u{Z&w}9I8F8 zkk3zZw-dMozsq=-nkwm7P&3^`pPicP_V7aYS^Dfj(;S_)x@h*hveAa{ktykri@c^V z$k{WH>m}NiRFk||Q(_8Ae)qwzzJGniX4h`lhR#ik!}f*K1u%Rof7Umqy(`=EK&V-o zp_|qx6*T|iuj8WK?b2<3Od~gF_*M76OBufJIBNv6=eyHRuN&Xae&^;~d+H~(2ciB* z^Yap!FO(O(ZA~2zDzXR_RT|nAW-sx{3y~&>0&F@+)F=dv2Fh}>_9vZF*g4kF_@cgl- zx3_6zOwxlDONS1bS1_IoRit(Ao92uUwwb)tBRFhoZ%Z749p6EGF~9C#>?|a&DXS(1$#eyG**7x4p2ikl*<* zxHniansHAMAmdL>cTD+|2=_lMp`JpzuaJhh4_HDvM z+Lu~K-^G>~c6|(z?>&<7$A6)ofV{Qk+P-=or&bi~p+j=1xR9)BKH;w)db>;5K2n|x z&e%^5B949kq2loGcLgF}<(eeg;ieixA>!4MUs;%$Edjn;XKv?8t^4hk|A=B`hX zku+Z_u(br$1O8THuBNU*W4QUZ>aV(1XS?B8+vmCz+40aAj)kuVRorD3i z7dM5@G%ppSjxTi`&}k0S@Pc{vwOr16p|IY|zcSY+`6B1pNBcr?)7J5ES?IrO5q=A_ zTTVRa>Kf-<$jqv3vS((iZOh#jnY;pBV!@riYQu&sEA5EYy=ke1@?z&|lVtnx6QM>L z1vS%t{5U6OMcCLOlD^clAkDD8&J&Imc_9ZTKe=K=PV$>}iUX!5#qx*k?-ECCY(l@j zvf4O`HlLi}I(m9}>BYsxNvDf^MitdodJerDGyL=0KPq!iNu}Y#RZ)x0!zasfo6PGR zLhUi!B>r2vIb6)mQONbE+BC!7C#Qb;cU?Sed{6*X(JxekLTC&ZnWy^uFp(Sj_##_y zBCX~~-pz9LdyoIFOi;z>u?*zEI*|S4BV-EbYXU6A!e@$H!_dzUG-?)h(r@R3P_W zu_Q?8ljh0G4KXAxJUt7|COvcHv@X8hl84xynMBlckUn(^!DtuQTTQqeEw46!@GB5j z(LqFDuN{P83WpOXkydl`HSC!CY7k}+h%k&UM&+ry3WadzXJ{@Y@JO*_$Y!*WWL>=E zEQXfkOd{#Opiiv8`?)YoLd4brYrG8-O*(jq9))l$1thc}MY6;i*MI~h>dx}g0eI1; zN>v6%>uX?+yd+bV?Vt(Xzoby(!Fyj_XhI$bzWM4vQ+yUh5Jp%hx*jH>Mzepvjk&MOogVZF9PTI`sL(e@ zuGX4Rd4xYQ4MfXV;&rdgO%wz+PPy5!xKPaKzSaL|mgCS>7L)C;hJ! z1LUO#Ao`<_F?7Q-8-7P{SHwq!JjC$v-h;O_CkrBm4()K8hpQyoAv*@(w7%D(_>}YY z^Q!@K#r)qVk^CIUk}WX@H5j8s#I_r-xHn*rzmci)b)X3gc7j5kugl`Tex`^|L$(de zxD;e_h}d&^DFB{ED3O;c$UIcbQ;P<@z4b1ri6HySa0z8Gy(Ch%T@@E#av2K0c+ z0(zj0)YI^M2+R1b;mB%WB|9xKqhCPSmcV;U(W%-Angf-{2iZXRY37KWA2`#9CFdrQ z{SX|tV#)6nK%FM2GhiVwObgf%Fnbqx=t9I2fbxfd1{p?Pw3&wo!#sjisH@LnQR5IL zLwfjrI)yL<8~@gh+xQP4^H$*q(144tEU|kK!Jp>4vIAiyq%y}?z}TFJWw18 ziYGAgZcrQuiXrj82a3Oe;!aQu;Wq|~%RupN8nGV~Q}O+4;2{K*H4)RKvhq%RRN#^@ z@_Gv%e*Bpt(gO7JG!`X+=2~d}jzt}nH+AvPiz$RA2-K3FQI>(6uZz(tZy>ySEO)uE zGlhCA6N?hS!Ygm$HipuO)gY{%ibTbb)nOLy^9jV;Dmq5%VOTy9+p~#R^#z7OGXH)K zjrahovmy|GRMk08HAnK7qlBNyI=0Cm&_Ki-EqO+8xNyr~!(GEtc3NvNp2%91@jD(NW$Mjx;(FhzG5CcNT)n@LkL=RiQRgXqOj3|7`<2ZKHhKUX28qLVARL<{fYmfwj1pp! zjKO!fTu^>YlKcQMT7(k9t$FcV!jY=aMC^zrWz}NP0GA6lk*p)XFz!SUh$TxYM+3oh zH9Uq(pamYo^+Gtjm3LUKcp-t<`df>xCFtmu7t37|$e<%x59eMyzJdi_*yhM9>?s&T zmXRibsJ^THyYN>Kc7D4^2QdsAaVcd*BOpm#`B?i`| zkcb%>+r`O^d{QF2|BU)<3U*DpGDBCf83_PF68ZoahYYC<>UH6_(uPC z;eHD)vfb(UcVUwJ14}1XdaUoa)U>oB`FF;)(m)?btWDOgUE4hLToGxGL(tzBnzH_@ zOcti$!2J7zdgsxbMkOKQy)%+?x@Ljnhl3g#dMcJX9S!C`{NJ}3QuZk)Y?xipBEPMg2F4_{l~c9S>@I2c)P{-9 zwA}DnnH2KQP>#`y%B=2TdL%<&xMzA&AX@VZF!bIQQkB1qHp^ zgF92MfYfh%H_g%TE?dbV_JZ-@`iXbpCPhU>A~!l>^y{02`E_#U`iA#W*GVYe%P(%o z6`BYcCQ&8?Bw7A7PDRboweH=iQ;cKMquaJkc90Cr)~ro~WU%c~*aS~F4~gHzMN%gJ z6QYW!pGk8^pWpiP&+fXmB5D5uvDlTb%QnyG_9+yLLMqLkN&RgkDfjPRFbgwXzI?gJ z%?L3vCJ>kS1q2vx@bL+p1rFKH-ewTW5JV;?XjcLUojn*M3!w^Xe0+*ZO4c=8At0(f zdjG%!f;&TfhIj9N8JM*=&{XiKEhgbmS6&5E(9WI-crY{X<^Lp}0V~yzbgGbxY<4L- zwp9LsJSI!DpJ&Wl4H`knIq1@|aD*kKj_t?@4_6_LxjV}%V zYSG_tGcqD9M)u8-KLMoY!;@2#0u>~E0YvVQis+R`k_%>^tck2hag*~zdBFek zcO~=h|C3EVST~&5(<3}O<<>GK-N^}g8bLt*QU!~nqoaKjCqe_`MC1CqwiR-ow#>fo zcT+oEQZS+?g}i%X*m!(M3Q~0sBj@FpmX`ifC+tmFarU91MrF(w=e6O}j;0*r57*9= z6s+Y#pAY0zx^4#F-}WVbvyY?Y-<$1C&3c4%>018Ob2E}#~ik#UMXiHh2CW?>E3P+ z=V-o;@IU{&4Y-%LkI(4T_3iS{%8aD$ zbBD_#_c@MuiM*Uh^wPh-6~oI|*oa^GHqCKe7qQ-+IejcAH>>s?hbh$0nu&Qwnxbnk zhYkX9+a4Gg`mOKUC~(ET30c#l{fK*eIq|3b1jt|4&VJaJ_z7MI`ENxc2VSOhWOr|8 zbHs4m)K&Yhi_{f#^^FylRpf+`7QcuL_{f`pGgbk1H|T%=BwRWyWWIqHj$@v?;Ry8% zNqamD4ps{y=5PqYw&B!IYK4Cvn&X3Q$(kF29K*eks-S=Vs>z?F`2X;ass3B||5|uz YcK!UmQ!DjF^8q33&D$(*v)oVq4_sE{GXMYp literal 0 Hc$@