论文阅读:科学攻陷云平台

目录

Science storms the cloud

Gentemann, C. L., Holdgraf, C., Abernathey, R., Crichton, D., Colliander, J., Kearns, E. J., et al. (2021). Science storms the cloud. AGU Advances, 2, e2020AV000354. https://doi.org/10.1029/2020AV000354

发表于 AGU Advances 的一篇文章,介绍科学尤其是地球科学正在向云计算平台迁移的趋势。 虽然我不认为云平台就一定能降低科学研究的入门门槛,但我还是非常赞同文中对开放科学的支持态度。 标题是双关语,起得很有意思。

以下“正文”章节翻译自论文,底稿来自谷歌翻译,并按照笔者的个人理解有所修改。

正文

摘要

科学的核心工具 (数据,软件和计算机) 正在经历历史性的快速发展,改变了科学家提出的问题以及如何找到答案。

数据:地球科学数据正在转换为针对云存储进行优化的新格式,从而可以快速分析 PB 级数据集。 数据集正在从存档中心转移到与大型服务器场相邻的庞大云数据存储中。

平台:可通过浏览器窗口访问的基于开源云架构的数据科学平台,让科学家在连接到 Internet 的任何地方都可以从事高级、协作、跨学科的科学研究。 用于机器学习和人工智能的专用软件和硬件已集成到数据科学平台中,从而使普通科学家更容易使用它们。

云中越来越多的数据和计算能力正在开启数据驱动发现的新方法。 第一次,科学家无需专业云计算知识就可以将分析应用于云中的数据变得真正可行。 这种范式的转变有可能降低准入门槛,扩大科学社区,增加合作机会,同时促进科学创新,提高透明度和可重复性。

然而,我们所有人都目睹了有希望的新工具从一开始似乎无害且有益,变得具有破坏性或带来限制。 随着这种新的科学方法不断发展,我们需要考虑什么?

通俗语言摘要

长期以来,科学家一直在下载数据并在自己的计算机上进行分析。 由于其他人无法访问相同的数据,软件和计算资源,因此协作变得非常困难。 这种方式还为具有高速互联网和大量计算机的大型机构科学家提供了优势。

现在,数据正在存储在云中,科学家正在共享他们的软件,任何人都可以通过 Web 浏览器访问云中的计算机。 因为每个人都可以访问相同的数据,软件和计算机,所以这使得协作更容易。 而且,更多的人可以使用功能强大的计算机从事科学工作。 这是科学的另一种方式,同样存在潜在的弊端。 我们需要小心,这种新的科学方法实际上可以促进科学发展,并包括更多的人,以便我们更快地获得更好的答案。

介绍

科学的新方向是由新工具发起的,而不是由新概念发起的。 概念驱动的革命的效果是用新的方式解释旧事物。 工具驱动革命的结果是发现必须解释的新事物。 (Freeman Dyson)

自科学计算问世以来,计算机已推动了重大的科学突破。 我们探究了深空,开发了预测我们的天气和气候的模型,并对整个人类基因组进行了测序。 毫无疑问,计算机具有先进的科学技术并能改善生活。

大型机构的优势

计算方面的挑战使研究人员感到沮丧,他们通过下面的努力来提高效率:

  • 数据标准化
  • 开发通用软件工具
  • 将计算机连接到集群

对于许多研究主题,都适用帕累托法则:

  • 80% 时间:数据整理 (下载,存储,维护数据的私有存档以及开发用于访问数据的软件)
  • 20% 时间:分析结果和共享所学知识

该比率的变化取决于向研究人员提供何种级别支持的机构,从而造成了研究的不平等和壁垒。

大型机构可能在如下方面进行投资:

  • 庞大的私有数据存储
  • 强大的计算机集群
  • 技术支持

至少部分地,在顶级机构中,尖端变革科学是由这些机构数十年来建立的基础架构来支持的,并且这种资源并不总是可供其他人使用。 换句话说,尽管计算机无疑是先进的科学,但它们也永久存在并加剧了某些不平等现象。

科学的障碍

  • 数据存储和管理方面的挑战
  • 对过时的编程语言的依赖
  • 对功能强大计算机的访问限制

本文内容:在本文中,我们将讨论 数据访问软件工具计算机基础结构 方面的创新如何从根本上改变科学的完成方式和参与人员。 我们相信这种转变将改变可能出现问题的领域以及我们回答这些问题的能力。 这一转变的速度和影响将在某种程度上取决于这种新的科学方法是否能够使更多声音发出更好、更强大的解决方案。

