DVCS如何帮助科学编程?

Tim*_*Lin 12 git dvcs scientific-computing

我正在做一些初步的工作,研究DVCS(像Git,Hg,Bazar这样的人)如何在科学编程过程中提供帮助,尤其是研究生.我认为自从我编程了几年以来,我已经处于相当有利的位置,目前正在开始自然科学硕士课程.目标是在一两个月内对此进行简短介绍.

据我所知,除了源控制的明显优势外,DVCS目前还为研究生的日常生活提供了以下改进:

  1. 分枝:

    这是一个很大的问题.从观察DVCS实践可以看出,廉价分支主要是鼓励对新功能进行实验.科学编程完全是关于实验的.可以创建不同的分支来调整参数或算法.这一点尤其重要,因为大多数科学代码在他们的一生中都没有看到过一次重构(大多数研究生甚至都不知道它是什么),所以去不同分支的能力会给典型的疯狂带来一些方法.快速提交也可能意味着使用提交注释作为实验室笔记本的替代品.计算结果可以标记为特定的提交哈希码,以进行可重复的研究.

  2. 推送到服务器:

    由于现在大多数科学代码都运行在某种集群上,因此DVCS可以用作某种更高级的Rsync,许多人已经将其用于将"生产"代码推送到HPC集群.这与分支相结合,可轻松运行多个版本的代码而无需离开

  3. 论文合作:

    需要我多说?具有多个作者的论文与小型开源项目完全相同.当作者都在LaTex中写作时,论文上的协作应该是一个自然的选择,如果用Word之类的东西完成写作会带来额外的复杂性.这是提交评论可能发挥更大作用的地方.

我的问题是,您认为DVCS可以为科学程序员做出什么贡献?我看到很多关于转向社区源代码控制的讨论,但大多数人仍在研究Subversion.从我粗略的笔记来看,听起来DVCS应该是新毕业生的完美工作流程范例.我的想法有缺陷吗?或者科学编码是否仅仅落后于甚至听说过 DVCS工具?


有关:

Dav*_*eau 1

用于科学编程的 DVCS 的一大问题是二进制数据。通常情况下,科学编程需要输入/输出巨大的文件,这会很快降低我所知道的每个 DVCS(bzr、hg、git)的性能。这是目前 svn 做得更好的一个领域。

我认为 DVCS 对于论文也非常有用,但这意味着您的合作者也了解 DVCS。