l: 为 k, q, 和 qSQL 提供的新型高性能运行时
l: 为 k, q, 和 qSQL 提供的新型高性能运行时
l 是为 k4, q, 和 qSQL 设计的新型运行时,这些是华尔街高频交易和金融服务领域广泛使用的数组编程语言和数据库工具。通过实现透明的 SIMD、自动并行化以及在压缩向量上的原生操作,l 旨在提供一个更快的执行引擎,而无需更改现有的 k/q 代码。
在压缩向量上的原生执行
l 的性能驱动力在于使用压缩向量作为主要的执行单元。l 不会在执行计算之前在内存中重建完整的数组,而是其原语直接在压缩结构上运行。这种方法减少了内存与 CPU 之间的数据移动量,解决了常见的硬件瓶颈问题,即在计算能力达到极限之前,内存带宽就已经耗尽。
该压缩模型的主要特征包括:
- Unified Format: 数据在磁盘、内存和进程间通信 (IPC) 中保持单一格式。
- Reduced Memory Footprint: 向量是自动压缩的,从而优化了缓存容量。
- Direct Computation: 原语在静态数据和传输数据上直接进行操作,消除了对单独解码过程的需求。
透明硬件加速
L 自动根据硬件目标和正在处理的数据大小来选择最高效的执行路径。开发者编写标准的 k/q 代码(例如,sum x),运行时就会确定最佳执行策略,而无需手动标注。
执行路径
- SIMD Vectorization: l 利用 Apple Silicon 上的 NEON 向量化和 x86 架构上的 AVX-512 支持。
- Automatic Threading: 运行时会根据向量长度智能地应用线程化。较小的向量通过 SIMD 处理,而较大的向量则利用 SIMD 和多线程分发 (fan-out) 的组合。
- Hardware Offloading: 运行时支持将计算卸载到 GPU 和 NPU。
兼容性与数据库支持
L 提供与 k4 语法、q 和 qSQL 的完全兼容性,允许用户在不重写的情况下运行现有的惯用法和代码。这 mencione 这包括对以下内容的原生支持:
- Columnar tables
- Dictionaries
- Partitions
- Splays
作为一个完全兼容 qSQL 的数据库,l 支持所有标准的连接 (joins) 和分区逻辑,旨在保持与 kdb+ 生态系统相关的“传奇速度”,同时提供 q 解释器的独立实现。
社区反馈与分析
行业观察者和开发者注意到,l 进入了一个数组语言(包括 APL, BQN, 和 J)的专业化设计领域,在这些领域中,专有许可通常很常见。
社区关键洞察
- Market Position: 一些用户将 l 视为那些发现 kdb+ (由 Kx Systems 提供) 的商业许可费用过高的人的潜在替代方案。
- Production Goals: 与其他一些 k-family 实现不同,l 明确针对全生产级数据库兼容性和语言兼容性。
- Critiques: 开发者之间的讨论强调了该项目目前是闭源的,一些人认为这对语言运行时来说是一个采用障碍。此外,关于项目落地页的美学和“氛围感” (vibe-coded) 的讨论也一直存在。
"q 是 Kx Systems 开发的 kdb+ 的底层编程语言... L 是 q 解释器的独立实现。对于那些不得不勉强接受 kdb+ 商业许可的人来说——这将是一个受欢迎的替代方案。"
"与 klong/ngn/bqn 等不同... 该项目的目标是实现完全的生产级数据库兼容性(以及完全的语言兼容性)。"