图分析Rapids cuGraph
图分析Rapids cuGraph
英伟达(Nvidia)建立的新的开源库可能是推进分析和使图形数据库更快的秘密要素。
在Nvidia GPU上进行并行处理。
Nvidia很久以前就不再只是“仅仅”一家硬件公司。由于其硬件是支持AI火爆的大部分计算运行的要素,因此Nvidia承担了为软件铺路的最后一步。Nvidia通过开发和发布库来实现这一点,软件开发人员和数据科学家可以使用这些库将GPU功能集成到他们的工作中。
前提很简单:不是每个人都是并行性方面的专家或想成为一个并行性专家。并行编程很难。但是,这是利用GPU功能并提高软件和分析性能的要求。因此,Nvidia提供了人们可以用来构建软件的库,而无需了解所有实现和硬件细节。
自2007年以来,英伟达一直在CUDA上进行此操作。自那时以来,英伟达已经发布了40多个 Nvidia CUDA-X 库,最近的一个是 Rapids,这是一个开放源数据科学平台,在该平台下,诸如Dask之类的多项调度都在其中或XGBoost用于数据科学已经发展。
Nvidia现在发布了Rapids cuGraph 0.9,该库的目标是使图形分析无处不在。这可能是图分析和图数据库重大发展的基础。Graph是一直密切关注的领域,但不再是唯一的领域,这也不是认为这很重要的唯一原因。
Striods类固醇的图形分析
简短的摘录摘自 Gartner关于为什么图形将在2020年代统治世界的分析:
“到2022年,图形处理和图形数据库的应用将以每年100%的速度增长,以不断加速数据准备并实现更复杂和适应性更强的数据科学。”
但是,Brad Rees一直在做很久之前就已经做好了。
Rees在1980年代开始从事图形编程和分析,数据科学和AI的研究。历经数年和专案,里斯(Rees)于2017年加入英伟达(Nvidia),这是英伟达(Nvidia)内部的新生。如今,布拉德·里斯(Brad Rees)是Nvidia的AI基础架构经理,负责将图形分析和算法推向世界。
Rees在CUDA 2.0发布时就对GPU编程产生了兴趣。正如其他人也指出的那样,图形处理中使用的网格是图形处理的自然匹配:每个节点代表一个概念,每个边缘代表一个关系。
图形和图形驱动的算法和分析将成为2020年代的关键技术
因此,GPU可以加速图形处理的事实并没有引起人们的注意。当Rees加入Nvidia时,已经有一些GPU上的图形算法实现。但是,正如Rees所解释的那样,这些功能不是非常系统化,也没有很好地集成到Nvidia生态系统中。随着算法融合的增长以及图的发展,cuGraph诞生了,Rees成为项目负责人。
CuGraph是在Nvidia GPU上实现的图形算法的集合。如果不熟悉图算法,这听起来可能并不多,因此,将其放到上下文中,可以说Google建立其帝国的著名算法PageRank也是图算法。
周围有很多图形算法,每种算法都可以为不同的数据分析方案提供见解。cuGraph的第一个正式版本0.6发布,已经包含许多算法,包括PageRank。该初始版本侧重于提供基础,并包括针对单GPU分析进行了优化的几种算法。
也可以看看
随着0.9版的发布,Nvidia cuGraph向1.0迈进了一步。正如Rees解释的那样,目标不仅是继续向cuGraph添加算法,而且还使它们能够在多个GPU上工作。现在已经为PageRank实现了。但是,即使在0.6版中,cuGraph也已经比NetworkX快2000倍。
NetworkX是cuGraph建模的Python图形分析框架,可完成NetworkX在GPU上所做的所有工作。选择NetworkX,它是数据科学家使用的最受欢迎的图形框架。在类固醇上使用NetworkX已经是一项壮举,但愿景远不止于此,其含义也很有趣。
NVIDIA CUGRAPH的愿景
5G数据中心基础架构的5个关键考虑因素
5G将对的数据基础架构产生越来越多的新需求,因此现在是规划部署的时候了。
由Vertiv赞助
Rees指出cuGraph的开发将缓慢地朝着提高易用性,互操作性以及与Nvidia的Rapids库的其余部分集成的方向发展。
Rees在博客中继续解释了cuGraph如何利用属性图范例,以及数据框如何成为与Rapids互操作性的关键。里斯说,数据可用于构建图形,在这些图形上运行算法,然后获取这些算法产生的数据,并根据需要将其添加到原始数据中。
CuGraph的路线图还包括添加动态数据结构。这些在分析图形随时间变化时会派上用场。随着数据的流进,可以监视和报告网络结构的变化。
Nvidia的cuGraph库旨在加快图形处理速度,看起来就象标记一样
同样重要的是在分析中使用动态结构。在许多情况下,结果集的大小是先验未知的。能够即时折叠,扩展,添加和减少图形或结果是一项强大的技术。
Rees指出cuGraph将添加最新的图形分析框架,例如GraphBLAS和Hornet,同时关注所有新开发并将其无缝集成在cuGraph下供开发人员使用。
对属性图的引用引发了更多投机性讨论,该讨论不仅涉及算法,还涉及数据库。属性图是对图进行建模的两种更广泛的方法之一。几个图形数据库都采用了它,这是它的重点W3C正在进行的标准化图形数据库的工作。
想知道cuGraph和图数据库之间的相互作用是什么。首先,应该强调两者之间的区别:cuGraph是一个分析框架,已针对加载数据和运行算法进行了优化。另一方面,数据库也应该存储数据。尽管cuGraph并不适合于此,但cuGraph可以通过几种方式影响图形数据库并受其影响。
图查询和图数据库
一直在看到提供图分析框架的数据库,无论它们是否是图数据库。例如,可能具有关系数据库建模并将数据存储在表中,该数据库与框架捆绑在一起,该框架允许以图形查询语言(例如Cypher)查询数据。因此,如果可以做到,cuGraph是否也应该这样做?
Rees指出,例如增加对Cypher的支持是可行的。然而,是否或何时完成这是一个不同的故事。这样做的实用性很重要:与使用API相比,甚至在交互式环境中,将处理表示为查询的一部分也很容易(甚至在交互环境中也是如此)。后者需要编程技巧;分析人员也可以做到前者。
许多图形数据库已经开始提供现成的图形算法实现。由于运行图算法是一种常见的用例,将它们与cuGraph集成以提高其性能是否有意义?完全可以。