【问题标题】:Organizing Scientific Data and Code - Experiments, Models, Simulation, Implementation组织科学数据和代码 - 实验、模型、模拟、实施
【发布时间】:2012-08-15 08:59:01
【问题描述】:

我正在从事一个机器人研究项目,并且想知道:在组织科学数据和代码时,是否有人对最佳实践有建议?有谁知道现有的科学图书馆有我可以检查的来源?

以下是我们的“套件”的元素:

  • 实验 - 两种类型:
    1. 从现有的“自然”系统中收集数据。
    2. 来自机器人系统运行行为的数据。
  • 型号
    • 动力系统描述 - 动力学、运动学等
    • 所述系统的参数,其中一些来自 1 类实验
  • 模拟 - 尝试模拟自然行为,模拟机器人的行为
  • 实施 - 用于控制机器人的代码。当然,这是一项艰巨的任务,并且拥有自己的大型基础架构。

我们的“套件”的一些设计方面:

  • 如果仿真环境允许“快速原型设计”(用于简单 hack、快速数据检查等的脚本/交互式提示 - 绝对是难以整合的东西),那就太好了 - 目前可以通过脚本语言(Python、MATLAB)满足
  • 多种编程语言
  • 分布式协作设置 - 将使用 Git
  • 尚未合并单元测试,但希望稍后会合并
  • 跨平台(不幸的是)- 我习惯 Linux,但我的团队成员使用 Windows,我们的一些工具与该平台结合

我看到this 的帖子,书籍看起来很有趣,我订购了“编写科学软件”,但我觉得它将主要关注模拟代码的实现,而不是整体组织。

【问题讨论】:

  • 谷歌搜索“实验管理软件”,忽略那些将您引导至“实验管理软件”信息的点击。

标签: code-organization scientific-computing project-organization suite scientific-software


【解决方案1】:

您描述的情况与我们表面动力学实验室的情况非常相似。 其中一些工作涉及保存实时分析的测量数据,或保存以供后期分析。另一方面,其他一些工作涉及运行模拟并分析其结果。

实验室负责人在剑桥学习期间采用的数据管理方案以一个主服务器为中心,该服务器保存所有实验室成员的个人文件。每个成员通过使用 NFS 安装适当的服务器文件夹从他的工作站访问文件。这有它的优点和缺点。备份所有内容更容易,但在通过网络处理大量数据时会出现问题。出于这个原因,我在实验室中是个例外,因为我使用的模拟会生成大量数据。这个数据保存在我的工作站上,只有生成它的代码(模拟和配置文件的源代码)保存在服务器上。

我还将我的代码保存在在线 SVN 服务中,因为我无法在家中登录到实验室服务器。这是一种强制性做法,它源于需要能够根据需求重现较旧的结果,并在出现一些晦涩的错误时跟踪对代码的更改。因此需要维护旧版本和配置文件。

我们还采用低技术方法,例如实验室笔记本来记录结果、修改等。 此内容有时可能更抽象(没有必要描述代码中的每一行更改 - 您对此有所不同。只是更改的目的,也许是有关实现及其日期的一些注释)。

工作主要使用 Matlab 完成。同样,我是一个例外,因为我更喜欢 Python。我还使用 C 进行数据生成模拟。测试主要是收敛,因为我的项目现在关注与计算模型的比较。我只是用不同的配置生成结果,保存在他们自己尊重的文件夹中(我在我的实验室日志中跟踪)。这样做的好处是能够完全按照我的意愿控制和连接数据,而不是遵循别人的想法和格式。

【讨论】:

    猜你喜欢
    • 2013-01-08
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 2021-12-14
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多