I released a new version of my epyc experimental management library.

Nothing too dramatic, but I did start the process of refactoring the way in which experiments are assigned parameters, which is something I’ve been meaning to do for a while.

In previous versions an experiment was performed at every point in the cross-product of all parameters. This can be quite wasteful, and one of my MSc students used a different approach where they created experiments pointwise from the corresponding values of each parameter, which leads to better control.

This is actually a specific example of a more general concept of an experimental design, which imports into computational science the ways in which traditional experiments are set up. I refactored how epyc labs create experiments to use an externally-specified design class, and implemented the old and alternative versions as standard designs (called “factorial” and “pointwise” respectively).

There’s actually another model that we need, the so-called “block” designs, which would be great for creating fewer networks under `epydemic — but that needs some more thought as to exactly how to manage the data flow.