I am having trouble keeping organized the files for the computational component of my research project. In brief, I have written computer code which I use to run computational experiments. For each experiment, I get a set of output files, from which I generate output such as plots and tables.
The trouble stems from the fact that I have multiple experiments (say exp1, exp2 and exp3) and each experiment has multiple output files (say a.txt, b.txt, c.txt). This is further complicated by the fact that I have multiple versions of each experiment (say exp1 2014-01-02, exp1 2014-05-06, etc).
How should I organize the code and the output in a systematic way? The system should satisfy the following key requirements:
- It has to be easy to rerun version X of experiment Y. I occasionally have to rerun earlier versions of the experiments in order to check the results or to make slight modifications.
- It has to record the output for each version of each experiment. I often have to run many slight variants of a single experiment to tweak some small aspect of the results, so it is essential to record the output for each run.