Google 开源 TensorStore,为读写大型多维数据而设计
Google 在上周发表了一篇博客文章,当中介绍了一个开源的 C++ 和 Python 库 —— TensorStore,开发者可以使用它来存储和操作多维数据,该库旨在通过更好地管理和处理大型数据集来解决科学计算中的关键工程挑战。
如今计算机科学和机器学习中的各种应用都在操作跨越单一坐标系的多维数据集。在这些应用中,一个单一的数据集可能就需要 PB 级的存储空间,而且处理这种数据集也同样面对挑战 —— 因为用户可能以不同的规模和不可预测的时间间隔接收和写入数据。
TensorStore 提供了一个简单的 Python API 来加载和处理大量的数据数组,任意大型的底层数据集都可以被加载和操作,而且不需要将整个数据集存储在内存中,因为在请求精确分片之前,TensorStore 不会读取实际数据或将其保存在内存中。这可以通过索引和操作语法实现,这与 NumPy 操作所用的语法基本相同。
TensorStore 还支持多种存储系统,如 Google Cloud、本地和网络文件系统等。它提供了一个统一的 API 来读写不同的数组类型(如 zarr 和 N5)。凭借强大的原子性、隔离性、一致性和持久性(ACID)保证,该库还提供了读/写回的缓存和事务。
此外,TensorStore 具备的并发性能够确保当许多机器访问同一个数据集时,并行操作的安全性。它与各种底层存储层保持兼容,而不严重影响性能。
研究人员提到,处理和分析大型数值数据集时,需要大量的运算资源,一般情况下,这是由分布在多个设备上的大量 CPU 或加速器核心之间的并行操作来完成的,这些资源通常也分散在众多机器上。TensorStore 的基本目标,便是要能够对单个数据集进行安全并行处理,使这些数据集不会因为并行存取模式,而产生损坏或是不一致,但又同时维持高性能。事实上,在 Google 数据中心内的一项测试中发现,随着 CPU 数量的增加,读写性能几乎呈线性增长。
TensorStore 也有一个异步 API,允许程序在进行其他任务时,可以继续在后台进行读或写操作。TensorStore 还与 Apache Beam 和 Dask 等并行计算框架集成,以使 TensorStore 的分布式计算与当前许多数据处理工作流程兼容。
TensorStore 的用例包括语言模型,可在训练过程高效读取和写入模型参数,另外也能用于大脑映射上,储存用于描绘大脑神经的高解析度映射图。
项目 Github 地址: https://github.com/google/tensorstore

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
mixctl —— 微型 TCP 负载均衡器
mixctl是一个用Go编写的微型TCP负载平衡器。它的创建是为了帮助inlets的用户通过一个TCP隧道暴露在不同服务器上的多个服务。 mixctl在某些情况下可以用来替代HAProxy、Traefik和/或Nginx Streams。它也可以作为K3s服务器的轻量级负载平衡器。 这是一个轻量级的、多架构的、多操作系统的、不复杂的方法,可以反向代理不同的TCP连接和/或负载平衡它们。 version: 0.1 rules: - name: rpi-k3s from: 127.0.0.1:6443 to: - 192.168.1.19:6443 - 192.168.1.21:6443 - 192.168.1.20:6443 - name: rpi-ssh from: 127.0.0.1:22222 to: - 192.168.1.19:22 - 192.168.1.21:22 - 192.168.1.20:22
- 下一篇
谷歌 Linux 内核开发者使用 macOS 编译 ARM64 Linux 内核
Nick Desaulniers 是谷歌的 Linux 内核开发者,曾因使用 LLVM/Clang 编译 Linux 内核而被众人熟知。最近他开始尝试在 macOS 平台编译 Linux 内核。 从他近日发送的邮件来看,Nick Desaulniers 已成功在他的 Apple M2 MacBook Air 上(运行 macOS 12.5.1 "Monterey"系统)编译了ARM64 Linux 内核。 据介绍,Nick Desaulniers 使用了他自己构建的 LLVM/Clang,并通过 Homebrew 获取部分依赖项。基于这些条件,他能够在 macOS 下编译 Linux 内核——当然这并不是说可以在 macOS 上使用 Linux 内核。但对于如果只是想在 Apple M1/M2 上进行开发和构建/冒烟测试 —— 这项 Linux 支持已经足够。 Nick Desaulniers 发布了一个正在开发中的补丁,其中包括执行成功构建所需的必要变化。该补丁在未来可能被提交到上游之前,仍需进行清理和切割。
相关文章
文章评论
共有0条评论来说两句吧...