l: k, q, 및 qSQL을 위한 새로운 고성능 런타임

l: k, q, 및 qSQL을 위한 새로운 고성능 런타임

l은 k4, q, 및 qSQL을 위한 새로운 런타임으로, 월스트리트의 고빈도 매매(HFT) 및 금융 서비스에서 널리 사용되는 배열 프로그래밍 언어 및 데이터베이스 도구입니다. 투명한 SIMD, 자동 병렬화, 그리고 압축된 벡터에 대한 네이티브 연산을 구현함으로써, l은 기존 k/q 코드를 변경할 필요 없이 더 빠른 실행 엔진을 제공하는 것을 목표로 합니다.

압축된 벡터에 대한 네이티브 실행

l의 성능은 실행의 기본 단위로 압축된 벡터를 사용하는 것에 의해 주도됩니다. 계산을 수행하기 전에 메모리에서 전체 배열을 다시 구축하는 대신, l의 프리미티브(primitives)는 압축된 구조 위에서 직접 실행됩니다. 이 접근 방식은 메모리와 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과 완전한 호환성을 제공하여, 사용자가 기존의 관용구와 코드를 재작성 없이 실행할 수 있도록 합니다. 여기에는 다음 항목에 대한 네이티브 지원이 포함됩니다:

  • Columnar tables
  • Dictionaries
  • Partitions
  • Splays

완전한 qSQL 호환 데이터베이스로서, l은 모든 표준 조인(join) 및 파티션 로직을 지원하며, kdb+ 생태계와 관련된 "legendary speed"를 유지하면서 q 인터프리터를 독립적으로 구현한 것을 목표로 합니다.

커뮤니티 반응 및 분석

업계 관찰자들과 개발자들은 l이 독점 라이선스 방식이 흔한 배열 언어(APL, BQN, J 포함)의 특화된 설계 영역에 진입했음에 주목했습니다.

커뮤니티의 주요 통찰

  • Market Position: 일부 사용자들은 l을 Kx Systems의 kdb+ 상업용 라이선스 비용이 지나치게 비싸다고 느끼는 이들을 위한 잠재적인 대안으로 보고 있습니다.
  • Production Goals: 다른 일부 k-family 구현체들과 달리, l은 명시적으로 완전한 프로덕션 데이터베이스 호환성 및 언어 호환성을 목표로 합니다.
  • Critiques: 개발자들 사이의 논의에서는 이 프로젝트가 현재 클로즈드 소스(closed-source)라는 점이 언어 런타임으로서 채택의 장벽이 될 수 있다고 지며적했습니다. 또한 프로젝트의 랜딩 페이지의 미적 감각과 "vibe-coded" 성격에 대해서도 논의가 있었습니다.

"q는 Kx Systems의 kdb+를 뒷받침하는 프로그래밍 언어입니다... L은 q 인터프리터의 독립적인 구현체입니다. kdb+의 상업용 라이선스를 마지못해 사용하고 있는 분들에게 - 이 프로젝트는 반가운 대안이 될 것입니다."

"klong/ngn/bqn 등이... 이 프로젝트는 완전한 프로덕션 데이터베이스 호환성(및 완전한 언어 호환성)을 목표로 합니다."",

Sources