On Sun, Jul 17, 2016 at 6:25 PM, Scott Cotton <w...@iri-labs.com> wrote:
> A clear and concrete problem is the following: The sat solver competition > at satcompetition.org requires > deterministic solvers for reproducible results. Suppose I have a > select{...} in a go program which solves sat, > and I want to enter it in the contest. I can't. Also, others can't > reproduce the results. Also, the problem is hard > and very heuristic so minor variations can cause huge differences in > runtime (like 1s vs. 1 month). > In Haskell, there is a concurrency framework called Haxl with this interesting property: You can run it sequentially (with a deterministic execution path) or in parallel. This gives rise to the obvious test that a program must behave the same irrespective of its execution mode. And it must do so throughout many runs, otherwise the result is not correct. I see the problem, but I would probably go the route others suggest: make sure your program behaves as if it had a deterministic execution path and that you can't tell it apart looking from the outside of the whole thing. The other solution, changing select to be deterministic, sounds brittle to me. It will work right now, but it is prone to breaking later. -- J. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.