dwave-hybrid
dwave-hybrid copied to clipboard
Hybrid Asynchronous Decomposition Sampler prototype framework.
Child's context id would be nested under parent's context id, similarly to logging namespaces. Logging/tracing/profiling subsystem could then use fully qualified context ids to uniquely address events.
Timers are stored in a list, one per call, and counters are scalars updated on each call. Provide a general underlying object ~ `PerfCounter`/`StatCounter`/`VariableStats`/`Trace`/similar that could be used to implement...
Since `Runnable.run()` is (via `dispatch()`) offloading `next()` to an executor, it's possible to run a single instance's `next` multiple times in parallel. This is not a problem if `next()` does...
The requirement right now is for runnables to be pickleable in order for them to be run using `hybrid.concurrency.process_executor`. The limitation comes from limitations of [`ProcessPoolExecutor`](https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor), which in turn comes...
Trait could be: - `'x'`: `x` in state - `('x', Type)`: `x` in state and `isinstance(x, Type)` - `predicate :: state -> Bool`: `predicate(state)` true
Use a shallow copy, wrapped in proxy that will do deepcopy of an individual attribute only on demand (when modified, not when accessed).
Make `Tabu{Problem,Subproblem}Sampler` accept infinite timeout and make it stoppable. Similarly for simulated annealing.
Note: - `hybrid.SplatComposer` **does not sort output samples** by energy - subsequent `hybrid.ArgMin` with the default `key="samples.first.energy"` might not pick the best sample by energy - easily fixed by sorting...
Two enhancements: Add support for zephyr lattices on zephyr solvers (Advantage2) Improve handling of unyielded edges, improving performance for lower yield processors using dwave-ocean-sdk and networkx algorithms.