Runners#
Dask Runner#
- class canproc.runners.dask.DaskRunner(scheduler: Literal['threads', 'processes', 'single-threaded', 'syncronous'] = 'threads')#
Use dask to run a directed acyclic graph
- scheduler#
- Type:
Callable
Examples
>>> from canproc.runners import DaskRunner >>> from canproc import DAG, DAGProcess >>> dag = DAG(dag=[DAGProcess(name='array', function='np.arange', args=[0, 10])], output='array') >>> runner = DaskRunner() >>> array = runner.run(dag)
Dask Distributed Runner#
- class canproc.runners.distributed.DaskDistributedRunner(processes=True, workers=1, threads_per_worker=1, **kwargs)#
Use dask distributed to run a directed acyclic graph. Memory is distributed equally over the workers so is recommended to reduce workers if memory issues arise.
- scheduler#
- Type:
Callable
- client#
- Type:
Dask client
- cluster#
- Type:
Dask cluster
Examples
>>> from canproc.runners import DaskDistributedRunner >>> from canproc import DAG, DAGProcess >>> dag = DAG(dag=[DAGProcess(name='array', function='np.arange', args=[0, 10])], output='array') >>> runner = DaskDistributedRunner() >>> array = runner.run(dag)