前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PG-Storm:让PostgreSQL在GPU上跑得更快

PG-Storm:让PostgreSQL在GPU上跑得更快

作者头像
GPUS Lady
发布2018-03-30 13:57:01
1.6K0
发布2018-03-30 13:57:01
举报
文章被收录于专栏:GPUS开发者

PostgreSQL的扩展PG-Storm允许用户自定义扫描方式,将CPU的密集型工作负载转移到GPU处理,从而利用GPU强大的并行执行能力完成数据任务。在处理器内核数量和RAM带宽上,GPU有得天独厚的优势。GPU通常有成百上千的处理器内核,RAM带宽也比CPU大几倍,可以并行处理大量数值计算,因此其运算十分高效。

PG-Storm基本基于两点思想:

  • 运行中本地GPU代码生成
  • 异步流水线执行模式

在查询优化阶段,PG-Storm检测给定查询是否完全或部分可以在GPU上执行,而后确定该查询是否可转移。如果该查询可以转移,那么PG-Storm则在运行中创建GPU本地二进制文件的源代码,在执行阶段前启动即时编译进程。接下来,PG-Storm将提取行集装载入DMA缓存(一个缓存区的大小默认为15MB),并异步启动DMA传输和GPU内核执行。CUDA平台允许这些任务在后台执行,因此PostgreSQL可以提前运行当前进程。通过GPU加速,这些异步相关切分也隐藏了一般延迟。

装载PG-Strom后,在GPU上运行SQL并不需要专门的指示。它允许允许用户自定义PostgreSQL的扫描方式,而且提供了可以在GPU上运行的扫描/联接逻辑的其他可行方案。如果预计费用合理可行,任务管理器则放入自定义扫描节点,而非内置查询执行逻辑。

下图是PG-Strom和PostgreSQL的基准测试结果,横坐标为表数量,纵坐标为查询执行时间。在此次测试中,所有相关的内部关系都可以一次性地加载到GPU RAM上,预聚集大大减小了CPU需要处理行数。测试代码详情可以查看这里

从上图中可以看出,PG-Strom比单纯PostgreSQL快很多。

以下是几种可以提高PostgreSQL性能的方法:

  • 同类纵向扩展
  • 异类纵向扩展
  • 横向扩展

更多信息请点击 http://www.gpuworld.cn/article/show/477.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档