首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DVCS如何帮助科学编程?

DVCS如何帮助科学编程?
EN

Stack Overflow用户
提问于 2009-04-27 04:35:29
回答 3查看 2K关注 0票数 12

我正在做一些初步的工作来调查DVCS (如Git,Hg,Bazar)如何帮助科学编程的过程,特别是对研究生来说。我认为我在这方面处于一个相当好的位置,因为我已经编程了好几年,目前正在开始一个自然科学硕士课程。我们的目标是在一两个月内做一次简短的介绍。

据我所见,除了源代码管理的明显优势外,DVCS目前还为研究生的日常生活提供了以下改进:

  1. 分支:

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

  1. 推送到服务器:

由于当今大多数科学代码都是在某种集群上运行的,因此DVCS可以用作某种更高级的Rsync,许多人已经使用它将“生产”代码推送到HPC集群。这与分支结合在一起,可以轻松地运行多个版本的代码,而不会离开。

  1. 协作论文:

我还需要再说几句吗?有多个作者的论文就像小的开源项目一样运行。当作者都用LaTex写作时,论文上的协作应该是一种自然的适合,如果以类似Word的方式完成,还会带来额外的复杂性。这就是提交注释可能发挥更大作用的地方。

我的问题是,你认为DVCS能为科学程序员贡献什么?我在社区中看到了很多关于源代码控制的讨论,但大多数人仍然在研究颠覆。从我粗略的笔记听起来,DVCS应该是研究生的完美工作模式。我的想法有缺陷吗?还是科学编码太落后,甚至没有听说过DVCS工具?

相关信息:

EN

回答 3

Stack Overflow用户

发布于 2009-04-27 14:58:52

培训是一个真正令人关切的问题。我认识相当多的粒子物理学家(拥有大型编程项目的大型科学),他们在源代码管理方面的全部知识是如何运行cvs checkoutcvs updatecvs commit的幼稚版本。

是的CVS。我认识一位软件小组的领导,他因为这些人而推迟了颠覆的行动。

在下一层技能中,他们还知道diffstat命令以及如何指定分支或标记,但可能会避免创建或合并分支。

如果你打算引进一个DVCS,计划一个密集的,正在进行的培训和支持计划。科学家(或者至少是物理学家)通常很少受过计算机科学方面的正规训练,而且对软件过程的概念可能非常模糊。

票数 4
EN

Stack Overflow用户

发布于 2009-04-27 05:56:09

关于你的要点:

  • “DVCS的明显优势”:值得重复的是,尤其是在具有潜在严格it规则的不允许外部连接的学术环境中,DVCS允许使用本地存储库。这意味着,您不必“连接”到一个中心回购系统来访问整个项目的历史记录,而且这可能是DVCS对科学程序员的主要贡献。

但这也意味着,你必须有某种政策,才能让任何特定的工作“聚在一起”,整合到一个存储库中,这并不意味着只有一个“中央”基础:人们可以想象几个大型项目的中央回购。不过,这需要政府(不要低估)。

而且,“合并”过程可能会相当困难,因为您的主要第一点是:

  • 分支:学生需要 (因为这很容易)。我看到了我的分支,名为“toto”,“周一”,“myName”,.:一旦发布到另一个(更中央的)回购,我们应该如何处理这些?如果20+分支要合并以最终确定一个公共代码,.这个过程可能很快就会出错。

对你的其他观点的快速评论:

  • 部署(您称之为“推送到服务器”):是的,DVCS可以用于某种类型的部署,但这意味着您已经组织了回购以包含某种类型的 (要在服务器上推送的文件集),并且已经对它们进行了验证。此外,发布管理还包括许多其他步骤,这些步骤不能全部在DVCS中记忆,比如去变量化过程,在配置文件中使用适合目标服务器的实际值替换变量(端口号、本地路径、.)。您可以尝试管理那些通过分支直接估价的配置文件,但根据我的经验,对于不属于DVCS的follow.
  • collaboration:来说,它变得太复杂了。(风投也向他们提供)。注意,对于某些格式(Word文档),它们的内部修订系统可能更高效。
票数 2
EN

Stack Overflow用户

发布于 2009-04-27 04:49:20

DVCS用于科学编程的一个大问题是二进制数据。科学编程通常需要输入/输出巨大的文件,而且我所知道的每一个DVCS (bzr、hg、git)的性能都会很快被扼杀。这是目前svn更好的地方之一。

我认为DVCS对于论文也是非常有用的,但这意味着你的合作者也知道DVCS。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/792249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档