高頻度取引を含む低レイテンシアプリケーションのためのC++パターン
(arxiv.org)C++低レイテンシアプリケーションのためのデザインパターン
- 著者: Paul Bilokon, Burak Gunduz
- 投稿日: 2023年9月8日
- テーマ: 低レイテンシコードの最適化、特に高頻度取引(HFT)システムに重点
主な貢献
- 低レイテンシプログラミングリポジトリの作成: 厳密な統計的ベンチマーキングを含む実用的なガイド
- マーケットニュートラルな統計的裁定取引戦略の最適化: 速度と収益性で大幅な改善
- DisruptorパターンのC++実装: 従来のキューイング手法より性能向上
評価指標
- 速度
- キャッシュ活用
- 統計的有意性 など
主要技術
- キャッシュウォーミング: キャッシュ初期化によるレイテンシ削減
- Constexpr: コンパイル時の定数評価による性能向上
今後の方向性
- リポジトリ拡張
- 最適化された取引アルゴリズムのリアルタイム取引環境でのテスト
- Disruptorパターンと取引アルゴリズムを統合した総合的なシステムベンチマーキング
対象読者
- 学術界および産業界の実務者
GN⁺のまとめ
この論文は、低レイテンシアプリケーション、特に高頻度取引システムの性能を向上させるためのデザインパターンを扱っている。低レイテンシプログラミングリポジトリとDisruptorパターンの実装は、実務者にとって有用なガイドとなるだろう。キャッシュウォーミングやConstexprのような技術は、レイテンシ削減に大きく寄与する。この論文は、性能最適化に関心のある人々にとって非常に有益だろう。
1件のコメント
Hacker Newsの意見
テーマについての簡単な紹介
学部生はすでに基本的な性能最適化の要素を理解している
性能低下要因である false sharing に触れていないのは驚き
最適化ヒント属性(
[[likely]],[[unlikely]])などに触れていないのも驚き高度な性能最適化要素は扱っていない
低遅延プログラマに必要なのは、不要な割り当てやコピーなどに対する警戒心
低遅延サーバーを書くとき、ベクター IO 操作は小さなオブジェクトを連続バッファにコピーするより遅いことに気づいた
テスト結果は t 統計量と p 値を提供する
この部分は LLM を使って書かれたように見える
5年分の1日1回の終値を分析し、65マイクロ秒の遅延でスプレッドを計算する例は奇妙
C++ で書かれた株式取引所の実装を共有
C++ のロギングライブラリを書いた
コンパイル時ディスパッチの効率性は、関数呼び出しの決定がコンパイル段階で行われることによる
CppCon 2017 の発表資料を共有
高頻度取引が存在すべき理由があるのか疑問を呈している