支持科学计算的configurationpipe理

过去几年来,我一直参与开发和维护近海波浪预报系统。 我们的团队刚刚获得了进一步发展的重要拨款,因此我们正在借此机会重构旧系统的许多组件。

我们也会收到一个新的服务器来运行这个模型,所以我借此机会考虑我们如何build立这个系统。 基本上,需要发生的步骤是:

  1. 某些标准软件包和库(如编译器和数据库)需要下载并安装。

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

  3. 需要创build新用户来pipe理数据库并运行模型。

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

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

我一直在思考应用诸如Puppet,Capistrano或Fabric之类的工具来自动执行上述步骤。 除了我想知道的几个用例之外,实现大部分上述function似乎是完全可能的:

  • 在我的初步研究中,我发现了很less的例子,并且很less讨论如何使用这些系统来从源代码构build自定义组件的过程。

  • 我们可能必须在与Internet隔离的机器上进行部署,即所有的configuration和设置文件都必须通过USB钥匙进入,这个USB钥匙可以插入可以连接到运行模型的服务器的terminal中。

我认为这是一个学习新工具的机会,可以帮助我自动化工作stream程,但是我不确定应该从哪个工具开始。 如果任何社区成员都可以提出一个支持上述工作stream程和科学计算特有问题的工具,我将非常感激。

我们的生产服务器将运行Linux,但支持OS X将是一个奖金,因为它可以让开发团队在VirtualBox之外设置testing安装。

这里可能有很多人的信息,但你也可以问科学界,因为每年AGU秋季会议上都会有这方面的谈话和海报。 其中大部分工作必须处理地球科学数据的工作stream程pipe理,这可能比预测工作有更严格的要求。

我知道在最后一次会议上我看到了一些这方面的介绍,但是AGU的新的抽象系统对于试图通过大量的摘要和/或按照纪律进行浏览是绝对不合适的。 (和子学科?不是一个机会)。

有些人正在使用工作streampipe理系统(例如Kepler和Taverna ),但是我不认为他们几乎像网格和计算群体那样进入了出处的系统方面。 即使是地球科学界的人,似乎比其他领域的资源更为重视,似乎仍然把重点放在数据input上,而不仅仅是安装了哪种types的处理器/操作系统/版本库等等。

用来描述这个领域的术语已经到处都是 – 我已经看到它被称为“networking基础设施”(主要是NSF的东西),“科学信息学”等等。对不起,我不能更具体地说这不是我的领域。 ( 抱怨这种东西没有文档 ,是的,但是我处理好数据的生成后就处理好了)。

你使用的是什么Linux发行版,你在说什么软件是“不是通常提供的软件包”? 在我看来,使这一步简单自动化的一种方法是解决根本问题,并获得软件包! 这可能需要一些小小的调整,但是这会使未来的pipe理工作对于自己和社区变得更加容易。

大多数软件包pipe理器只是一系列脚本来清理软件的pipe理。 在这个angular色中,他们非常善于编写软件的编译,分发,安装和升级脚本。 即使你不愿意让软件向上游移动,大多数发行版本都有自己的软件制作覆盖或添加软件库的方法,而且这些软件应该是可移植的。

你的其他步骤是非常基本的,只是几行脚本代码,这些都将汇集在一起​​。 每个步骤的脚本以及将它们串在一起的脚本不应超过每行几十行。 脚本可以很容易地在本地和互联网源之间切换。