图分析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集成以提高其性能是否有意义?完全可以。
图分析Rapids cuGraph的更多相关文章
- 火焰图分析openresty性能瓶颈
注:本文操作基于CentOS 系统 准备工作 用wget从https://sourceware.org/systemtap/ftp/releases/下载最新版的systemtap.tar.gz压缩包 ...
- 《BI那点儿事》SSRS图表和仪表——雷达图分析三国超一流谋士、统帅数据(图文并茂)
雷达图分析三国超一流谋士.统帅数据,献给广大的三国爱好者们,希望喜欢三国的朋友一起讨论,加深对传奇三国时代的了解 建立数据环境: -- 抽取三国超一流谋士TOP 10数据 DECLARE @t1 TA ...
- 也许游戏 它P/N图分析
关于游戏的问题,更多的时候是使用P/N图分析 p n p n p n p n n n n n n n n n p n p n p n p n n n n n ...
- 用 CPI 火焰图分析 Linux 性能问题
https://yq.aliyun.com/articles/465499 用 CPI 火焰图分析 Linux 性能问题 yangoliver 2018-02-11 16:05:53 浏览1076 ...
- SpaceSyntax【空间句法】之DepthMapX学习:第四篇 凸多边形图分析[未完]
这一篇正式讲解分析类型中的第一个,凸多边形分析,流程图参照上一篇的. 博客园/B站/知乎/CSDN @秋意正寒(我觉得这一篇肯定很多盗图的,那么我在版头加个本篇地址吧) https://www.cnb ...
- NLP(十二)依存句法分析的可视化及图分析
依存句法分析的效果虽然没有像分词.NER的效果来的好,但也有其使用价值,在日常的工作中,我们免不了要和其打交道.笔者这几天一直在想如何分析依存句法分析的结果,一个重要的方面便是其可视化和它的图分析 ...
- 火焰图分析CPU性能问题
1.找出应用程序或内核消耗CPU的PID 2.执行perf record 命令,记录该PID的行为 perf record -a -g -p 14851 -- sleep 30 --30秒后退出 3. ...
- 关于图算法 & 图分析的基础知识概览
网址:https://learning.oreilly.com/library/view/graph-algorithms-/9781492060116/ 你肯定没有读过这本书,因为这本书的发布日期是 ...
- G6:AntV 的图可视化与图分析
导读 G6 是 AntV 旗下的一款专业级图可视化引擎,它在高定制能力的基础上,提供简单.易用的接口以及一系列设计优雅的图可视化解决方案,是阿里经济体图可视化与图分析的基础设施.今年 AntV 11. ...
随机推荐
- Windows中动态磁盘管理
目录 动态磁盘 基本磁盘和动态磁盘的转换 简单卷 跨区卷 带区卷 镜像卷 RAID-5卷 相关文章:硬盘分区形式(MBR.GPT).系统引导.文件系统.Inode和Block 动态磁盘 Windows ...
- XCTF-wtf.sh-150
wtf.sh-150 题目描述 没有描述 解题过程 打开之后是个论坛,有注册和登录功能点 抓包发现,登陆成功后会设置cookie <script>document.cookie = 'US ...
- 将大量ASCII码值转换成字符函数CHR()的小技巧
一.在学习命令执行漏洞的过程中,遇到以下情况: 当服务器上传不了马或者马被过滤的时候,我们可以迂回一下,通过执行写马命令到服务器,在服务器里面写马,该命令是通过ascii编码过的命令,防止被过滤. 1 ...
- CDH安装步骤
Six Steps to CDH Installation There are many options and potential paths that make each CDH cluster ...
- 分布式事务与Seate框架(2)——Seata实践
前言 在上一篇博文(分布式事务与Seate框架(1)--分布式事务理论)中了解了足够的分布式事务的理论知识后,到了实践部分,在工作中虽然用到了Seata,但是自己却并没有完全实践过,所以自己私下花点时 ...
- 大华摄像头报警接口中图片加密,python调用c++方式实现解密
项目中,大华摄像头的报警信息,里面有图片地址,需要1天内取下来,保持留痕 可惜,图片下载后,加密了,大华提供了android,ios,c++例子,没有提供java解密例子 没办法,只好先用c++例子简 ...
- Django(18)聚合函数
前言 orm模型中的聚合函数跟MySQL中的聚合函数作用是一致的,也有像Sum.Avg.Count.Max.Min,接下来我们逐个介绍 聚合函数 所有的聚合函数都是放在django.db.models ...
- [源码解析] 并行分布式框架 Celery 之 Lamport 逻辑时钟 & Mingle
[源码解析] 并行分布式框架 Celery 之 Lamport 逻辑时钟 & Mingle 目录 [源码解析] 并行分布式框架 Celery 之 Lamport 逻辑时钟 & Ming ...
- 普里姆算法(Prim)邻接矩阵法
算法代码 C#代码 using System; namespace Prim { class Program { static void Main(string[] args) { int numbe ...
- index详解
jQuery的 index 1.index() 获得向匹配的元素,从0开始计数.不给传递参数,返回值是 jQ对象的所有同辈的索引位置 :如果传递选择器代表,在该选择器下的所有索引位置:如果传递具体的j ...