视界:IFShub - 开展IFS试验的新方式

目录

Paul Burton, Manuel Martins, Stephan Siemen, Michael Sleigh. IFShub: a new way to work with IFS experiments. ECMWF Newsletter Number 167 - Spring 2021. 2021.04. https://www.ecmwf.int/en/newsletter/167/computing/ifshub-new-way-work-ifs-experiments

本文正文部分翻译自 ECMWF Newsletter Spring 2021 中由 Paul Burton 等人撰写的文章《IFShub: a new way to work with IFS experiments》。 翻译底稿来自谷歌翻译。

正文

在任何给定时间,大约有 500 个 ECMWF 的 Integrated Forecasting System (IFS) 的实验在同时运行,包括中心以及我们的会员国和合作国用户的研究工作。 需要大量不同的定制工具,以使研究人员能够管理实验工作负载。 已有不同的应用程序可以用来准备和提交实验,监视运行工作的状态,管理在整个生命周期中存储在我们的气象归档 (MARS) 中的结果数据,并科学地分析和评估结果。 这些工具大多数是桌面应用程序,有些具有 GUI 界面,并且所有工具都是由不同的团队彼此独立开发的。 每个工具使用的编程语言,界面,设计,依赖库和体系结构都是各不相同。

特别地,PrepIFS 是研究人员用来创建,检查和存储实验配置,并将这些实验提交给高性能计算设备 (high-performance computing facility, HPCF) 的工具。 PrepIFS 已经使用了几十年,并且经受了时间的考验,但是近年来,它已经出现了一些可维护性问题。 现在,该应用程序几乎是 ECMWF 仅有的使用 Java 编写的工具,而中心几乎没有 Java 的专业知识。 这是因为近年来几乎所有开发都已转移到 Python 和 C++,而 IFS 本身仍主要使用 Fortran 编写。 此外,开发 IFS 的科学家在创建用户界面方面的专业知识有限,并且在该领域具有丰富经验的应用程序开发人员可以更好地完成此任务。 这类可维护性问题自然会导致可用性问题,因为不必要的改进和错误修复变得非常耗时而无法实施,开发工作必须降至最低限度。 PrepIFS 还使用定制语言来定义管理有效配置的逻辑规则,从而难以实施新的或改进的规则。

译者注:利用现有的基础工具进行开发,不要重新造轮子

因此,几年来一直希望用一种新工具代替 PrepIFS,解决许多这些问题,并且得到积极的开发,测试和维护。 但是,从这个起点出发,思考整个端到端工作流 (end-to-end workflow) 只是一小步 —— 从开始准备实验到对其进行全面评估并存档其结果 —— 以及如何进行改进。

为了应对这一挑战,IFShub 愿景得以发展。 本文将阐明这是如何完成的,并说明我们在开发新系统方面的立场。

项目目标

基于现有系统的缺点,很明显,对整体模式研发工作流更协调的组织可以为研发人员的日常工作提供帮助。 特别是对于刚开始使用 IFS 的员工而言,这意味着更快的学习过程。

IFS 越来越多地在不同的系统上运行,以支持培训和研究活动,例如在 OpenIFS 项目中,以及作为欧盟 “Destination Earth” 计划中的数字孪生计划的一部分。 工作流的高层界面将使隐藏在不同基础设施上运行实验的一些技术挑战成为可能,同时仍然保持对结果的轻松访问。 这些开发将简化向不同系统的迁移,并可以与社区中面临类似挑战的其他计划共享。

需求收集

从一开始就很明确,这将是一个大型的多年项目,并且 ECMWF 的许多利益相关者都参与其中。 为了确保此类项目的成功,至关重要的是达成共识并传达愿景及其范围。 我们决定使用外部帮助,因此选择了 Wavestone 公司。 在 2020 年的前三个月中,两名顾问与 ECMWF 员工进行了面谈,并组织了小型研讨会来收集需求并制定愿景。

译者注:事先确定需求至关重要,否则项目进展过程中会遇到越来越多不容易适应的新增需求,后期很可能会面临推倒重来的问题

图 1,来自原网页:Wavestone 举办的需求收集研讨会

IFShub 愿景

从用户反馈中可以明显看出,IFS 实验目前正在使用大量工具,并且有时用户难以轻松访问所有可用工具并学习如何使用它们。 此外,某些工具要求用户登录到特定平台,并可能要求他们跨计算机复制数据。

我们得出的结论是:用户将受益于从单一访问点使用与 IFS 实验及其产生的数据有关的所有工具。 这些工具应该可以通过 Web 浏览器中一致的用户界面访问,可以从任何设备上的任何地方轻松访问。

译者注:工具可用性,数据可访问性

工具实现的技术复杂性可以隐藏在网络界面之后。 用户将不再需要担心自己需要登录哪个系统或必须在何处复制其数据。 如果将来硬件平台或数据位置发生变化,则用户应该几乎不受这些变化的影响,因为 Web 界面应基本保持不变。 因此,对用户而言,使用不断变化的基础平台将是隐藏的。

