GPU承诺会彻底改变大数据分析领域,从当前来看,这并不是虚言,当我们数据量达到一定级别的时候,我们一定会转向使用GPU。大多数的数学密集型应用都包含机器学习框架,也都会利用GPU的并行处理能力来加速计算。

GPU和数据库各有所长,GPU擅长处理需要大量数学密集型运算的任务,比如视觉模拟、超快数据库事务、计算视觉和机器学习等任务,而数据库擅长有特定要求的计算,如比较复杂的连接计算。下面为大家介绍五款提供GPU加速的数据库解决方案产品,其中有三款是商业产品,剩下的是开源产品。

MapD

MapD是由麻省理工学院的研究人员ToddMostak 和Samuel Madden开发的一个新的大规模并行数据库,使用现成的GPU来处理复杂的空间和GIS的实时数据,自从首次公开之后,最近重新走进了了人们的视野中,MapD利用LLVM编译框架把SQL语句编译成GPU原生代码,另外,它还可以作为GPU的后备之选。

加速的另一个源头是公司每个GPU的本地存储,它们作为数据缓存的运行速度要比CPU缓存和内存快很多倍。MapD声称其GPU-powered装置要比同数量级的内存数据库和Hadoop装置快很多倍,但是实际来看这个说法可能要打个折扣,因为用来作对比的是高端昂贵的Nvidia Kepler K80 GPU。

Kinetica

Kinetica原本叫GPUdb,GPUdb这个名字可能就是在暗示,这是一个GPU驱动的数据库解决方案。它的最新版本改名叫Kinetica,不仅拥有常用的GPU加速方法,还可以利用NVIDIAGPU栈来进行加速,如NVIDIA NVLink技术,可以加快数据在GPU(或者GPU与CPU)之间的传输速度。

Kinetica也试图成为为现代企业所用的数据库产品,所以它不仅有尖端技术的应用,同时也集成了标准的商业数据库功能,例如 SQL-92 查询、支持聚类、故障恢复和一键安装。 

BlazingDB

BlazingDB是一个GPU驱动的数据库,主要针对使用PostgreSQL、MySQL或AmazonRedshift数据库的公司,BlazingDB的创造者声称BlazingDB的速度提升要远超其它产品。

BlazingDB的另一个亮点是其提供本地和云托管的产品实例。如果公司已经在Amazon和Azure上有数据,你可以启动一个BlazingDB实例,使用数据管道来管理数据,也可以比较查询性能。

该公司于六月提供商业版产品,同时还会提供一个免费的社区版产品。值得注意的是,目前该产品唯一支持的平台Ubuntu 14.04。

Blazegraph

并不是所有的数据库都支持通用的SQL系统,也会存在一些为特定类型的数据进行操作优化的数据库,例如图数据库就是用来分析对象之间的关系并呈现出来。

这种为特定数据类型存在的数据库也适合GPU加速。Blazegraph是一个使用java编写、为开源图数据库提供GPU加速的产品。Blazegraph的创造者表示这款产品的设计初衷是使用GPU加速现有的图形分析工作,并且速度要比CPU快200-300倍。  

PG-Strom 

流行的开源数据库PostgreSQL 有很多卖点:高扩展性、支持NoSQL / JSON格式的文件存储功能,以及一直与世界先进的技术保持同行。

PostgreSQL数据库本身是没有GPU加速的,但是有一个专门做GPU加速的项目PG-Strom,当收到一条查询优化语句时,PG-Strom就会给出提示是否切换到GPU,如果答案是肯定的,就会立即创建一个GPU-optimized进行GPU优化。

建立PG-Strom需要做一些准备,它需要NVIDIA CUDA工具包,需要从原始码编译。但一旦融入PostgreSQL作为自定义扫描的提供者,它和普通查询的用法一致,在进行GPU加速时也不需要重写。