数据革新

当使正常科学运作的主导范式与新现象不相容时,就会发生范式转换,从而有利于采用新的理论或范式。(Thomas, 1962)

传统方式

当科学家需要数据时,他们经常求助于机构归档中心进行访问。 数据被下载,本地存储并联网到计算机进行分析。 大型数据集可能需要数周或数月的下载时间,并且当发布新版本的数据时,必须重复该过程。 小型机构或发展中国家的许多科学家没有处理这些数据的带宽或基础设施,从而限制了他们进行科学的能力。

数据迁移

数据正从存档中心转移到庞大的云数据存储设施。

  • NASA 已与《太空法案协议》中的 Amazon Web Services (AWS) 合作,提供对存储在 AWS 上的 NASA 数据集的免费访问。
  • NOAA 已与多家公共商业云提供商合作开展大数据项目,以为基于其最热门数据的用户提供免费的,基于云的数据存储和访问

通过这些伙伴关系,数据是公开的,可以自由访问或下载。 这些机构正处于数据访问的历史性转变之中,将数据从存档中心转移到服务器场附近的公共商业云和国家云存储设施。

数据使用

除了数据的存储位置之外,数据的存储方式还决定了数据的访问速度和便捷程度。 例如,观察到通过与高度可扩展的数据仓库工具 (例如 Google 的 BigQuery) 集成获得的 NOAA 数据集的使用率比仅从机构归档中获得的数据高出 1000 倍。

数据格式

传统数据库正在被高度可扩展的格式所取代,这些格式可以承受较重的搜索负载并具有更快的性能。 经过云优化的数据被组织成数据的“块”,从而可以将 100 GB 访问分布到 100 台计算机上。

开源项目

