Skip to content

Relax reproducibility restriction #244

@ctrueden

Description

@ctrueden

Requiring all Ops to be deterministic (same inputs produce the same output every time) excludes the possibility of wrapping probabilistic algorithms, which limits the scope of the Ops framework, and will detract from the value of the Ops index (#174). While I believe strongly in the importance of reproducibility, we can accommodate irreproducible-but-useful algorithms within Ops by adding a reproducible flag to the framework for each Op, false by default, which can be set when the Op author knows the algorithm will behave reproducibly. When this flag is set, the framework will know that outputs can be cached, which can be useful to improve time performance of repeated computation. And when the flag is unset, the framework can emit a warning explaining the problem to the user, thus raising awareness of the reproducibility concern.

This documentation and probably elsewhere as well will need adjustments to reflect this change.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Todo

Relationships

None yet

Development

No branches or pull requests

Issue actions