作为电子计算机系统中一个非常重要的协处理器,GPU从1990年代第一次出现以来,就一直在专职负责图形渲染和处理的相关工作。然而随着时间的推移,技术和需求的不断变化,GPU已经逐渐走出了这种定位。特别是近几年,凭借突出的并行运算能力和高性能的内存使用效率,GPU已经被广泛应用于高级实验室仿真和深度学习编程等诸多的需要高强度运算的非图形处理领域。
MIT计算机科学和人工智能实验室(CSAIL)的前任研究员Todd Mostak就将GPU应用在了数据库领域。他将传统数据库管理系统中的运算核心——CPU替换为GPU,研发出了一种全新的分析型数据库和一个基于地理位置可视化的数据管理平台,名为MapD。
据Todd
Mostak介绍,MapD一共有两大特点。一是运算速度快:MapD可以在1毫秒的时间内处理数以亿计的数据点(data
points),相比传统的数据库管理系统快了100倍。二是可视化:正如名称里“Map”(地图)所表达的,MapD可以实时地将所有处理过的数据点以地理信息图表的方式展现出来,例如在世界地图上标记出当前的Twitter话题活跃度(如下图所示,这里是MapD系统一个名为 Tweetmap
的实现样例)。
自从去年3月份发布第一个商用版本以来,MapD以GPU高速管理数据库的方式已被各行业的用户广泛接受,目前包括Verizon等美国电信巨头,以及媒体、财经和广告业的各大公司都是MapD的忠实用户。甚至在今年10月,专门为美国中央情报局(CIA)服务的风险投资公司In-Q-Tel也投资了MapD,宣称他们需要MapD为美国情报系统研发具有特定数据处理能力的版本。
Todd Mostak表示:“CIA掌握着大量的地理空间数据,他们需要对这些数据进行有效的组织、可视化以及实时查询。对于情报系统来说,这几乎是一种刚需。”
将GPU作为真正的处理核心
一般来说,GPU是专为并行计算而设计的专用协处理器,通常其内部都集成了数千个高速运算核心,可以并行处理计算机屏幕上每个像素点的单独显色以渲染整个图像。并且,由于GPU通常都可以直接搭配高带宽存储器协同工作,因此通常都比使用一般RAM的CPU的运算速度快一个数量级。
目前,虽然一些数据库已经使用了GPU,但他们普遍存在一个重要的设计缺陷。Todd
Mostak表示:“目前大部分的数据库管理方案都是将数据库存储在CPU一侧,当接到用户的数据请求时,再将数据搬移到GPU一侧进行处理,然后再将处理结果移回CPU进行存储。也就是说,GPU并非真正的系统核心。这种机制决定了:即使你通过GPU加快了数据处理速度,但把处理结果搬回CPU的过程仍然浪费了太多时间。”
与此不同的是,Todd
Mostak将GPU作为了MapD系统的真正核心。MapD并没有像传统系统那样将数据全部存储在CPU一侧,而是利用高速缓存机制将尽量多的数据直接存储在多内核协同工作的GPU一侧,这样一来就避免了数据搬移过程中浪费的大量时间,大大提升了运算效率。
在MapD系统中,每个GPU都有自己的缓冲池,即利用高速缓存机制将最常访问的数据直接存储在GPU一侧,而不再是硬盘。这样一来,在数据库需要反复查询同一个数据点时(这种场景在实际应用中非常常见),MapD就可以直接从GPU一侧的高带宽存储器中直接访问数据,而不是从CPU或硬盘。
Todd Mostak表示,通过这种机制,MapD可以提供相比传统数据库管理系统快两到三个数量级的性能。
强大的数据处理能力
MapD曾分析过一个被认为是大规模数据分析能力基准测试的庞大数据集合,即高达12亿条数据记录的纽约市出租车数据集。通过一家第三方测试机构的测试,MapD的运行速度比许多先进的CPU数据库管理系统快74倍,许多数据查询任务甚至能够在毫秒内完成。(如上图所示为纽约市出租车数据集合的分析截图)
在其他示例中,MapD的表现也同样出色。例如,通过“Tweetmap”,用户可以搜索所有Twitter上的热门话题,并查看这些话题在世界各地实时的地理位置分布。在另一幅美国地图中,用户还可以通过MapD查看2001年以来美国所有的政治捐款,并以不同颜色标明不同的政党(例如红色代表共和党,蓝色代表民主党)。
总体上说,不同行业的客户对MapD系统的具体需求也不同,但本质都是通过其高速的数据处理能力和基于地理位置的展示能力协助他们做出合理的商业决策。例如金融服务机构和对冲基金可以通过该系统来监控欺诈行为和做出投资决策;广告代理商们可以通过该系统来评估客户们对各种广告的不同反馈;
社交媒体公司则可以通过该系统追踪全球用户的使用情况。
美国电信巨头Verizon也是MapD的用户之一,他们每周都会利用MapD系统对8500万用户更换SIM卡的行为展开分析。此前在使用传统的数据库管理系统时,这种分析通常要耗费好几个小时,因为效率太低,因此只能好几个月分析一次。近期,Verizon就通过MapD系统的每周分析报告发现了一个隐藏多年的Bug,这一Bug导致每年有上百万次无意义的SIM卡更换,不但大大浪费了服务资源,更造成了用户的反感。
Todd Mostak说:“MapD这次可帮Verizon省了一大笔钱,但更重要的在于用户体验的提升,因为通常来说,频繁地更换SIM卡毕竟不是什么值得高兴的事。”
从论文写作到MapD
研发MapD系统的最初想法来自于2012年,那时Todd Mostak正在哈佛大学写他的政治学硕士论文,过程中需要查询大量的历史资料。
使用以CPU作为处理核心的数据库系统做这些资料查询显然不是一件轻松愉快的工作。很多次,Todd
Mostak在睡觉之前敲入一个查询命令,结果第二天醒来发现系统提示参数输入错误,这种酸爽的用户体验简直让人崩溃。按照Todd
Mostak的原话来说就是:“那是一个令人沮丧的经历。”
恰好,当时Todd
Mostak选修了由MIT数据库研发组教授的CSAIL数据库课程。当时的授课教师有两位:一位是数据库领域的布道者Michael
Stonebraker,他是MIT计算机科学的兼职教授,创立了Postgres、Ingres和Vertica等诸多流行的数据库系统;另一位是Sam
Madden,他是MIT电气工程和计算机科学的教授,现在是MapD的特聘顾问。
为了加快论文进度,Todd
Mostak通过自己在CSAIL数据库课程中学到的知识,自己研发了一个简易的数据库系统,也就是MapD的早期雏形。这一系统当时令CSAIL数据库课程的导师们印象深刻,当然也大大加快了Todd
Mostak的论文进度。2013年,在论文最终顺利通过之后,导师们邀请Todd Mostak以研究员的身份加入CSAIL,进一步完善MapD。
在Sam
Madden导师的鼓励下,Todd Mostak开始在MIT的工业联络计划(ILP)中公开展示MapD。那时开始有公司找到Todd
Mostak,并表示愿意出高价购买他的研究成果。Todd
Mostak说:“当时,我对他们说这只是一个纯粹的学术研究项目。虽然并没有出售,但这件事开始让我思考一个更普遍的问题,即如何实时地从大数据中获取有效信息。”
2014年1月,Todd Mostak正式推出了MapD系统,并加入了ILP计划中的初创公司社区,在那里可以与其他众多MIT附属的初创公司建立联系或者合作,从那时开始Todd Mostak打算把MapD系统与地图结合起来,以可视化的方式展示信息。
此后,成立于马萨诸塞州剑桥的MapD开始逐渐步入正轨。2014年3月,MapD在Nvidia举办的一场初创公司大数据计算比赛中赢得了10万美元奖金(现在Nvidia已经成为了MapD的合作伙伴)。当年秋天,MapD又从Nvidia和Google那里获得了200万美元的种子轮融资,2015年又获得了1000万美元的A轮融资。
现在,MapD已经在旧金山新总部展开了新一轮的扩张。在越来越多的企业开始通过云端启用GPU编程的大趋势下,MapD希望在旧金山收获更多的客户。Todd Mostak表示:“我相信在旧金山我们能收获更多的用户,我甚至觉得MapD才刚刚成立。”
本文作者:恒亮
本文转自雷锋网禁止二次转载,原文链接