开放科学社区 Pangeo 项目 (http://pangeo.io/) 正在创建一个 Pangeo Forge,以众包并自动创建云优化数据 (https://github.com/pangeo-forge/roadmap)。

数据访问方式的这种变化归因于用于访问数据的软件的改进。

软件革新

商用软件

数十年来,科学一直依赖于快速编译型编程语言 (例如 Fortran 和 C) 以及商业解释分析语言 (例如 Matlab,S-Plus 和 IDL)。 依赖昂贵的商业软件进行科学分析直接加剧了富裕、特权机构的科学家与经济上处于不利地位的社区和发展中国家的科学家之间的不平等。 而且,这些语言很少在科学界以外使用,因此

  • 遇到问题时,很少有人能寻求帮助
  • 社区开发的软件工具并不多

译者注:大型社区才能形成良性循环,闭源环境不利于社区分享成果。而且随着冲突对立加剧,很多商业软件未来可能会禁止我们使用。

开源软件

在过去的十年中,开源语言 Python 和 R 的普及率出现了大幅增长。 基于开源语言的软件鼓励其他人构建开源工具,这些工具可以随着大型社区的成熟而被广泛共享,逐步改进和采用。

科学向使用和参与开放源代码软件库开发的转变,实现了快速的创新和软件改进。 开源库的贡献者有助于消除编程错误,改善文档并扩展功能以扩大适用范围。

译者注:仅在内部使用的工具类软件无可避免地会陷入更新缓慢的境地。

Xarray

Xarray 提供了一个功能强大且易于使用的工具包,用于分析地球科学中常见的结构化文件 (例如 NetCDF,GRIB 和 gridded raster)。 Xarray 建立在科学 Python 软件生态系统的其他层之上,特别是 NumPy 和 Pandas。 基本的 Xarray 安装只需要三个软件库,但还有 21 个可选的软件库,例如

  • 绘图库 Matplotlib
  • 分析库 Scipy
  • 并行计算库 Dask

译者注:学习优秀 Python 库的设计理念,仅使用较少的基本依赖,并支持大量的扩展库。

资金支持

这些完全不同的软件库在地球系统科学服务中的集成并不是凭空发生的。 筹资机构的共同努力,例如 NSF EarthCube 对 Pangeo 项目的资助,有助于加速和协调 Xarray 和 Dask 的开发,以满足科学用户的需求。 其他机构也认识到这些软件库对科学的价值。 例如,2020 年美国国家航空航天局 (NASA) 发布了一项提案请求,“以改善和维持高价值的开源工具,框架和库” (https://tinyurl.com/nasaE7OSS)。

译者注:至少在单位内部已经看到对开源项目开发的支持,包括对开源项目必备组件文档的完善。

计算革新

本地计算集群

为了帮助科学家处理越来越大和复杂的数据集,机构的默认响应通常是购买本地计算集群。 虽然充分利用本地计算机集群可以提高效率和成本效益,但只有少数机构可以负担得起。 这不包括科学界的绝大多数人,并且造成了“有/没有”的情况。 这些是只有幸运者才能进入的计算堡垒。 就像中世纪的堡垒一样,基础设施快速老化,需要不断维护,并且不像科学通常所要求的那样敏捷。 封闭的环境意味着与外部研究人员的合作可能会充满挑战,通常会有一个应用过程和一个陡峭的学习曲线来理解计算环境。

译者注:不要将 HPC 当成随时可以使用的资源,这只是单位带来的优势。开发工具软件同时要面向更广大的计算资源环境。

公有商业云计算

公共商业云计算解决方案提供了数据存储和计算服务,任何人都可以根据需要对其进行配置和扩展。

三大商业提供商主导了市场

  • AWS
  • Google Cloud Platform
  • Microsoft Azure

但其他商业提供商也提供了竞争解决方案

  • Digital Ocean
  • Wasabi
  • OVH

科学资助机构也正在尝试运行自己的云

  • NSF Jetstream

不幸的是,访问云资源需要专业知识。 配置“云上的计算机”涉及:

  • 选择虚拟机,数据存储
  • 设置安全访问规则
  • 监视成本
  • 其他技术决策

随着科学分析转移到云中,重要的是我们不要重现研究人员当前在本地计算机集群上遇到的障碍。

JupyterHub

幸运的是,围绕开放和与供应商无关的研究方法,已经有了一个由工具、组织和社区组成的生态系统。 例如,JupyterHub 提供了一个易于访问的通用数据科学平台。 无论是在本地还是远程云基础架构上运行的计算环境,都可以通过任何浏览器窗口进行访问。 Jupyter 生态系统中的其他工具 (例如 JupyterLab 和 Jupyter Notebook) 为软件开发提供了域无关和供应商无关的界面。 这些工具已经是大多数数据科学家的默认工具,并很快被其他需要计算笔记本的人采用。 JupyterHub 可以从科学行为中分离并巩固对运行共享基础结构的维护。

为科学家管理安全,经济高效的 JupyterHub 访问方式可能会有所不同,具体取决于研究的资助方式。

  • 一些机构已经为其研究人员 (例如 NSF 的 JetStream) 投资了由机构管理的云解决方案;
  • 像挪威水科学研究所这样的机构维护并管理了所有研究人员都可以使用的 GCP JupyterHub;
  • 为了促进社会科学中的开放科学,莱布尼兹社会科学研究所提供了免费的持久性 JupyterHub 环境 (https://notebooks.gesis.org/)。

已经成立了满足行业和科学需求的多家公司,这些公司使小型组织和个人可以访问托管的云基础架构,从而确保大型机构或代理机构的研究人员不具有“云”优势。 例如

译者注:JupterHub 是研发支撑开发一个非常值得尝试的方案,虽然笔者刚刚开始试用。

新的科学工作流程 (图 1) 说明了在云上完成科学的方式的转变,无论该云是公共商业云还是国家科学云 (如 JetStream)。

图 1 随着数据,软件和计算机在云中融合在一起,科学正在发生变化。科学家可以通过 Web 浏览器窗口访问大量的云计算资源,从而将超级计算机有效地放置在任何与 Internet 连接的设备中。

联合起来

开放的,基于云的科学已经开始出现。 在本节中,我们提供了一个关键的开放源代码工具的示例 (Binder),该工具可以促进科学,以及进行基于云技术的开放式科学的多项科学成果。

提升可重复性

Binder

Binder 项目 (https://mybinder.org) 结合了开放软件和云计算,以提高可重复性并简化团队之间的共享。 通过简单的 Web 浏览器窗口,Binder 一键式将用户与运行基于用户指定的计算笔记本集合的基于云的交互式 JupyterHub 连接起来。 该项目每周有超过 100,000 名用户,它正在改变科学家分享可复现分析的方式。

新科学

鲸鱼叫声

NOAA使用安装在海底的声波记录器收集了 200 TB 的鲸鱼叫声。 聆听数据将花费 19 年以上的时间。 研究人员开发了卷积神经网络来自动识别白鲸的叫声 (https://github.com/microsoft/belugasounds)。 科学家们首次对整个数据集进行了分析,以了解鲸鱼在哪里,它们如何运动以及不断变化的海洋条件如何影响其种群。

研发到业务

飓风

快速估算飓风强度和前进方向对分配应急资源至关重要。 受过训练的气象学家会使用与已知模式匹配的卫星图像来估算飓风的强度。 NASA 人工智能专家自动进行飓风分类 (http://hurricane.dsig.net/) ,减少了向公众传达重大威胁的延迟。

社会影响

洪水

研究人员结合使用 NOAA 和 USGS 的开放云优化数据,开放软件和云计算,为美国 1.4 亿多处房屋 (https://floodfactor.com/) 生成洪水风险评分。 这些分数很容易传达给美国公众并由美国公众消费,从而使复杂的科学能够转化为简单,实用的信息产品。

挑战

我们如何确保这种新的科学方法不会仅仅将一个系统的挑战和不平等互换为其他种类? 在某些方面,我们急于扩展到云端的痛苦已经越来越大。 在本节中,我们讨论了几个挑战,并在 Text S3 (支持信息) 中提供了其他讨论。

机构支持

为科学提供资金的联邦机构运转缓慢,尽管这提供了稳定,为科学奠定了坚实的基础,但是当社区需求发生重大变化时,这种惯性也可以扩大支持方面的差距。 例如,基于云的数据集仍然需要

  • 仔细的数据管理
  • 元数据标准
  • 来自受信任来源的数据提供

通过减少创建、发布、访问和使用数据的障碍,我们可能会增加不熟悉科学数据实践,版本控制和受信任存储库的用户无意滥用的可能性。 由于数据已经存在于云中,因此已经需要用于传达“数据最佳实践”的新方法以及如何识别可信来源。 科学家需要更多有关软件最佳实践以及如何共享软件以获得可再现结果的培训。 已经熟悉现有数据档案库的科学家,以及专注于教育的小组 (例如,Openscapes,https://www.openscapes.org/ 和 The Carpentries,https://carpentries.org/),在提高数据和软件素养方面可以发挥中心作用,但需要机构的优先支持。

成本问题

为了实现向基于云的科学大规模迁移愿景,必须解决的中心问题是: 谁为云计算付费,这是否会产生影响科学的诱因?

传统上,计算基础设施的成本主要由供资机构 (例如,NSF,通过对 individual PIs 和大型机构的赠款) 和研究机构 (通过对计算硬件和支持人员的机构支持) 承担。 随着组织将预算转移到购买云基础架构上,这引发了一个问题,即应从大学内部删除哪些服务或基础架构。 我们如何确保将云基础架构与本地基础架构一起使用,从而利用其相对优势,而不是“全有或全无”主张?

访问安全,可扩展的云计算需要技术专业知识和持续的成本监督。 我们如何确保对云计算的访问不会简单地复制一种情况,即科学仅限于特权,资金雄厚,相互联系的少数人?

也有过分依赖云计算服务提供商的风险。 在这个新的云原生世界中,谁应该成为服务提供商? NSF 的云银行 (https://www.cloudbank.org/) 之类的程序,Coiled 之类的公司以及 2i2c 之类的非营利组织都可以在云提供商与个体科学家之间发挥中介作用,从而为科学界提供更大的杠杆作用并帮助他们控制基础架构选择。

社区

最后,当我们倡导开放科学时,重要的是要认识到,推动科学发展的开放性不是技术的纯粹产物,而是实践、规范和围绕该技术的社区行为的产物。 正如新技术需要设计新的工作流程一样,重要的是要有意设计新的社区基础架构,以迎接更多样化的社区,从战略上指导支持和社区动态,以包括边缘化群体,并认识到先前如何排除团体参与。

例如,Pangeo 项目将自己定义为“社区平台”,强调既关注尖端开放科学,又要建立开放、包容的社区动态,并平衡生态系统中许多利益相关者的力量。 要求参与者遵守行为准则 (例如https://tinyurl.com/pangeoCC)。

在大多数学术、商业和机构绩效或任期评估中,这项工作没有被视为对科学的贡献时,如何开展工作以创建一个包容性的开放社区,从而优先推动科学发展?

结论

新一代的信息技术工具和服务具有进一步改变科学实践的潜力 … 这些工具和服务在开放科学生态系统中使用时将产生最大的影响。(National Academies of Sciences, 2018)

数据,软件和计算机

这些工具已经被结合起来以促进科学发展,但是为了真正实现变革性科学,开放科学必须是融入所有前进努力的核心设计原则。

开放科学是“公开透明地进行的研究”。

  • 开放数据使结果可重现。
  • 开放软件创建了社区工具,可以更快地推动科学发展,并减少复制和建立结果的工作量。
  • 开放计算意味着构建具有开放基础架构的数据科学平台和软件服务,而开放基础架构完全与供应商无关,任何人都可以访问。

现在,存在着一个由易于访问的数据,服务端计算,开源软件工具以及一键计算的云计算数据科学平台组成的丰富生态系统,这些生态系统使得大规模研究变得容易,并且仅在几年前就难以想象。 实际上,对于科学家而言,这些变化的结果是大大减少了花费在获取和处理数据上的时间,从而为科学腾出了更多时间。 范式的这种转变降低了准入门槛,扩大了科学界,并增加了合作机会,同时促进了科学创新,透明度和可重复性。

社区可以共同努力,以减少障碍,并为创新创造强大的力量。 彼此合作的思维方式越多样化,我们发现和消除创新障碍的机会就越大。 在云上构建开放式科学可以创建相同的创新社区,但是没有许多以前的协作障碍。 社区开放,科学家可以与任何人合作,无论其隶属,国籍或位置如何。 这种转变可能会释放研究人员的科学时间,并创造一个空间,使我们的理解有更多飞跃,跨学科的合作将会蓬勃发展。

技术可以是一把两刃剑,因为它消除了较旧的障碍,因此增加了新的障碍。 随着我们朝着科学发展的新方式迈进,围绕开放式科学设计我们的新游乐场将使人们能够围绕参与科学的障碍进行真诚的对话,并帮助我们更快,共同前进。

参考文献

部分参考文献

Abernathey, R., Augspurger, T., Banihirwe, A., Blackmon-Luca, C. C., Crone, T. J., Gentemann, C. L., et al. (2020). Cloud-Native Repositories for Big Scientific Data. Authorea. https://doi.org/10.22541/au.160443768.88917719/v1

正文结束

讨论

无论未来使用私有云 (CMA DaaS) 还是公有云,对于从事笔者类似工作的同行来说都会面临一个新的挑战:

在云时代如何从事数值模式研发支撑工作?

这篇论文已经指明了一个可行的方向:减少科学家 (即研发人员) 花费在获取和处理数据上的时间,从而提高研发效率。

从现在的规划看,模式研发支撑工作更适合专注在软件工具层面,而不再考虑硬件设备环境。 文中提到两个 Python 软件包,包括用于数据处理操作的 Xarray 库和用于构建数据分析平台的 JupyterHub 工具。笔者正在尝试将这两个工具引入到研发支撑工具集中。

nwpc-oper/nwpc-data 库的发展目标就是为研发工作提供简单易用的数据工具库,节省研发人员在数据查找和预处理上花费的时间。

nwpc-oper/sokort 库则是面向 Jupyter 生态系统开发的绘图脚本封装工具,发展目标是成为推广 JupyterHub 服务的先锋应用。 尽管是个小型项目,笔者也体会到想要拿出一个“能用”的工具并不是一件容易的事情,尤其是对于画图这种专业性较强的任务,需要吸引更多的力量加入。

在数据方面,模式研发支撑可以从如何提高数据处理的效率方面入手,如何利用云平台基础设施进行分布式处理。更进一步则可以考虑现有数据格式、数据文件组织方式是否适应云平台架构,是否需要采用云优化数据格式。

而在计算平台方面能做的工作似乎不是很多,因为短期内模式研发工作可能仍会以 HPC 为主,云平台中更偏向于数据分析方面的任务。 JupyterHub 是一个可行的领域,提供 Python 版本的交互式数据分析平台 (目前更多使用 GrADS 进行交互分析)。但创建 JupyterHub 集群又与底层环境相关,笔者可能会更偏向于开发适用 Jupyter Notebook 的分析工具,而不研究硬件相关问题。 另一个可行的领域就是研究如何在高性能计算和云平台中提供一致的数据分析工具,将对底层计算资源的调用内置到工具库中,用户仅需要使用一套接口就可以在不同计算平台中执行相同任务。

笔者尚未实际接触云平台相关开发工作,也不清楚未来的技术路线,但有一点非常肯定:研发支撑工作一定不能局限在高性能计算平台中,云平台也一定会扮演越来越重要的角色。

要记住核心的工作目标:提高科学家研究科学的效率。

参考

论文网址:

https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2020AV000354

相关文章

论文阅读:数字时代开放的天气和气候科学

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

其他文章

“天擎”,稳了! by 中国气象数据公众号