面向K与Q的新运行时发布
速览
该运行时专门为K和Q设计,旨在提升相关任务的运行效率。其发布可能对依赖K和Q的应用场景产生积极影响,具体性能改进有待进一步验证。
AI 深度解读
背景
k 和 q 是 kx Systems 公司开发的高性能编程语言及其数据库查询语言,广泛应用于金融、物联网等领域的时序数据处理。k 作为底层向量语言,q 是上层 SQL 风格查询语言,基于 k4 引擎和 qSQL 语法。多年来,这套技术栈以极致的内存效率和列式存储著称,但面对现代硬件(多核、SIMD、GPU、压缩内存)的潜力,原有运行时的向量执行模型尚未完全释放这些能力。日前,一个名为 l 的新运行时项目在 Hacker News 上公布,旨在为 k 家族语言提供一条直接通向现代高性能计算的路径。
核心内容
l 是一个专为 k4、q 和 qSQL 设计的新运行时,它完全兼容现有语法和代码,但底层引擎针对现代内存架构进行了重写:核心思想是压缩向量即执行单元——原始操作直接作用于编码后的字节,不再重建完整的数组。这意味着数据在存储、内存和传输中始终保持压缩状态,运行时自动选择执行路径(标量、SIMD、多线程或硬件卸载),用户无需任何注解。
兼容性
- 完全运行现有的 k4、q、qSQL 语法、惯用法和代码,无需重写。
- 表、字典、时间序列等数据结构保持不变。
- 提供优化的列式表支持。
压缩
- 数据在驻留(磁盘)、内存和传输全程保持压缩。
- 原语直接对压缩向量执行,无需解码,因此移动的数据量更少。
- 每层统一使用压缩字节,优化缓存容量。
透明执行
运行时自动选择执行路径:标量、SIMD、多线程或硬件卸载。例如 sum x 这样的表达式,l 会根据向量大小和硬件自动分解:
- 小向量:SIMD reduction 直接计算。
- 大向量:多线程分片求和,再汇总。
- 支持 NEON(Apple Silicon)、AVX-512(x86)、GPU/NPU 卸载。
- 所有目标共享同一二进制文件,无需额外标记。
性能基准
公布的三组基准测试结果(均为几何平均,对比参考实现):
| 基准集 | 加速倍数 | |--------|----------| | TSBS(时序基准套件)geomean vs reference | 2.35× | | master-suite overall geomean | 3.57× | | db-benchmark 总查询加速 | 3.16× | | db-benchmark 每查询 geomean | 3.08× |
细分查询中,lastpoint 加速达 49.18×,single-groupby-1-8-1 为 6.40×。
实例
- qSQL 在压缩列上执行:用一个 8658.5 万行的
AN_pageView表,单 CPU 执行select sum isBot, count i, avg isBot by date.month from AN_pageView,无需解码即可直接计算,结果与 q 一致。 - 同一原语的不同执行路径:
avg 1 2 3 4 5 6触发 SIMD reduction;avg 1 2 3 ... 999999则自动分发给多个 worker 线程求和再平均;远程执行也可通过hopen连接实现。
匿名邮件组
项目采用经典技术邮件列表风格,仅凭邮箱加入,无个人资料、无目录,用于发布笔记、基准、设计问题和版本日志。
关键要点
- 完全兼容:l 运行时直接运行现有的 k4、q、qSQL 代码,无需任何修改,保持列式表、字典、时间序列的工作方式。
- 压缩贯穿始终:数据在磁盘、内存和传输中保持压缩状态,原语直接在压缩向量上执行,避免解码开销,减少内存带宽消耗。
- 透明自动并行:运行时根据数据规模和硬件自动选择最佳执行路径(标量/SIMD/多线程/GPU/NPU),用户只需写标准 q/k 代码。
- 显著性能提升:在 TSBS、master-suite、db-benchmark 三个标准基准套件上,几何平均加速达 2.35× ~ 3.57×,部分查询(如 lastpoint)加速近 50×。
- 跨平台统一二进制:支持 Apple Silicon 的 NEON、x86 的 AVX-512、GPU 和 NPU 卸载,所有目标使用同一编译产物。
- 远程执行内置:通过
hopen支持远程连接,与现有 q 远程调用协议兼容。 - 社区形式复古:采用匿名邮件列表而非现代论坛,专注技术讨论。
意义与影响
l 运行时标志着 k/q 生态在底层执行层面的一次重要进化。它没有改变语言本身——这正是其价值所在:用户现有的所有代码、惯用法和知识依然有效,但运行速度获得数量级提升。对于金融机构、物联网平台等依赖 kdb+(基于 k4/q)处理万亿条时序数据的场景,l 意味着可以在不重构系统的情况下直接获得数倍性能提升,尤其适合内存带宽受限的现代环境——现代硬件的瓶颈往往不在计算,而在数据搬运,而 l 通过压缩向量直接执行彻底减少了数据移动。
从技术趋势看,l 体现了“语言不变,引擎换新”的思路:保留 k/q 极简、高效的抽象,但在底层利用 SIMD、多线程、GPU 等能力。这与 Snowflake 等云数仓对 SQL 的透明加速理念相似,但 l 更激进地让压缩成为第一等执行单元。若能成功推广,可能吸引更多开发者重新审视 k/q 在超低延迟、高吞吐数据处理中的地位,甚至推动 kx Systems 官方将类似特性纳入下一代 kdb+。
此外,项目未提及公司与组织背景,以匿名邮件列表形式发布,颇有早期 Unix/C 技术社区的风格。这种“小而精”的发布方式本身也呼应了 k 语言“极致简洁”的传统。未来如果 l 开源或提供商业许可,将在高性能计算社区引发更广泛关注。