我们对 IFShub 的愿景是提供一个可从任何地方访问的基于 Web 的界面,允许 ECMWF 和外部用户通过一致且直观的用户界面来控制运行 IFS 实验的整个工作流。 IFShub 应该通过允许用户随时随地轻松共享配置,数据,分析和相关文档,来促进和鼓励用户之间的强有力的合作与互动。

译者注:使用 Web 界面隐藏后台技术细节,使用 HTTP API 接口隐藏底层实现

线框模型

为了使这一愿景更加具体,下一步是生成一些关于用户界面外观的模型。 与顾问一起,我们确定了要重现的功能的关键领域以及可以引入的新功能。 然后,我们考虑了如何在 Web 用户界面中将其呈现给用户。

译者注:确定需求的方式

这纯粹是为了提供从需求捕获过程中产生的思想的物理体现 —— 它不是系统的有效原型。 尽管如此,这仍然是一个非常有用的过程,可以帮助我们确保以直观的方式与用户进行交互,从而捕获了所需的所有主要功能区域。 它为反馈提供了非常有用的参考点,并且对于我们的开发人员开始开发有效的用户界面将是非常宝贵的帮助。

我们在这里展示了两个线框 (wireframe),说明我们计划为 IFShub 提供的一些核心概念和功能。 当然,我们对 IFShub 的开发仍处于初期阶段,因此它们仍然只是想法。 在我们为最终实现而努力时,它们对于生成评论和反馈非常有用,但是它们并不是一成不变的,并且无疑会在我们开发和测试系统并从用户那里获得反馈时进行修订。

试验发现

“实验发现 (experiment discovery) ”页面是 IFShub 的核心: 在这里,用户可以使用一系列搜索工具来浏览和管理 IFS 实验的完整数据库 (包括他们自己的和其他用户的数据库) (图 2)。 我们旨在通过此页面提供尽可能多的有关实验的有用信息,以使用户能够快速轻松地识别他们感兴趣的实验。 确定实验后,最常见的操作是在“实验浏览器 (experiment explorer) ”中更详细地浏览实验,但是此页面上的其他有用操作将包括将实验配置复制到新实验,管理用户的数据资产,并删除不再需要的旧实验。

此外,此页面还将包括有关 ECMWF 计算机系统的任何有用信息的摘要,这些信息可能会影响用户的实验,例如当前存在的问题或计划中的系统会话 (planned system seessions)。

图 2,来自原网页:实验发现页面将提供对IFS实验的完整数据库的访问。

试验浏览

用户确定了他们感兴趣的实验后,就可以在实验浏览器中的新浏览器标签中打开该实验。 用户可以在此页面管理实验的所有方面。 该页面的主体提供了实验的总体摘要 (图3),例如:

  • 进度监视器,用于快速警告用户需要解决的任何问题
  • 根据实验数据得出的任何图的摘要
  • 实验数据资产的概述

图 3,来自原网页:可以在新标签页中打开的 IFS 实验的总体摘要。此“实验浏览器”页面将在左侧菜单中提供对实验各个方面的访问。

页面左侧是一个菜单,用于访问其他页面,这些页面允许用户与实验进行交互,主要项目为:

  • 配置 (Configuration):将打开 WebPrepIFS,它是在 Web 浏览器中提供的现有 PrepIFS 应用程序的替代品。 WebPrepIFS 将允许用户全面配置他们的实验,检查所有设置是否合理且一致,然后提交实验以在 HPCF 上运行。

  • 监控进度 (Monitor progress):允许用户监控与实验相关的 ecFlow 套件 (suite)。 ecFlow 使用户可以在受控环境中运行大量程序,并且 ECMWF 使用 ecFlow 在多个平台上运行我们的所有业务套件。 用户可以使用此页面快速识别需要进一步关注的任何问题。 他们将能够查看失败任务中的日志文件并重新启动失败任务。 我们不建议使用此工具替换 ecflow_ui,但要提供最重要的功能以允许用户监视和管理正在运行的实验。

    译者注:终于要有在线版 ecFlow 界面工具了

  • 可视化数据 (Visualise data):将提供现有 ECMWF 工具 (例如 Metview 和 ecCharts) 的 Web 界面,并提供查看和管理这些工具生成的图的功能。

  • 评估工具 (Evaluation tools):提供一系列基于 Web 的工具 (其中许多将是现有工具的新 Web 界面),供研究人员用来评估和比较实验数据。 用户可以管理这些工具生成的关联数据和图表。

  • 笔记 (Notes):将与 Confluence (托管在 ECMWF 内部网络的 Wiki 软件)集成,以便为每个实验保留全面的笔记和文档,并自动添加链接以访问其他与实验相关的信息。

    译者注:文档的重要性,记录试验信息,例如使用 Provenance 模型 The PROV Data Model

  • 获取数据 (Get data):允许用户轻松浏览实验产生的可用数据集,并将选择内容下载到当前计算机。

  • 数据寿命管理 (Data lifetime management):一种工具,用户可以通过它轻松查看实验在 MARS 或 ECMWF’s File Storage (ECFS) 系统上使用了多少空间以及如何访问该数据。 这使冗余数据易于识别并标记为删除。

