图分析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. ...
随机推荐
- Python中面向对象和类
目录 面向对象 类的定义 类的访问 类的属性和方法 继承和多态 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的. 面向对象: 类(C ...
- 数据链路层协议(Ethernet、IEEE802.3、PPP、HDLC)
目录 数据链路层协议 Ethernet以太网协议 以太网数据帧的封装 IEEE802.3协议 PPP协议 HDLC协议 数据链路层协议 首先Ethernet.IEEE802.3.PPP和HDLC都是数 ...
- Windows核心编程笔记之错误处理
0x01 GetLastError() 函数用于获取上一个操作的错误代码 #include <Windows.h> #include <iostream> using name ...
- Linux-鸟菜-7-Linux文件系统-EXT
Linux-鸟菜-7-Linux文件系统-EXT Linux最传统的磁盘文件系统(filesystem)使用的是EXT2,所以先从EXT2开始了解. /dev/sd[a-p][1-128] 为实体磁 ...
- XCTF-i-get-id-200
i-get-id-200 题目描述 嗯..我刚建好了一个网站 解题过程 一共有三个页面 Hello World 告诉了页面是perl写的 Forms 输入name和age会返回渲染后的字符串 搜了一下 ...
- 【python】Leetcode每日一题-设计停车系统
[python]Leetcode每日一题-设计停车系统 [题目描述] 请你给一个停车场设计一个停车系统.停车场总共有三种不同大小的车位:大,中和小,每种尺寸分别有固定数目的车位. 请你实现 Parki ...
- SpringMVC中<mvc:default-servlet-handler/>的作用
问题所在:DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,包括静态资源的请求,Spring MVC会将它们当成一个普通请求 ...
- 多线程-4.wait() notify() notifyAll() 生产者消费者模型
1.wait()方法 该方法继承于Object类.在调用obj.wait()方法后,当前线程会失去obj的锁.待其他线程调用obj.notify()或notifyAll()方法后进入锁等待池,争抢到锁 ...
- printf/scanf格式
(1)打印字符 char c; printf("%c",c); (2)打印整形 int i; printf("%d",i); //有符号十进制数 printf( ...
- Java容器 | 基于源码分析Map集合体系
一.容器之Map集合 集合体系的源码中,Map中的HashMap的设计堪称最经典,涉及数据结构.编程思想.哈希计算等等,在日常开发中对于一些源码的思想进行参考借鉴还是很有必要的. 基础:元素增查删.容 ...