支持科学计算的配置管理

支持科学计算的配置管理

过去几年,我一直致力于开发和维护一套近岸海浪预报系统。我们的团队刚刚获得了一笔可观的进一步开发资金,因此我们借此机会对旧系统的许多组件进行了重构。

我们还将收到一台新服务器来运行该模型,因此我借此机会考虑如何设置系统。基本上,需要采取的步骤如下:

  1. 需要下载并安装一些标准包和库,例如编译器、数据库等。

  2. 一些自定义的科学模型需要从源代码下载和编译,因为它们通常不以包的形式提供。

  3. 需要创建新用户来管理数据库和运行模型。

  4. 需要从源代码控制中检出并安装一套管理模型数据库交互的脚本。

  5. 需要设置 Crontabs 来定期运行脚本,以生成预测。

我一直在考虑使用 Puppet、Capistrano 或 Fabric 等工具来自动执行上述步骤。似乎完全有可能实现上述大部分功能,但有几个用例让我感到疑惑:

  • 在我初步的研究中,我发现关于如何使用这些系统来抽象和自动化从源代码构建自定义组件的过程的例子很少,而且讨论也很少。

  • 我们可能必须在与互联网隔离的机器上进行部署 - 即,所有配置和设置文件都必须放在 USB 密钥上,该密钥可以插入可连接到运行模型的服务器的终端。

我认为这是一个学习新工具的机会,它可以帮我实现工作流程的自动化,但我不确定应该从哪个工具开始。如果社区中的任何成员可以推荐一种支持上述工作流程和科学计算特定问题的工具,我将不胜感激。

我们的生产服务器将运行 Linux,但对 OS X 的支持将是一个优势,因为它允许开发团队在 VirtualBox 之外设置测试安装。

答案1

这里的人可能会提供一些有用的信息,但您可能还想询问科学界,因为每年秋季的 AGU 会议上通常会有关于此问题的演讲和海报。其中大部分内容与地球科学数据的工作流程管理有关,这可能比预测工作的要求更严格。

我知道我在上次会议上看到了一些关于这个的演讲,但是 AGU 的新摘要系统对于尝试浏览大量摘要和/或按学科浏览来说绝对很糟糕。(还有子学科?没有机会)。

有些人正在使用工作流管理系统(例如。开普勒酒馆),但我认为他们对起源的系统方面了解得远不及网格和计算集群人员。即使是地球科学人员,他们似乎比其他领域更重视起源,但他们似乎仍然更关注数据输入,而不是安装的处理器/操作系统/库版本等。

用来描述该领域的术语随处可见——我见过它被称为“网络基础设施”(主要是 NSF 的事情)、“科学信息学”等等。抱歉我不能更具体,因为这不是我的领域。(抱怨有关缺乏文件对于这种事情,是的,但是我会在数据生成之后很好地处理数据)。

答案2

您使用的是什么 Linux 发行版?您说的是什么软件“通常不以软件包形式提供”?在我看来,让此步骤自动化变得容易的一种方法是修复根本问题并制作软件包!这可能需要一点小麻烦,但它可以让您和社区将来的管理工作变得轻松得多。

大多数软件包管理器只是一系列脚本,用于净化软件管理。他们非常擅长编写软件的编译、分发、安装和升级脚本。即使你不太想参与到将软件推向上游,大多数发行版都有办法制作你自己软件的覆盖或添加存储库,这些应该是可移植的。

其他步骤非常简单,只需几行脚本代码即可完成。每个步骤的脚本以及将它们串联在一起的脚本不应超过几十行。可以轻松使脚本在本地和互联网源之间切换。

相关内容