图分析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的更多相关文章

  1. 火焰图分析openresty性能瓶颈

    注:本文操作基于CentOS 系统 准备工作 用wget从https://sourceware.org/systemtap/ftp/releases/下载最新版的systemtap.tar.gz压缩包 ...

  2. 《BI那点儿事》SSRS图表和仪表——雷达图分析三国超一流谋士、统帅数据(图文并茂)

    雷达图分析三国超一流谋士.统帅数据,献给广大的三国爱好者们,希望喜欢三国的朋友一起讨论,加深对传奇三国时代的了解 建立数据环境: -- 抽取三国超一流谋士TOP 10数据 DECLARE @t1 TA ...

  3. 也许游戏 它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  ...

  4. 用 CPI 火焰图分析 Linux 性能问题

    https://yq.aliyun.com/articles/465499 用 CPI 火焰图分析 Linux 性能问题   yangoliver 2018-02-11 16:05:53 浏览1076 ...

  5. SpaceSyntax【空间句法】之DepthMapX学习:第四篇 凸多边形图分析[未完]

    这一篇正式讲解分析类型中的第一个,凸多边形分析,流程图参照上一篇的. 博客园/B站/知乎/CSDN @秋意正寒(我觉得这一篇肯定很多盗图的,那么我在版头加个本篇地址吧) https://www.cnb ...

  6. NLP(十二)依存句法分析的可视化及图分析

      依存句法分析的效果虽然没有像分词.NER的效果来的好,但也有其使用价值,在日常的工作中,我们免不了要和其打交道.笔者这几天一直在想如何分析依存句法分析的结果,一个重要的方面便是其可视化和它的图分析 ...

  7. 火焰图分析CPU性能问题

    1.找出应用程序或内核消耗CPU的PID 2.执行perf record 命令,记录该PID的行为 perf record -a -g -p 14851 -- sleep 30 --30秒后退出 3. ...

  8. 关于图算法 & 图分析的基础知识概览

    网址:https://learning.oreilly.com/library/view/graph-algorithms-/9781492060116/ 你肯定没有读过这本书,因为这本书的发布日期是 ...

  9. G6:AntV 的图可视化与图分析

    导读 G6 是 AntV 旗下的一款专业级图可视化引擎,它在高定制能力的基础上,提供简单.易用的接口以及一系列设计优雅的图可视化解决方案,是阿里经济体图可视化与图分析的基础设施.今年 AntV 11. ...

随机推荐

  1. php正则表达式过滤空格 换行符 回车

    我整理了几个比较适合的实例了,对于它们我们是有很多站长都测试过并用过了,不过文章最后我的总结也是生重要的哦,至于原因我也说不上了,因为chr是ascii编码了所以有时浏览器会自动转成ascii,特别像 ...

  2. C#-获取CPUID

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  3. Python练习1-文档格式化成html

    文档格式化成HTML 把文档格式化成了THML,并没有处理所有thml规则,只是处理了一部分,功能不重要,重要的是复习熟悉下Python对文档的处理细节.毕竟Python大多数给我的印象都是处理文档. ...

  4. Swift系列三 - 函数

    函数在任何语言中都是存在的,Swift中函数更加灵活. 一.函数的定义 1.1. 有返回值(形参默认是let,也只能是let) func pi() -> Double { return 3.14 ...

  5. base标签的作用

    base标签可以自定义当前页面的相对路径,不受浏览器当前地址栏的影响,以base标签定义的地址为准 (只对相对路径起作用) <head> <meta charset="UT ...

  6. 多种方法实现实现全排列 + sort调用标准函数库函数的简述

    全排列:所有不同顺序的元素组组成的一个集合.这里使用使用递归实现全排列. 使用递归算算法呢,首先我们先找一下结束的条件:我们要对一组元素(这里使用数字举例)实现全排列,临界条件就是递归到只有一个元素的 ...

  7. Linux 内核调度器源码分析 - 初始化

    导语 上篇系列文 混部之殇-论云原生资源隔离技术之CPU隔离(一) 介绍了云原生混部场景中CPU资源隔离核心技术:内核调度器,本系列文章<Linux内核调度器源码分析>将从源码的角度剖析内 ...

  8. Java中浮点数的坑

    基本数据类型 浮点数存在误差 浮点数有一个需要特别注意的点就是浮点数是有误差的,比如以下这段代码你觉得输出的什么结果: public class Demo { public static void m ...

  9. 13.API基础

    1.API 1.1 API概述-帮助文档的使用 什么是API API (Application Programming Interface) :应用程序编程接口 java中的API 指的就是 JDK ...

  10. 微服务&#183;API文档

    阅文时长 | 3.92分钟 字数统计 | 2754.05字符 主要内容 | 1.什么是API文档 2.API文档的使用 3.声明与参考资料 『微服务·API文档』 编写人 | SCscHero 编写时 ...