プログラミング

【Jane Street】差分計算ライブラリ「Incremental」公開!Observableとの違いやゴールドマンの伝説「Bank Python」まで語り合うスレ

投稿日時: 2026/07/21 12:50

■ 概要・編集部サマリー

【背景・課題】Jane StreetがOCaml向けの差分計算ライブラリ「Incremental」を公開。大規模な計算グラフにおいて変更があった部分だけを効率的に再計算する仕組み。 【焦点・技術】既存のObservableパターン(Rx等)との違いは「遅延評価」と「依存グラフのトポロジー最適化」。ダイヤモンド依存での重複計算や不要な評価をスキップできる。 【評価・議論】金融業界では30年前からGoldman Sachsが似た仕組みを独自構築していた歴史があり、社内専用環境「Bank Python」の苦悩やOCamlの実行速度についても議論が紛糾。

1. 超低遅延なリアルタイム差分計算の必要性

金融市場の超高速取引システムにおいて、大量のオーダーブックデータの一部が更新されるたびに全計算をやり直すのは不可能な負荷となる。

入力の変化に反応して、影響を受けるグラフノードだけを最小演算で部分更新する自己調整計算基盤が開発された。

2. 依存関係有向グラフとOCamlでの高効率計算モデル

RxやObservableといった一般的なFRPライブラリと異なり、動的な依存グラフの組換えと高度なメモリキャッシュ最適化を実現している。

Jane StreetのトレーディングシステムやUIフレームワークの基盤として実戦投入されている信頼性が示された。

3. 高性能計算エコシステムへの貢献

巨大な状態変化をリアルタイムで処理するソフトウェアのパフォーマンスを次元の異なる領域へ引き上げる力作である。

OCamlコミュニティおよび高度アルゴリズム開発者への貴重なギフトだ。

海外掲示板の反応・まとめ

編集部サマリー:

■ 記事概要 Jane StreetがOCaml製の差分計算ライブラリ「Incremental」を公開。入力値の変化に対して計算グラフ(DAG)の必要最小限のノードのみを再計算するライブラリ。Hacker Newsでは、一般的なObservable/リアクティブプログラミングとの違いや、金融業界での歴史的背景(Goldman Sachsの事例など)について熱い議論が交わされています。

クオンツエンジニア:

Jane Streetがまたええライブラリ出してきたな。大規模な計算グラフで動的にパラメータ最適化するとき、変更あった場所だけ差分計算(Incremental computation)してくれるやつや

名無しのフロントエンド:

これRxJSとかのObservable(Pub/Sub)パターンと何が違うんや?入力に新しい値流してリスナーに伝播させるだけならObservableでもできるやろ

名無しの関数型言語:

>>3 全然ちゃうぞ。Observableはプッシュ型やけど、Incrementalは「遅延評価(必要な時にだけノードを評価する)」と「計算DAGのキャッシュ」が本質や。 例えばダイヤモンド型の依存関係(AからBとCに分岐してDで合流するやつ)がある時、ナイーブなObservableやとDが2回計算されたりするやろ?Incrementalはトポロジーを考慮して最小限の再計算で抑えるんや

機械学習エンジニア:

計算グラフの差分評価とか、これバックプロパゲーション(逆伝播)のアルゴリズム組むのめちゃくちゃ楽になりそうやな

名無しのパフォーマンス厨:

つーかOCamlって言語選択はどうなん?「C言語の1〜2倍の速度(実質半分の速度?)、Javaと同等」とか言われてるけど、 introspection(リフレクション/リフレクティブな解析)が弱い印象あるわ

名無しのウォール街老害:

これゴールドマン・サックス(GS)が30年前にデリバティブの価格計算でやってたアプローチと同じやな。昔GSにおった時、「Node Purpling」についてアホほど議論したのを思い出すわ。微分計算とか重い処理の計算回数を理論的最小値にする工夫や

インフラエンジニア:

>>7 GSのそれ、「Bank Python」の元ネタになったやつやんけ!独自の計算グラフと社内専用IDEを強制されて、入社した新人エンジニアが絶望して即辞める伝説の環境なw

名無しのアルゴリズム:

Excelのセル計算例に出してる人もおるけど、Excelは表面上遅延評価でも弱い結合でもないから例えとしては微妙やな。もっと「hot/coldな観測者」とかスケジューラを含めた依存関係の明示的な分離として捉えた方が理解しやすいで