dwavesystems / dwave-system

An API for easily incorporating the D-Wave system as a sampler, either directly or through Leap's cloud-based hybrid samplers
https://docs.ocean.dwavesys.com/
Apache License 2.0
87 stars 61 forks source link

Enhance QPU failover by penalizing failed solvers #478

Closed randomir closed 1 year ago

randomir commented 1 year ago

Fixes #477, with a caveat -- user-supplied (or default num qubits-based) solver preference is ignored on trigger_failover(). We override order_by in order to de-prioritize failed solvers.

In summary, this is a quickfix for #477, and a nicer fix should respect the lower-level solver preference, but penalize failed solvers. This seems hard to implement in dwave-system without a lot of code duplication from dwave-cloud-client. One possible, and pretty general, approach is to apply order_by transformations sequentially (in the cloud-client), one per config level, instead of higher-level setting overridding a lower-level setting.

codecov-commenter commented 1 year ago

Codecov Report

Merging #478 (d02e37d) into master (44de5dc) will decrease coverage by 4.15%. The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #478      +/-   ##
==========================================
- Coverage   90.29%   86.14%   -4.16%     
==========================================
  Files          24       24              
  Lines        1669     1674       +5     
==========================================
- Hits         1507     1442      -65     
- Misses        162      232      +70     
Impacted Files Coverage Δ
dwave/system/samplers/dwave_sampler.py 83.72% <100.00%> (-1.31%) :arrow_down:
dwave/system/coupling_groups.py 12.50% <0.00%> (-81.25%) :arrow_down:
dwave/system/samplers/leap_hybrid_sampler.py 61.42% <0.00%> (-14.29%) :arrow_down:
dwave/system/samplers/clique.py 73.85% <0.00%> (-13.73%) :arrow_down:
dwave/system/composites/embedding.py 96.57% <0.00%> (-1.15%) :arrow_down:
dwave/system/testing.py 95.23% <0.00%> (-0.80%) :arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

randomir commented 1 year ago

I'll merge this for now as is, and try to generalize it a bit in follow-up PR.