一、为什么需要GPU数据库
CPU
CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂; 所以CPU一般由几个针对顺序串行处理而优化的内核组成
GPU
GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境. 所以一般GPU具有一个大规模并行架构,由数千个更小,效率更高的内核组成,用于同时处理多个任务。
GPU和传统数据库
GPU和数据库各有所长,GPU擅长处理需要大量数学密集型运算的任务,比如视觉模拟、超快数据库事务、计算视觉和机器学习等任务,而数据库擅长有特定要求的计算,如比较复杂的连接计算
结论
CPU: 擅长逻辑控制, 串行的运算. 即复杂的,通用类型计算.
逻辑控制, 串行运算, 通用计算
GPU: 擅长大规模并发计算.
高并发(简单)运算, 高吞吐量运算, 计算密集(ALU单元)
二、主流GPU数据库介绍
MapD
MapD成立于2013年,总部位于旧金山,是一家为企业提供图形处理器GPU数据分析服务的初创企业,“MapD率先使用图形处理单元(GPU)来以毫秒为单位来分析数十亿行的数据,比传统的基于CPU的系统快。“通过开源MapDCore数据库和相关的可视化库,MapD正在为所有人提供世界上最快的分析平台。”硬件价格的下降和社交媒体分析工具的进步使得可视化技术更为便利,然而,对于没有强大工作站或研究人员的企业来说,把大数据变成易于理解的形式还是一个耗时的过程。MapD做的就是将图像处理器引擎与可视化分析技术相结合,令数据分析师以及数据科学家能够对上亿的数据进行查询。最初,MapD在Amazon Web Services(AWS),Google Cloud,Microsoft Azure和IBM SoftLayer上提供云服务,但MapD现在也可以用作内部部署软件.
目前mapd有开源版,github地址为
https://github.com/mapd/mapd-core
另外还有一个开源图表库
https://github.com/mapd/mapd-charting
Kinetica
Kinetica 利用图像处理芯片提供计算支持,允许企业使用机器学习,商业智能分析和可视化技术更快速地分析海量数据,支持Google Cloud、Amazon Web Services,以及 Microsoft Azure 等云服务器。该公司的收入模式为按年收取服务订阅费用,旗下客户均是美国政府机构和知名企业,包括美国陆军,国家安全局,保洁,葛兰素史克,以及 IronNet Cybersecurity。
目前有试用版本,整体的操作分析跟mapd很像,大家可以到官网试用体验。
还有一些网上列举的GPU数据库,不过个人没有研究过,这里仅仅列出,供参考:
BlazingDB
Blazegraph
PG-Strom