SigmaX 部署实时数据管理解决方案

SigmaX 将其数据管理堆栈与英特尔 FPGA 和 Open FPGA Stack (OFS) 相结合,从而显著提高了向中央代理生成数据的效率。

概览

  • SigmaX 开发出了从数据摄取到消费者的超快速端到端数据流,可实现近乎实时的决策过程。

  • SigmaX 使用英特尔® 至强® 处理器、英特尔® Agilex™ FPGA 和 Open FPGA Stack (OFS),对 Apache 开源软件进行扩展和加速。

  • 与仅基于 CPU 的方法相比,SigmaX 通过基于 FPGA 的加速实现了更低的延迟和更大的数据摄取量。

author-image

作者

要点综述

SigmaX 可应对解决企业大规模数据管理问题方面的最新挑战。由于其解决方案使用了开源 Apache 软件和 Open FPGA Stack (OFS) 等 FPGA 开发资源,因此客户可以从中受益,无需受供应商限制。SigmaX 解决方案由 FPGA 加速提供支持,可实现超快速数据流,从而使用户能够近乎实时地做出决策。

 

  • SigmaX 数据流解决方案基于 Apache Pulsar 和 Apache Arrow,可将延迟降低 100 倍1
  • 仅使用 Apache Pulsar 时,SigmaX 的基准测试结果表明,与使用 Kafka 的竞品相比,流式传输立即提速 250%1
  • Apache Pulsar 与 Apache Arrow 的集成使吞吐量提高至 20 倍,可扩展到数千个节点1

背景和挑战:

数据代理是以订阅形式提供的事件流式传输数据的集合,其类型可以是公有、私有或两者兼有。数据代理会对已发布的数据进行处理、清理和梳理,并将这些数据提供给其他企业或是企业内部消费者。数据生产者是指数据的根源,无论是用户界面、服务还是边缘和物联网 (IoT) 设备。数以百万计的数据生产者可以同时向数据代理发送信息。数据经过处理、清理和梳理之后,消费者就可以从数据代理检索最新数据。这些数据代理可以扩展到数千个,并行处理大量数据。5G、自动驾驶汽车、预测性维护以及其他边缘计算和传输平台等行业正在应对日益庞大的数据集,这些数据集可以扩展到成千上万个数据代理和生产者。

在这些行业中,以真实世界中的速度做出决策并几乎同时做出反应,往往是至关重要的事情。据估计,单是在自动驾驶汽车行业中,每小时生成的数据就有 4 TB 到 40 TB。伴随数据处理方面的巨大需求,新型数据结构和数据表示形式也应运而生,CPU、GPU 和并行处理方面的性能进步尚有待开发。

Apache Arrow 是一种与语言无关的标准软件框架,通常用于通过创建标准列式内存格式来提高数据分析速度,同时节省 80% 的挂钟时间。该框架经常用于由边缘传感器、物联网和大型应用程序生成的大型数据集。Apache Arrow 将列式数据结构的优点与 CPU、GPU 和 FPGA 可以利用的内存计算相结合,实现无缝且高效的跨平台数据共享,而无需复制或移动数据。

通过利用异构处理以及 Apache 软件和 OFS 等开源工具,SigmaX 提供了一种解决方案,可以改进从 JSON 到 Apache Arrow 的数格式转换,与单独使用英特尔至强处理器进行扩展相比,延迟降低了 100 倍,数据摄取速率提高了 20 倍。

解决方案

SigmaX 将其数据管理堆栈与英特尔 FPGA 和 OFS 相结合,从而显著提高了向中央代理生成数据的效率。以下是 SigmaX 解决方案的详细介绍:

第 1 步:Bolson 将传感器数据转换为 Apache Arrow 格式

JSON 传感器数据首先由在英特尔 Agilex FPGA 上运行的 Bolson 通过开源的 OFS 基础架构接收。然后 Bolson 将 JSON 传感器数据转换为通用数据格式 Apache Arrow。通过将数据放入 Apache Arrow,可以让代理的传输速度和响应速度提高几个数量级。因此,除了仅基于 CPU 的方法的优势之外,该途径在延迟和吞吐量方面也具有优势。

第 2 步:Apache Pulsar 处理和清理数据

