- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
除了产生不正确的结果外,科学编程中最担心的问题之一就是无法复制您生成的结果。哪些最佳实践可帮助确保您的分析可重复?
最佳答案
我是研究地球物理学家团队中的一名软件工程师,我们目前(一如既往)致力于提高我们按需复制结果的能力。以下是根据我们的经验得出的一些建议:
将所有内容置于版本控制之下:源代码,输入数据集,makefile等
构建可执行文件时:我们将编译器指令嵌入到可执行文件本身中,我们用UUID标记构建日志,并用相同的UUID标记可执行文件,计算可执行文件的校验和,自动生成所有内容并自动更新数据库(好吧,这只是一个简单的例子。文件),以及构建详细信息等
我们使用Subversion的关键字在每个源中包含修订号(等),并将其写入生成的任何输出文件中。
我们进行了大量(半)自动化的回归测试,以确保新版本的代码或新的构建变体产生相同(或足够相似)的结果,并且我正在开发一系列程序来量化所做的更改发生。
我的地球物理学家同事确实分析了程序对输入变化的敏感性。我分析了它们对编译器设置,平台等的敏感性(代码,而不是地理信息)。
我们目前正在工作流系统上,该系统将记录每项作业的详细信息:输入数据集(包括版本),输出数据集,使用的程序(包括版本和变体),参数等-通常称为出处。一旦启动并运行,发布结果的唯一方法就是使用工作流系统。任何输出数据集都将包含其自身出处的详细信息,尽管我们尚未进行详细的设计。
我们非常(也许也)放宽了将数值结果复制到最低有效位的要求。我们工作的基础科学以及我们基础数据集测量中固有的误差,不支持我们超过2或3 s.f的任何数值结果的有效性。
当然,我们不会发布代码或数据进行同行评审,因为我们从事石油业务。
关于scientific-computing - 科学编程的可重复性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2734157/
我正在运行 yum install gcc-arm-linux-gnueabi 在我的机器上,但它说: No package gcc-arm-linux-gnueabi available. 请帮我在
在为特定学科的科学家设计软件库时,有哪些好的原则?我的意思是化学、物理、 Material 科学、显微镜、生物测定、天文学等领域。我不包括 SciPy、R、Matlab、JAMA 等涵盖一系列学科或专
是否有任何通用物理引擎可以对刚体进行大规模模拟?我正在使用 Nvidia 的 PhysX,但该引擎的重点是游戏开发、软体。我想知道是否存在运行在 PS3 单元处理器或 CUDA 内核之上的物理引擎,允
首先: 我很清楚OpenCL不能神奇地使一切变得更快 我很清楚OpenCL有限制 所以现在我的问题是,我习惯于使用编程来进行不同的科学计算。关于计算的复杂性和数量,我从事的一些工作非常紧张。所以我想知
我在美国一所大学的一个小型独立科学实验室工作,我注意到,与业内许多表面上遵循的做法相比,例如每天检查版本控制系统,使用对于所有语言(如 emacs)等的单个 IDE/编辑器,我们遵循相当粗劣的编程实践
由于不明原因(我需要匹配古代 Fortran 代码中使用的某些格式),我需要使用 VBA(到文本文件)从 Excel 输出一些非标准科学记数法的数字。 例如如果 x = 6000000 普通VBA:
除了产生不正确的结果外,科学编程中最担心的问题之一就是无法复制您生成的结果。哪些最佳实践可帮助确保您的分析可重复? 最佳答案 我是研究地球物理学家团队中的一名软件工程师,我们目前(一如既往)致力于提高
我正在将大量小数据集写入 HDF5 文件,生成的文件大小大约是我对输入的数据的原始列表所期望的 10 倍。我的数据按层次结构组织如下: group 0 -> subgroup 0
是否有机会在 Spyders 变量资源管理器中将这些转换为非科学记数法?谢谢! 最佳答案 点击格式并将 float 格式设置为 %.15g 对我有用。 关于Spyder 变量资源管理器 : Disab
我正在尝试使用 GSL 进行最小二乘拟合,但我什至无法生成 example正常运行。可以编译,但是运行程序时会报错 dyld: lazy symbol binding failed: Symbol n
Scientific Linux 上的 Java 安装程序显示了两个不同的版本。 我正在尝试在 Scientific Linux 上正确设置 java。 如果我执行 javac -version 我会
我有一个 h:inputText 控件,我可以在其中输入最多 7 位数字,并将它们转换为十进制表示形式(即输入“9999999”,它将呈现“9999999.0”)。但是,当我输入任何 7 位或更多数字
科学记数法定义了数字应该如何使用符号、数字和指数来显示,但它没有声明可视化是标准化的。 一个例子:-2.34e-2(归一化科学计数法)与-0.234e-1(科学计数法)相同 我能否依赖以下代码始终生成
我需要从 n+1 个数据点得到一个 n 次函数。通过使用以下 gnuplot 脚本,我得到了正确的拟合: f(x) = a + b*x + c*x**2 + d*x**3 + e*x**4 + f*x
这是一个 MWE: #include int main() { std::cout.precision(17); std::cout << 1.2345678901234567890
我正在尝试在 numpy 中使用 genfromtxt 导入一个包含文本和数字的大型 .csv 文件。我只对两列感兴趣。我已经整理了大部分导入: def importfile(root): d
我想以科学记数法将数字写入 Excel。在 Apache Poi 中,可以像这样设置单元格的数字格式: Cell cell = ... CellStyle style = workbook.creat
我正在使用 Scientific Linux 6.1。要运行程序 (DS9),我需要设置此环境变量: export XPA_METHOD=local 所以我把它保存在 .bashrc 中,当我从 ba
我看到所有的例子都说要使用 fixed、precision 等,但所有这些都是人们想要打印值的时候。 我想做的是将我的 double 值从数字转换为字符串,我不需要科学记数法。 我的数字示例:6.61
我刚刚使用 conda create --name py35 python=3.5 anaconda 将 python 3.5 添加到 anaconda 的环境中 我把anaconda的bin、env
我是一名优秀的程序员,十分优秀!