哈佛/MIT学生创造GPU数据库,性能提升70倍

oschina
 oschina
发布于 2013年04月23日
收藏 95

2012年Todd Mostak 在哈佛中东研究中心攻读硕士研究生,他试图为自己的论文主题绘制和处理阿拉伯之春期间发布的4千万Twitter帖子,但处理这些帖子数小时耗费了甚至数 天。没有现成的系统能帮助他实现大数据集快速互动分析,于是他一边读MIT的数据库课程,一边开发出了利用GeForce Titan GPU处理数据的并行数据库系统MapD(演示,非论文)。基于GFU的数据库系统比基于CPU的数据库性能提升了70倍,而整个硬件只花了5千美元。Todd Mostak计划在开源许可证下发布MapD。如果你感兴趣,可以在哈佛的WorldMap网站上浏览包含1.25亿Twitter帖子的数据集,体验其快速的响应。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:哈佛/MIT学生创造GPU数据库,性能提升70倍
资讯来源:Solidot
加载中

最新评论(94

CheckStyle
CheckStyle

引用来自“李志远”的评论

引用来自“CheckStyle”的评论

引用来自“三毛々”的评论

引用来自“仰望星空”的评论

但是IO性能摆在那的呀。我表示..整体架构不清楚。单单用GPU实现不太可能吧..

我也觉得。木有测试方法。。。磁盘的io能力摆在那里的。。。就靠个GPU解决所有问题,是不是有点过了。。。。也许他的数据都存在内存里面的吧,然后拿去和用硬盘的mysql等等。。。。

是啊,一般稍微有些常识的程序员,都会思考这个问题...

twitter的一条信息有180个字限制,假设使用utf8进行存储的话,最大就是360字节,然后乘上1.25亿,转换成G的话,45GB(不知道算的对不对),的数据量拿个大内存或者上SSD的话,速度还是很可以的~~

结合文章, 关键看是做什么处理. HackerNews上,大家还是讨论得比较细的
i19
i19

引用来自“CheckStyle”的评论

引用来自“三毛々”的评论

引用来自“仰望星空”的评论

但是IO性能摆在那的呀。我表示..整体架构不清楚。单单用GPU实现不太可能吧..

我也觉得。木有测试方法。。。磁盘的io能力摆在那里的。。。就靠个GPU解决所有问题,是不是有点过了。。。。也许他的数据都存在内存里面的吧,然后拿去和用硬盘的mysql等等。。。。

是啊,一般稍微有些常识的程序员,都会思考这个问题...

twitter的一条信息有180个字限制,假设使用utf8进行存储的话,最大就是360字节,然后乘上1.25亿,转换成G的话,45GB(不知道算的对不对),的数据量拿个大内存或者上SSD的话,速度还是很可以的~~
JennerMicheal
JennerMicheal
大家的辩论比文章要精彩千倍万倍.....
CheckStyle
CheckStyle

引用来自“弦歌™”的评论

我明白@李马燕的意思,浮点计算,实际上就是说,如果同样计算“1+1+1+1+1……”,目前主流的GPU是完胜主流CPU的(也可以说同样性能的GPU是和同样的CPU是没有区别的),但CPU远远不止做这样简单的事情,也许在实际程序里,要计算“398*15546+12580/100”等等很复杂的指令(最典型的就是诸如Intel的MMX指令),GPU不认识呀,就得转换成很多个"1+1”或“1-1”等简单指令。但如果这个工作要是在写程序,或者在编译的时候,就考虑并且转换好。那当然能最好发挥GPU的性能。题外话,所谓“精简指令”和“复杂指令”之争,也是同样的道理,很多科学家认为,CPU是硬件,只要处理一些基本功能就好了,功能简单了,可以更方便提升性能和效率。而软件更擅长处理复杂的事情。但Intel不这么认为,它觉得CPU可以处理更多事情,于是往CPU里加很多附加功能(指令),把物理架构做得越来越复杂。虽然从道理上来说,Intel是弱势的一面,但在市场上,他赢了。

但如果这个工作要是在写程序,或者在编译的时候,就考虑并且转换好
-----
你是卖安腾的? 当年EPIC的簇拥者也这么鼓吹: 编译器可以搞定, 编译器搞不定? 你的程序可以专门优化

CheckStyle
CheckStyle

引用来自“弦歌™”的评论

引用来自“CheckStyle”的评论

引用来自“弦歌™”的评论

引用来自“CheckStyle”的评论

引用来自“弦歌™”的评论

引用来自“李马燕”的评论

GPU是不是显卡?这玩意儿和数据库啥关系?

目前主流的GPU的计算能力和处理性能比CPU高多了,但GPU的指令不通用。不能处理更复杂多变的情况。简而言之,GPU就是专门用于显示指令计算的、但性能比通用型CPU高很多的专用CPU。

GPU,用个形容词来形容:"傻快"
CPU不光要做数值运算,更重要的是做逻辑运算. 很多人被厂商广告里的"浮点运算"所迷惑,以为浮点快就是等于性能高. 更悲哀的是,居然很多程序员都这么认为---看来进入这个行业的文科生确实越来越多了

不仅仅是“傻”快,而是从晶体管数、制程、运算能力全面超越目前的通用CPU(比如Intel和AMD的CPU),近两年,GDP的发展基本很缓慢了,就是为了等待CPU速度赶上来,因为性能再高,在桌面也用不上了。不要说什么“数值运算”和“逻辑运算“,“逻辑运算”归根结底还不是”数值运算“吗?只是CPU对指令进行了优化,直接把一些复杂的逻辑运算直接做成指令,优化了计算过程而已。而GPU不支持这些指令,只是简单地把复杂逻辑运算而已“傻计算”。说什么“逻辑运算”和“数值运算”的,知道“精简指令”和“复杂指令”的区别吗?知道为什么“精简指令”虽然各方面占优,却在市场上败给Intel的“复杂指令”吗?这个和GPU-CPU的对比有点类似(当然不完全相同)

敢情你把乱序执行,分支预测..之类的为逻辑运算优化的特点忘了?

你的回答正好说明了我的观点,这些是逻辑运算吗?之所以有“乱序执行”和“分支预测”,是因为CPU做了很多软件应该做的事情。把很多个运算结合到一条指令传入CPU,而可能后面的计算就需要用到前面的结果,才需要“乱序执行”。总之,其实我和你辩论的不是一个方向,我说的是,从制程、晶体管数等方面,同时代的GPU性能要大大超过CPU,从纯计算能力来说,也是GPU比CPU要快。至于CPU内部(特别是复杂指令集的CPU内部)承担了很多软件要做的工作,所以总体效率(或者说用于运行大多数通用程序的效率),是CPU占优。
——————————————————————
另外,制程——我指的是比如45nm,40nm等指标。

哦, 2013年的台积电制程去PK 2010年的Intel制程? 你咋不去PK 130nm制程呢? 这样赢面更大
i好人大叔am
i好人大叔am
不是都拿GPU去挖矿了吗
Kevin19701
Kevin19701
哇咔,沙发,那么快。
Jarry_liu
Jarry_liu
我操,这些人太牛逼了!
weiwotianyuan
weiwotianyuan

引用来自“弦歌™”的评论

我明白@李马燕的意思,浮点计算,实际上就是说,如果同样计算“1+1+1+1+1……”,目前主流的GPU是完胜主流CPU的(也可以说同样性能的GPU是和同样的CPU是没有区别的),但CPU远远不止做这样简单的事情,也许在实际程序里,要计算“398*15546+12580/100”等等很复杂的指令(最典型的就是诸如Intel的MMX指令),GPU不认识呀,就得转换成很多个"1+1”或“1-1”等简单指令。但如果这个工作要是在写程序,或者在编译的时候,就考虑并且转换好。那当然能最好发挥GPU的性能。题外话,所谓“精简指令”和“复杂指令”之争,也是同样的道理,很多科学家认为,CPU是硬件,只要处理一些基本功能就好了,功能简单了,可以更方便提升性能和效率。而软件更擅长处理复杂的事情。但Intel不这么认为,它觉得CPU可以处理更多事情,于是往CPU里加很多附加功能(指令),把物理架构做得越来越复杂。虽然从道理上来说,Intel是弱势的一面,但在市场上,他赢了。

硬件简单化了,软件就要庞大化和复杂化了,而硬件所谓的复杂仅仅是利用数字逻辑去设计电路而已,所带来的问题却只是增加了功耗自己达到一定量级时的性能下降,就好比复杂指令集和精简指令集之间并没有明显界限一样,这个只是一个权衡的结果!再说中央处理器的作用可不只是计算,还有逻辑判断自己跳转,判断和计算不是一个概念,1可以做判断,但无法做判断,这就是指令jcxz cmp 重要的意义!
弦歌
弦歌

引用来自“CheckStyle”的评论

引用来自“弦歌™”的评论

引用来自“CheckStyle”的评论

引用来自“弦歌™”的评论

引用来自“李马燕”的评论

GPU是不是显卡?这玩意儿和数据库啥关系?

目前主流的GPU的计算能力和处理性能比CPU高多了,但GPU的指令不通用。不能处理更复杂多变的情况。简而言之,GPU就是专门用于显示指令计算的、但性能比通用型CPU高很多的专用CPU。

GPU,用个形容词来形容:"傻快"
CPU不光要做数值运算,更重要的是做逻辑运算. 很多人被厂商广告里的"浮点运算"所迷惑,以为浮点快就是等于性能高. 更悲哀的是,居然很多程序员都这么认为---看来进入这个行业的文科生确实越来越多了

不仅仅是“傻”快,而是从晶体管数、制程、运算能力全面超越目前的通用CPU(比如Intel和AMD的CPU),近两年,GDP的发展基本很缓慢了,就是为了等待CPU速度赶上来,因为性能再高,在桌面也用不上了。不要说什么“数值运算”和“逻辑运算“,“逻辑运算”归根结底还不是”数值运算“吗?只是CPU对指令进行了优化,直接把一些复杂的逻辑运算直接做成指令,优化了计算过程而已。而GPU不支持这些指令,只是简单地把复杂逻辑运算而已“傻计算”。说什么“逻辑运算”和“数值运算”的,知道“精简指令”和“复杂指令”的区别吗?知道为什么“精简指令”虽然各方面占优,却在市场上败给Intel的“复杂指令”吗?这个和GPU-CPU的对比有点类似(当然不完全相同)

敢情你把乱序执行,分支预测..之类的为逻辑运算优化的特点忘了?

你的回答正好说明了我的观点,这些是逻辑运算吗?之所以有“乱序执行”和“分支预测”,是因为CPU做了很多软件应该做的事情。把很多个运算结合到一条指令传入CPU,而可能后面的计算就需要用到前面的结果,才需要“乱序执行”。总之,其实我和你辩论的不是一个方向,我说的是,从制程、晶体管数等方面,同时代的GPU性能要大大超过CPU,从纯计算能力来说,也是GPU比CPU要快。至于CPU内部(特别是复杂指令集的CPU内部)承担了很多软件要做的工作,所以总体效率(或者说用于运行大多数通用程序的效率),是CPU占优。
——————————————————————
另外,制程——我指的是比如45nm,40nm等指标。
返回顶部
顶部