为了使我的计算研究具有可重复性,我应该在期刊文章中(或在线发布)包括哪些材料?


23

可重复性在计算科学研究中变得越来越重要。(例如,请参见科学》杂志的Roger Peng的这篇文章;我也知道其他此类文章和网站。)但是,我不清楚我应该在期刊文章(或在线文章)中包含多少信息来制作我的计算研究具有可重复性(假设没有其他障碍,例如知识产权协议)。是否有任何指南,如果没有,人们是否可以建议研究人员应采取哪些步骤来使他们的计算科学研究可重复?

答案中特别有用的是实现这些建议的可能方法-从根本上说,工作流。最好是与系统无关或基于Linux的工作流。此外,讨论您所经历的任何相关个人经历也将有所帮助。

在我的特殊情况下,我正在写一篇理论论文,其中包含一些示例计算,这些计算很简单,可以在MATLAB中完成。我认为,在这种情况下,包括MATLAB脚本,并注意计算机上特定版本的MATLAB,足以确保可重复性。但是,我敢肯定还有更复杂的场景,有关如何进行可重复研究的建议对于将来的项目很有帮助。

Answers:


17

按重要性排列。

源代码

  1. 使实现算法关键方面的代码可用。即使用户无法构建或运行它,他们也可以准确地读取已完成的操作。我有好几次注意到简单的决定没有写在纸上,但是几分钟后,源代码就做出了最终决定。
  2. 使它可运行。这涉及到记录依赖库的版本,通常需要您编写一些可移植的代码。确保它至少在您自己的机器以外的其他机器上构建(如果您从未在干净的环境中构建过,则很容易具有隐藏的依赖项)。
  3. 指定所使用的代码的版本。如果不是正式发布的版本(有时甚至不是正式版本),请记录该版本的SHA1。(这自然适用于Git和Mercurial之类的DSCM,但可以在任何地方使用。)这是一种非常可靠的方法,可以确保某人确实具有相同版本的代码。
  4. 包括配置和主机参数,包括编译器供应商,版本和优化标志,系统库(如libc),CPU类型以及内存类型和拓扑(尤其是用于性能研究)。

运行时参数/输入文件

包括完整的输入规范。如果它是由脚本生成的,请包括该脚本。如果数据量很大,请记录如何获取和处理数据。如果您的算法具有随机性,请指定使用的随机数生成器和种子。

生成图形和表格的脚本

包含这些脚本非常有帮助,既可以澄清有关图形真正显示的任何问题,也可以使读者尝试更改参数或修改算法时事物如何发生变化。


包含单元测试有多重要?我应该如何记录我包含的可重复性代码?
Geoff Oxberry 2012年

如果您只是想要结果的可重复性,则不需要单元测试和手册页/用户手册。如果您想吸引软件的未来共同作者或用户(引用...),那么值得编写该软件以供重用并对其进行彻底记录是值得的。请注意,无论您的软件是否打算供其他人使用,从长远来看,测试和文档都可能为节省时间,仅因为它使您可以走动并更加自信地进行试验。
杰德·布朗

6

大多数期刊都没有以任何正式的方式来建立这种形式,但是我们最近建立了数值软件档案库,该档案库专门用于提供源代码以及本文中需要的所有其他内容。检查一下:http : //journals.tdl.org/ans 欢迎提交!


2
假设您使用编辑委员会某些成员pet软件项目。我忍不住觉得这个要求降低了期刊的完整性。
Jack Poulson

1
@JackPoulson:这是我们在编辑人员中详细讨论过的一个问题,并且在与社区中其他人的讨论中甚至进行了更长时间的讨论。我想我们都明白您的意思,但同时,我们觉得我们无法以其他任何方式这样做,原因有两个:(i)我们不知道在哪里可以找到随机项目X的审稿人。(ii)在社区中,对于哪些项目质量高,哪些项目质量不高,存在一定的共识。我们不希望ANS成为每个想要的项目的出口。正如我们在网页上所述,我们最终希望包含所有高质量的软件包。
Wolfgang Bangerth '04年

2
由于什么原因,审阅者必须熟悉“随机项目X”而不是“随机字段X”?之所以提出这一点,是因为我认为该期刊缺少大量的论文,因为在给定的软件包列表中可能实现的项目受到严重限制。例如,对并行计算没有任何根本性的贡献,因为任何涉及浸入对MPI的调用,或者天堂禁止BLAS或LAPACK的事情,似乎都违反了该期刊的标准。我很乐意在离线状态下谈论此问题。
Jack Poulson

@JackPoulson:据我所知,如果您想对并行计算做出根本性的贡献,除了在另一本期刊上写论文之外,您还可以在ANS中撰写“图书馆简介”论文,以确保您的图书馆已添加到批准的库列表中。
Geoff Oxberry 2012年

1
@GeoffOxberry:我和沃尔夫冈进行了友好的交谈,共同的结论是线性代数库的列表应该大大扩展,但是该杂志的目标是“高质量”的库,而不是简单的可复制性,并且因此,必须有一些审核过程。
Jack Poulson

3

Stodden,V.,2009年。“可复制科学研究的法律框架。” CiSE

维多利亚·斯托登(Victoria Stodden)建议发布完整的“研究纲要”,并在p上列出以下组件。38:

  1. 研究论文
  2. 数据 -包括用于处理数据的文档和代码
  3. 实验 -所有源代码;文档,参数,设置和操作系统依赖性
  4. 实验结果 -图形,数据,插图源文件;以及实验结果处理的文件和说明
  5. 任何辅助材料

2

至少,您用于执行实验的源代码和数据应该可以在某处访问。如有必要,添加说明以构建代码。确实,开放访问期刊很少,因此没有开放和既定的规则。


2

我为爱思唯尔工作。我公司已开始在期刊中使用Collage框架(为响应Executable Paper Grand Challenge而开发),以使作者能够在论文中包含再现结果和图形所需的所有数据和代码。此功能使读者可以更轻松地复制文章中报告的结果,并将已出版的材料重新用于自己的研究。Collage支持多种开源和专有软件;可以在此处的参考视频和Collage Authoring Environment网站中找到更多信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.