实现愿景

从 IFShub 的总体设计可以看出 (图4),大多数组件已经存在。 两个主要的新开发:

  • 一个松散的基于 Web 的框架,它为不同的服务提供了一个统一的界面
  • 一个新的应用程序 WebPrepIFS,它允许用户定义和管理他们的实验

后者将分两步开发。

图 4,来自原网页:组成 IFShub 的不同组件。许多部分已经存在,可能只需要进行较小的更改和集成。

初始版本 WebPrepIFS 的行为将与现有的独立 PrepIFS 应用程序非常相似,因此用户应能在新的基于 Web 的用户界面可用时轻松地迁移。 我们希望能够将用户现有的所有实验都转移到新的用户界面中。 这将使用户能够在 IFShub 框架下易于访问的 Web 应用程序中利用强大的 PrepIFS 系统的优点。

在此之后,我们计划开始开发后续版本,WebPrepIFS 2.0。 计划尚处于初期阶段,但目的是改善用户界面,使其更易于使用,并改善灵活性和维护方面。 最有价值的目标之一是允许创建现有实验的组合。 这将使产品分析师 (production analysts) 可以使用相同的工具来设置他们的配置,而研发科学家可以复制类似业务的配置,然后可以在研发和业务之间轻松共享它们,从而显著简化科研到业务的切换。

我们如何到达那里?

由于许多重要的项目参与者都在忙于将计算中心迁移到博洛尼亚,因此 2021 年不太可能看到任何重大进展。 取而代之的是,我们决定花时间探索未来系统的各个方面。 例如,正在进行有关如何最好地存储和共享实验信息的试验。 如前所述,IFShub 将连接许多现有的 Web 服务。 已经开始探索如何以灵活的方式实现这一点,以允许服务独立发展。 2021 年,IFShub 项目的管理团队还将制定未来几年的长期发展路线图。

译者注:组合独立的 Web 服务,但也要保证每个服务可以独立开发

讨论

以下仅代表笔者写本文时的个人观点,不排除未来有改变

开发在线工具替代桌面工具很早就在 IT 领域兴起,比如 Google 文档相对于 Office 套件,draw.io 相对于 Visio。 就连微软也开始主推订阅制的 Offict 365,提供在线 Office 工具。 现在则是 APP 的天下,桌面软件似乎逐渐从电脑中消失,留下的应用也大多属于浏览器套壳 (Electron等),而且同时提供手机应用和网页端,甚至小程序端。 我们的读书小组就使用腾讯文档作为团队共享文件,非常方便易用。

在移动互联时代,NWPC 也面临与 ECMWF 相同的问题,即缺乏掌握桌面应用程序开发技能的专业人才。 NWPC 目前使用 Python + wxWidgets 开发模式中试平台的桌面客户端,并已经考虑后续转为在线版本。 同时,NWPC 也在一直在模式交互诊断分析工具领域进行探索,使用 C++ + Qt 开发桌面客户端原型,也正在考虑是否切换到其他路线。

我们熟悉的编程语言都不太适合开发现在的桌面软件:

  • Fortran,全面使用
  • Python,越来越流行
  • Java/C/C++,较少使用

技能组中没有适合开发网页前端应用或者跨平台应用的 Javascript 语言。 最适合的策略是通过工程项目等方式引入第三方力量协助开发客户端工具。 笔者认为不能将整个应用完全交给第三方力量来实现,否则就会面临后续无法维护的问题,核心组件必须掌握在手中。 在这种情况下,在线工具是一个非常不错的选择。

在线工具由于浏览器性能的限制,无法在客户机执行太多的操作,会强迫应用将计算放到服务端,将应用拆成响应用户交互的前端界面和实际执行计算逻辑的后端服务。 工具的核心技术往往在于数据处理逻辑,而我们所掌握的编程语言恰好可以用于开发后端服务。 前端应用仅作为展示界面,完全可以交给更专业的第三方来实现,这也是这篇文章中 IFShub 选择的方式。 桌面应用可能会因为不恰当的设计而耦合大量的核心功能,不利于对核心技术的掌握。 所以,或许可以借鉴目前非常流行的基于 Electron 开发桌面应用的方式,对一些必须要使用客户机资源的应用进行重新设计和实现。

参考

原文:

https://www.ecmwf.int/en/newsletter/167/computing/ifshub-new-way-work-ifs-experiments

相关文章:

Cloud-Ws 2021:事件通知工具Aviso

视界:ECMWF在线-社区、协作和赋权