Redian新闻
>
国产CPU执行SPL实现数据库运算的性能实用性测试

国产CPU执行SPL实现数据库运算的性能实用性测试

公众号新闻

任务背景

国际大环境就不用多说了。
对于数据库类的关键业务,全国产技术(国产 CPU+ 国产数据库)和国外主流技术在性能上相比还有不小的差距,经常需要借助分布式技术使用数倍的硬件才能获得类似的效果。
国产编程语言 SPL 的问世,可以方便程序员写出(比 SQL)更短小简单且计算量更低的代码(针对同样计算任务),能够对采用 SQL 的主流数据库形成明显的效率和性能优势。这样,在国产 CPU 上运行用 SPL 编写的数据库运算,就可能获得在国外 CPU 上运行 SQL 数据库的同样性能,甚至大幅超过。从而使数据库运算类的关键业务实现全国产技术替代。
本次测试设计了三个计算任务,涉及常规查询、复杂在线查询和离线跑批任务,分别在海光、龙芯、飞腾三款国产芯片上运行后看效果,并对比历史上在国外芯片上运行的情况。

系统配置


海光龙芯飞腾
CPU

2颗7285,

共64核

4颗3C5000,

共64核

2颗2500,

共128核

RAM256G256G256G
硬盘SSDSSDSSD
OS麒麟V10Loongnix麒麟V10
SPL开源社区版 202208


测试一

常规查询,TPCH 100G

TPCH 是国际标准,具体内容不再过多解释。
需要说明的是,TPCH 虽然有 22 个题,但仍然不能全面反映出被测系统对实际业务的响应性能。主要原因如下两点:
1.TPCH 中问题比较常规,没有涉及序运算,分步运算也较简单。而实际业务中有性能瓶颈的运算,其复杂度通常会远高于 TPCH,会大量涉及序运算和分步计算;
2. 测试问题已经被长期公开,有些数据库可能会专门做相应的优化;
当然,作为国际标准,也会有一定的参考价值。
TPCH 各题的 SPL 写法可参考 从 TPCH 测试学习性能优化技巧
测试结果(单位:秒)

海光龙芯飞腾Intel+Oracle
Q1254033131
Q224327
Q381915222
Q44129207
Q5152027225
Q6378135
Q7111821184
Q8132028192
Q9316358234
Q10101916215
Q1125433
Q1271913184
Q139719515237
Q1462220157
Q15122224155
Q169191513
Q1791325165
Q1872114344
Q1991616154
Q2071216175
Q21192424326
Q2223373348
AVG14.9528.526.09161.95
AVG-G9.6819.2218.36125.56
1. 海光、龙芯、飞腾均以 32 线程运算,初步的测试表明,大多数运算在这个并行数下最快。

2.AVG 行是 22 个题的平均时间;AVG-G 行是几何平均数,这样能反应出性能差距的倍数关系,规避某些题因为普遍都慢在简单平均时权重太大的问题。

3. 最右边对比列,硬件环境:2 颗 Intel 3014 1.7G 共 12 核,64G 内存;Oracle 运行 12 线程。因 CPU 主频及并行数不同,没有直接可比性,但仍有参考价值。

4.SPL 的 Q13 的表现有点特殊,因为 Q13 在这个线程数时,会占用过大内存;而 SPL 用 Java 实现,内存不足时会导致大量的垃圾收集时间。本次测试目标不是调出每个题的最优性能,就没有刻意再优化它。

测试二

离线数据准备,国家天文台聚类计算

这是国家天文台的实际业务,测试也采用了真实数据。

共 11 张照片,每张有 500 万天体,将位置(天文距离)邻近的天体聚合成一个计算属性。期望计算时间在数小时内,因为每天都会有新的照片拍摄出来,必须当天处理完。

本任务的数据量不大(<10G),但计算量非常大,和规模的平方成正比。

用某分布式数据库动用 100 个 CPU,仅处理 50 万天体也需要 3.8 小时,处理 500 万目标规模预计需要 15 天,不具有实用性。

详情可参考 SPL 提速天体聚类任务 2000 倍

测试结果(单位:小时)

并行数163264
海光3.912.392.21
龙芯6.654.043.96
飞腾9.275.333.64

更高并行没有表现出线性加速,主要是因为这个问题的特殊性,运算步骤之间有依赖关系,各个线程会有重复计算,无法做到线性提速。

三款芯片均可以在目标数据规模时达到任务要求的时间指标,性能都具有实用性。

测试三

在线查询,电商漏斗计算

