libCEED icon indicating copy to clipboard operation
libCEED copied to clipboard

Backend determinism

Open jedbrown opened this issue 5 years ago • 0 comments

Some backends, such as those that use atomics to resolve write conflicts, are non-deterministic due to lack of floating point associativity. We should

  • [x] Add an interface to query backend properties. Perhaps CeedGetDeterministic(Ceed, bool*) or CeedGetProperty(ceed, "deterministic", &prop).
  • [x] Document which backends are deterministic (automated or not)
  • [ ] Test that backends claiming to be deterministic are empirically
  • [ ] Eventually: develop a high-performance deterministic CUDA backend (e.g., via interface coloring)

Cc: @tzanio

jedbrown avatar Jan 15 '20 20:01 jedbrown