目录
借助 cuGraph 和 ArangoDB 实现 GPU 加速分析
在不使用 ArangoDB 的情况下运行 cuGraph 算法
将 CRUD 功能与 NetworkX-ArangoDB 结合使用

NetworkX 是一款热门且易于使用的 Python 图形分析库。然而,其性能和可扩展性可能无法满足中型到大型网络的需求,这可能会严重影响用户的工作效率。
NVIDIA 和 ArangoDB 已经通过一项无需更改 NetworkX 代码的解决方案共同解决了这些性能和扩展问题,该解决方案集成了三个主要组件:
- NetworkX API
- 使用的图形加速 RAPIDS cuGraph
- ArangoDB 中的大规模生产就绪型分析
在本文中,我将讨论如何让 NetworkX 用户的生活更轻松,向您展示一个实现示例,并解释如何开始抢先体验。
借助 NetworkX 轻松进行图形分析
NetworkX 广泛用于数据科学家、学生和许多其他人员的图形分析。它是开源的、 WELL-DOCUMENTED 并通过简单的 API 支持大量算法。
也就是说,其一个已知的限制是它在中大型图形方面的性能,这严重地影响了它在生产应用中的实用性。
使用 cuGraph 加速图形分析
RAPIDS cuGraph 图形分析加速库弥合了 NetworkX 与基于 GPU 的图形分析之间的差距:
- 图形创建和操作:使用 NetworkX 创建和操作图形,将数据无缝传递至 cuGraph,以加速处理大型图形。
- 快速图形算法:利用 NVIDIA GPUs 的强大功能进行实时分析。
- 数据互操作性:支持 NetworkX 图形对象和其他格式的数据,实现机器学习、ETL 任务和图形分析之间的简单数据交换。
最棒的地方是,您无需更改代码即可享受 NVIDIA GPU 加速的优势。只需安装 nx-cugraph 库并指定 cuGraph 后端。有关安装和性能基准测试的更多信息,请参阅在 NVIDIA GPU 上加速 NetworkX 以实现高性能图形分析。
简而言之,对于大小介于 10 到 1000 之间的 k,GPUs 可将单次 betweenness centrality 运行速度提高 11 到 600 倍。
使用 ArangoDB 进行生产就绪型图形分析
NetworkX 用户通常必须采用一套复杂的方法来持久化图形数据:
- 手动将数据导出到平面文件
- 关系型数据库
- 临时解决方案,例如使用内存存储
每种方法都有一系列独特的挑战,迫使您花费时间和精力来管理和操作图形数据,而不是专注于分析和数据科学任务。
ArangoDB 的数据持久性层可让一个或多个用户更轻松地在任何无法容纳内存的大型网络上执行图形操作。通过将 ArangoDB 集成为持久性数据层,您将看到以下几个潜在优点:
- 可扩展性:图形数据可以跨多个节点横向扩展,而不仅仅是纵向扩展,从而处理大量数据集。
- 性能:用于实时分析和操纵图形数据的快速读写操作。
- 灵活性:在一个完全集成的平台上支持所有热门数据模型:图形、文档、全文本搜索、键/值和地理空间模型;还支持多租户。
图 1 展示了如何将 ArangoDB 集成到 NetworkX 用户的工作流程中,从而改变图形数据的存储和访问方式。通过提供这种新的持久性层,ArangoDB 使数据科学家能够专注于他们擅长的工作,而不是数据操作和其他细节。

图 1. ArangoDB 作为 NetworkX 持久性层
数据持久性使用户能够利用其他团队成员完成的工作。数据不必从源加载并编译为每个用户的图形,而是可以从数据库加载图形。
图形算法的结果也可以存储和检索,而不是由每个用户再次运行。最终,这节省了用户的时间和资金。
借助 cuGraph 和 ArangoDB 实现 GPU 加速分析
在 NetworkX 中,分析大型数据集需要很长时间。这就是 ArangoDB 使用 RAPIDS cuGraph 分析图形数据的原因,尤其是在数据增长到足以导致性能降低时。

图 2. 使用 ArangoDB、NetworkX 和 cuGraph 分析大规模图形。
通过 NetworkX 接口使用 GPU 扩展 ArangoDB 有几个好处。首先,与使用 CPU 相比,使用 GPU 从 ArangoDB 提取数据的速度要快得多。这是因为 ArangoDB 优化了其数据提取工具,以独特地满足 cuGraph 数据结构的需求,即坐标列表(COO)图形格式。
其次,您可以通过笔记本电脑或其他客户端分析大型图形数据。NetworkX充当客户端API库,用于处理图形算法,这些算法所需的内存超过客户端所能提供的内存。
最后,无需更改代码
借助工具实现 NetworkX 图形分析加速

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



