50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

零拷贝技术升级,V6D 让数据传输更高效

  • 2023-04-27
    北京
  • 本文字数:1512 字

    阅读完需:约 5 分钟

零拷贝技术升级,V6D让数据传输更高效

零拷贝和内存数据管理器Vineyard(v6d) 最近发布了0.13.2版本,为 Python/C++开发和 Kubernetes 部署带来了改进的功能。它是作为CNCF沙箱项目来进行维护的,并提供了分布式操作符,可用于在集群节点内或跨集群节点共享不可变数据。V6d 特别适用于大型(分片)数据集上(例如大语言和图模型)的深度网络训练。它的开发目前由阿里巴巴的一个工程团队领导。

 

零拷贝内存数据分布是许多实时应用程序的核心问题。从图像处理管道到深度学习模型,如 LLM 和图挖掘算法等,许多数据处理应用程序都需要从许多独立的进程中获取大量数据。在机器学习工程中,随着深度网络变得越来越大,模型参数的分布要求访问共享状态和数据,这一瓶颈变得越来越明显了。作为一个早期项目,V6d 旨在为此类用例提供一个高级 API。

 

实时应用程序的架构通常利用内存中的键-值存储/缓存(例如 etcd、Memcached、Redis)来存储和交换频繁访问的数据。根据服务类型,工程团队必须考虑这些工具带来的相关权衡。V6d 由两个主要组件组成:Apache Arrow Plasma派生共享内存数据管理器(在一个节点内)和由etcd支持的元数据服务器(在不同节点之间)。虽然 Plasma 派生服务允许零拷贝数据传输,但 etcd 服务处理数据属性的全局分布(可能是分区的)。

 

V6d 将自己置于 Python 社区中。在某种程度上,可以考虑将 Python 原生的多进程shared_memory扩展到多台机器,以实现不可变的 blob。V6d 提供了两个不同的 Python 客户端接口IPCClientRPCClient,分别用于操作本地和远程对象。两个客户端 API 都允许基于对象 ID 的统一数据插入和检索模式。然而,v6d不会在集群节点之间自动移动数据,除非被指示这样做,因为这种操作的高网络成本很高。

 

我们可以提供了一个可以在本地机器上运行的简单示例,让我们先从创建本地 v6d 实例开始:

 

python -m vineyard --socket /tmp/vineyard.sock --size 16733650944
复制代码

 

作为第一步,让我们展示如何利用 Python 的原生 API。为此,我们将使用 NumPy 创建一个 10k 分辨率的虚拟 RGB 图像,并使用 shared_memory()接口来快速共享它:

 

import numpy as npfrom multiprocessing import shared_memoryshape_, dtype_ = (3, 10000, 10000), np.uint8array_to_share = np.random.randint(0, high=255, size=shape_, dtype=dtype_)#创建共享内存shm = shared_memory.SharedMemory(create=True, size=array_to_share.nbytes)array_shm = np.ndarray(shape_, dtype=array_to_share.dtype, buffer=shm.buf)array_shm[:] = array_to_share[:] # Here we need to copy as we use existing array# 在另一个过程中使用共享内存名称、大小和类型信息来检索数据existing_shm = shared_memory.SharedMemory(name=shm.name)array_retrieved = np.ndarray(shape=shape_, dtype=dtype_, buffer=existing_shm.buf)

复制代码

 

在这里,我们可以使用 v6d 执行相同的操作:

 

import vineyardclient = vineyard.connect('/tmp/vineyard.sock')array_id = client.put(array_to_share)# 在另一个进程中检索之前的array_to_sharearray_retrieved = client.get(array_id)
复制代码

 

如上所示,该 API 非常易于使用,并将数据类型和数组形状传播到检索到的对象中。由于是通用数组协议(又名缓冲协议),NumPy 接口还接受对 PyTorch、TensorFlow 和 MxNet 张量的零拷贝操作。除此之外,v6d 在 Pandas/Arrow 数据框架上进行了相同的操作。有关该库集成的更多详细信息,请访问相关的文档页面。 也可以在网页中找到机器学习培训教程的示例。

 

对于多节点设置,V6d 允许通过Python APIHelm图表在 Kubernetes 集群上部署 vineyard 操作。官方文档中还提供了更详细的架构概述。


原文链接:

https://www.infoq.com/news/2023/03/zero-copy-v6d/


相关阅读:

2023-04-27 08:002695

评论

发布
暂无评论
发现更多内容

Mac ftp文件传输工具 SecureFX注册激活版

Rose

如何估算项目成本

易成研发中心

项目成本管理 项目成本管理系统 项目成本

8款项目管理工具project替代选项,2024年新趋势

易成研发中心

项目管理 项目管理工具 #项目管理

苹果Mac受欢迎的翻译工具 iTranslate中文版

Rose

Parallels Toolbox for mac(工具箱合集)v7.0.0商业版

Rose

Linux系统中解决端口占用问题

Damon小智

进程 服务器 端口占用 运维、

Native Instruments Traktor Pro破解版(数字DJ音乐制作平台)-Mac/win

Rose

链接全球创新力量|2024 波卡黑客松曼谷站获奖团队专访

One Block Community

黑客松 web3 波卡

有救了!泼天的流量用最大的数据湖

阿里云大数据AI技术

大数据 阿里云 数据湖 DLF

McAfee Endpoint Security for Mac(迈克菲防病毒软件)v10.7.8激活版

Rose

Ample Sound Ample Guitar Stratocaster for Mac(电吉他音源)v3.1.0 激活版

Rose

如何保证项目质量

易成研发中心

项目管理 项目质量 项目质量管理

微信小程序-Docker+Nginx环境配置业务域名验证文件

Damon小智

小程序 微信 容器 运维、 docker、

《CPython Internals》阅读笔记:p232-p249

codists

CPython Internals

PHP进阶-在Ubuntu上搭建LAMP环境教程

Damon小智

php ubuntu 开发语言 LAMP

Mac解压缩zip工具 Unzip Expert-Zip file tool for Mac v1.4.0激活版

Rose

CHM Viewer Star for mac(CHM阅读器)v6.3.4直装激活版

Rose

苹果电脑装机必备精美日历软件:CalendarX for mac

Rose

Little Snitch 4 for Mac(小飞贼系统防火墙软件) v4.4.3稳定激活版

Rose

我国数字经济创稳中求进

芯盾时代

数字经济

linux分区数据读取工具 Paragon extFS for Mac v11.3.30永久激活版

Rose

mac系统克隆工具 Clone X for Mac v4.3.2激活版

Rose

荣耀换帅,一艘AI巨轮的舵手更替会带来什么?

脑极体

AI

2025 开局,我的身体给我上了一课

Immerse

Python进阶-在Ubuntu上部署Flask应用

Damon小智

Python flask ubuntu

适合国内团队的 Trello 替代工具:7款热门选择

易成研发中心

项目管理 项目管理工具 管理项目

赢取 600 万 ACA!Acala Meme & DApp 大赛火热开启

One Block Community

技术 比赛 web3

零拷贝技术升级,V6D让数据传输更高效_大数据_Sabri Bolkar_InfoQ精选文章