When I run computer simulations, I have to have a solution for the same set of technical tasks each time:
- How to combine variable settings in experiments
- How to store log files nicely
- How to plot nice graphs from those log files
- How to run these expensive computations on remote servers (e.g. university servers)
Now I have one solution for all of this and I am very happy with it:
The above bundle of tasks is universal to a lot of scientists that need to to run computational experiments. I myself will run into this over and over again.
It is a natural reflex of a software developer to build a good tool for this over time and this is what I did. While working on several projects during my Masters, the latest of which is my thesis, I developed scripts for all of these tasks and bundled them together so that you could now call it an application: Combex (Combinatorial Experimentor).
It has turned out to be very useful to me lately and I would like to share this tool with anyone who is interested (this is its home). There are a lot of things that could be even nicer (I already maintain a ticket list), so I welcome contributions.
Note that Combex lets you program whatever you want in whatever language you want, all it wants is that you write log files.
I will let the (sparse) documentation speak for itself and just throw in another screenshot which shows how it all nicely comes together: A (dummy) experiment gets chopped into several tasks and those are shipped to remote servers. I can nicely check if they are done. If so, I have Combex get the data and generate nice plots.
P.S. To talk about our process and find general, reproducible solutions seems to be a general trend in science, see e.g. myexperiment.org.
P.P.S. I am unaware of any other software that offers this task bundle, even if its commercial. Anyone knows software like that? I only found quite specialised approaches, but what I like about Combex is that it doesn't care what the hell your code is doing as long as you configure variables and log data. It is more of a very simple workflow with nice tools along the way. In principle, a lot of other software (say, statistical processing) could be hooked into this as needed.
P.P.S. I am still open to be convinced by a better name for this.
P.P.P.S. It has now changed name (it also evolved a lot) and lives here.