然后,数据代理 Apache Pulsar 将接收 Apache Arrow 格式的消息。Apache Pulsar 接收到的数据现在可以按原样计算。然后 Apache Pulsar 将对数据进行处理、清理和重新梳理。

Apache Pulsar 是与 Apache Kafka 相当的分布式消息传递和流式传输平台。然而,与 Apache Kafka 相比,它提供了多项显著优势,例如通过异地复制等内置数据可靠性功能改善了安全性、速度、延迟和性能。它通常用于涉及高复杂性架构或实时数据需求的延迟敏感型应用程序。

第 3 步:数据代理将信息传输至消费者

从代理授权后,数据就会传输至订阅的消费者应用程序。

SigmaX 已使用基于英特尔技术的硬件,对该数据管理工作负载进行了验证。他们的开源堆栈使用在客户端应用程序中运行的英特尔至强处理器和基于英特尔 Agilex FPGA 的 Hitek Systems HiPrAcc* NC100 主板来运行 Bolson。

HiPrAcc NC100 主板同时支持 OFS 和 oneAPI。OFS 是一种重要基础工具,使 FPGA 开发人员能够构建基于 FPGA 的定制工作负载和应用程序。它提供了快速启动基于 FPGA 的开发所需的所有硬件和软件源代码、文档、参考示例和工具。OFS 的软件和硬件代码已在 GitHub 上开源。

结果:

SigmaX 的数据管理工作负载使用英特尔 Agilex FPGA 和 OFS 这两项重要英特尔技术,加快了数据转换为 Apache Arrow 格式的过程。通过 FPGA 加速和 OFS,SigmaX 的数据转换工作负载提速至 100 倍,数据量增加至 20 倍1。这种数据管理工作负载可以应用于多种多样的应用,包括医疗保健、保险、5G、预测性维护等。

OFS 提供了着手进行开发所需的所有硬件和软件源代码、文档、参考示例和工具,让我们能够创建自己的 FPGA 加速工作负载,而无需对 FPGA 进行深入调整。

Robert Morrow,SigmaX 首席执行官

如何开始使用 Open FPGA Stack 进行 FPGA 加速:

FPGA 开发人员可以从一系列定制的、英特尔提供的或是支持 OFS 的第三方主板中选择,并使用开源文档和源代码开始构建其定制工作负载。

下表概述了开发人员该如何开始使用英特尔提供的主板或是第三方主板,进行基于 FPGA 的工作负载开发。

  使用英特尔主板 使用生态系统合作伙伴的主板
第 1 步:选择主板

使用 OFS 参考平台

参考平台可以加快评估或启动速度,但不是必需的。

使用定制主板或第三方主板

浏览 OFS 主板目录,查看可用的主板。

第 2 步:评估 OFS 开源资源 技术文档可以在 GitHub 上找到。 主板供应商将提供相应的 OFS 技术文档。
第 3 步:访问开源硬件和软件代码 修改或使用 GitHub (OFS) 上提供的 OFS 软件和硬件代码。 主板供应商将提供相应的 OFS 软件/硬件代码。
第 4 步:利用 RTL 或 C/C++ 开发工作负载(使用 oneAPI)

遵循 OFS RTL 流程

OFS 支持编译 oneAPI 内核。利用 oneAPI 开发流程并使用 C/C++ 构建 FPGA 工作负载。

注意:

1图片发布在“Tens of gigabytes per second JSON-to-Arrow conversion with FPGA accelerators”(使用 FPGA 加速器实现每秒数十 GB 的 JSON 到 Arrow 转换)中。IEEE Xplore。2021 年 12 月。 ieeexplore.ieee.org/documents/9609833

测试配置:适用于 JSON 解析的 FPGA 加速器设计,以 Apache Arrow 列式内存格式将反序列化数据写入主机内存。包含五个阶段:接收 JSON 文档、解析 JSON 文档并将数据反序列化为 Arrow RecordBatch、调整 Arrow RecordBatch 的大小、将 Arrow RecordBatch 序列化为 Arrow IPC 消息、通过 Pulsar 代理将 IPC 消息发布到 Pulsar 主题。所有实现均使用最多 8 个字节,因此每个解析器在以 200 MHz 运行时的理论输入吞吐量峰值为 1.6 GBps。