【问题标题】:How to organize a set of scientific experiments using Git如何使用 Git 组织一组科学实验
【发布时间】:2013-01-08 06:40:09
【问题描述】:

我正在对模型进行实验,工作流程如下:

  • 我在模型中工作(Python 软件)
  • 我更改了一些参数并运行了一个实验
  • 然后,我将实验结果存储起来(作为泡菜)。
  • 然后,我将使用另一个软件(IPython Notebooks)分析(腌制)结果。

我使用Git and Scientific Reproducibility 作为指导,其中实验的结果存储在一个表中,沿着提交的哈希值。我想将结果存储在一个目录中,将目录命名为哈希。

考虑到版本控制,我想隔离codeanalysis。例如,analysis 中 IPython 笔记本中绘图颜色的更改不应更改 code 中的任何内容

我正在考虑的方法:

这样的目录结构:

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

以及 codeanalysis 的不同 Git 存储库,将 simulation_results 留在 Git 之外。

有没有cmets?更好的解决方案?谢谢。

【问题讨论】:

  • simulation_results 下的十六进制数字应该是什么意思? (我猜它们是提交 ID,但我错过了一些上下文。)
  • 我认为子模块是一个好方法。我已经编辑并详细说明了我的答案。
  • 嗨约瑟夫,是的,十六进制数字确实是提交 ID。
  • 你好 VonC。感谢您详细回答,非常有帮助。

标签: git scientific-computing


【解决方案1】:

这听起来不错,您的结构非常适合使用 git submodulesmodel 成为父 git 存储库。

这样,您将在 model 存储库中将 codeanalysis SHA1 链接在一起。

这意味着您可以根据model 存储库(“父”存储库)的 SHA1 在私有(即未版本化)目录 model/simulation_results 中创建您的目录:SHA1 链接了 projectanalysis 子模块,这意味着您可以准确地再现实验(基于projectanalysis 的确切内容)。

【讨论】:

    猜你喜欢
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多