git scientific-computing

Cómo organizar un conjunto de experimentos científicos utilizando Git.



scientific-computing (1)

Estoy ejecutando experimentos en un modelo, con un flujo de trabajo como este:

  • Yo trabajo en un modelo (un software en Python)
  • Cambio algunos parámetros y hago un experimento.
  • Luego, almacenaré los resultados del experimento (como un pepinillo).
  • Luego, analizaré los resultados (en escabeche) utilizando otro software (IPython Notebooks).

Estoy usando Git y Scientific Reproducibility como una guía, donde los resultados de un experimento se almacenan en una tabla junto con el hash del commit. Me gustaría almacenar los resultados en un directorio, nombrando a los directorios como hashes.

Pensando en el control de versiones, me gustaría aislar el code y el analysis . Por ejemplo, un cambio de color en una gráfica en un cuaderno de IPython en analysis no debería cambiar nada en el code

El enfoque que estoy pensando:

Una estructura de directorios como esta:

model - code - simulation_results - a83bc4 - 23e900 - etc - analysis

y diferentes repositorios de Git para code y analysis , dejando a simulation_results fuera de Git.

¿Algún comentario? ¿Una mejor solución? Gracias.


Eso parece correcto, y su estructura sería una buena opción para usar los git submodules , ya que el model convierte en un repositorio de git principal.

De esa manera, enlazarán el code y el analysis SHA1 dentro del model repositorio.

Eso significa que puede crear su directorio dentro del directorio privado (es decir, no versionado) model/simulation_results basado en el SHA1 del model repo (el "padre" repo): ese SHA1 vincula el SHA1 de los submódulos de project y analysis , lo que significa que puede reproducir exactamente el experimento (basado en el contenido exacto del project y del analysis ).