电商漏斗是典型的有序计算,需要统计在指定时间窗口按指定次序发生多次事件中前 N 个的用户数,以便计算用户流失率为营销动作提供依据。
这是用户行为分析中很常见的计算,也是传统数据库很难高速完成的计算。
漏斗计算的细节和 SPL 加速方法可参考 SQL 提速:漏斗转化分析
本题是美国一家电商企业的真实案例,漏斗共有 5 步,计算难度较高。使用该企业在某个分站点一个月的脱敏数据,规模接近 4 亿行。这个运算用 SQL 在美国著名云数据仓库 Snowflake 的 Medium 级服务器(相当于 64 核)上三分钟未跑出结果,用户期望不超过 30 秒。
测试结果(单位:秒)
并行数321684
海光16182959
龙芯324159101
飞腾25304476

三款芯片在 32 线程时的运算性能可以达到或接近用户的期望值。

补充说明

1. 测试海光时还使用过 CentOS,性能表现要比使用麒麟时有较明显的优势(天文台运算 64 线在 1.5 小时内完成);测试飞腾时仅使用了麒麟,有可能其性能被操作系统影响;龙芯的 Loongnix 看起来表现较出色。
2. 在龙芯上还做过一个军方外围任务测试:在 82 亿行的脱敏海事数据中按时间段和经纬度范围查找经过船只,龙芯上 SPL 的执行性能大概相当于 Intel3014 的 50%,仍比 Intel8260 上的 MySQL 快了数倍到上百倍(和时间段宽度有关)。

初步结论

1. 海光的性能表现明显在三者中最强,性能大约是龙芯和飞腾的两倍。龙芯总体较飞腾稍弱,但差距不是很大,在长时间小并行任务中还能胜出。
2. 使用 SPL 编程时,这三款国产芯片都能胜任数据仓库类的复杂计算场景,能赶上甚至大幅超越国外芯片上国外数据库的性能,完全可应用于关键的数据计算任务。


重磅!开源SPL交流群成立了

简单好用的SPL开源啦!

为了给感兴趣的技术人员提供一个相互交流的平台,

特地开通了交流群(群完全免费,不广告不卖课)

需要进群的朋友,可长按扫描下方二维码

本文感兴趣的朋友,请到阅读原文去收藏 ^_^

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
全球首架国产C919飞机交付!最快2023年春可乘坐为了搞定数据库兼容性与性能,这些企业都做了啥?| Q推荐硬核观察 #758 Rust Linux 驱动程序实现与 C 代码相当的性能国产CIS,进入2亿像素新时代全国统一反CPU测试,你能拿几分?数据如何助力企业发展?从高性能计算、商业智能、数据库三个领域分享Kubernetes是如何实现数据持久化存储的?信创基础硬件:CPU、GPU、存储和整机阿里云已将 Serverless 数据库大规模落地,这是否代表着数据库的新风向?CPU和GPGPU市场现状及趋势全球首架国产C919交付机今日从上海浦东机场起飞5年将实现数据量超10倍增长,物联网漫游能力为何如此重要?国产CAD:你永远可以相信国产软件的创新力!高性能计算的次世代,要移平三座大山苹果M2芯片全系剧透:最高48核CPU、152核GPU向前走七律 威士忌与高尔夫数据库“焕然新生”:架构视角下,云原生数据库的创新实践 | Q推荐Npj Comput. Mater.: 二维材料量子点缺陷—建了数据库人算的精,不如天算的准。美国新一轮限制下,国产GPU、部分CPU皆正常出货骁龙8 Gen2跑分现身:全新X3超大核,CPU性能仅提升10%性能提升 2.5 倍!字节开源高性能 C++ JSON 库 sonic-cpp龙卷风健康快递 204什么是GPU?GPU和显卡的关系?GPU国产化布局?高尔夫界伟大的外号如何实现数据高效管理并反哺赋能业务?这场自动驾驶闭门会要聊点实的隐私计算专用芯片!清华系公司推出,性能可媲美1000个CPU核曝苹果Mac Pro明春面世:彻底告别英特尔CPU,性能暴涨300%SpringBoot + Flyway,自动化实现数据库版本控制颠覆三观!谷歌最新研究:用性能差的模型计算「相似度」反而更准?女性苦难史《落叶归根》1 - 门当户对 1 (多图)如何帮助企业实现数字化升级?华为透露了最新全套打法实现数据统计到Figure完成的一条龙服务,有这一款软件就够了没有自己的数据怎么发SCI?用好这些公共数据库和数据缺失处理方法,发表SCI并不难!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。