PSDP — 同一言語並列化
既存のアプリケーションに、決定論的並列化を「ソース書き換えなし」で注入する。
PSDP (Phase-Synchronous Deterministic Parallelism) は、既存の Java / C# / Rust / Go / Kotlin ほか 16 言語のアプリケーションに、 ランタイム注入で並列化を導入し、2.97 〜 4.23 倍の高速化を、 1 ビットも結果を変えずに実現する独立製品です。
スライムくん: なんでソースコード書き換えないのに 4 倍速くなるの? ▾
「ソース無変更で 4 倍速」って、ほんと?
- あなたの
OrderBatch.javaは 1 文字も変わらない。git diff してもゼロ。 - ビルド時に PSDP がバイトコードを読んで、並列実行できる箇所を発見。同じ振る舞いの並列版を裏側に「注入」する (Java agent / .NET profiler API / Rust proc-macro など、言語ごとに方式は違う)。
- 実行時、CPU が 1 個なら逐次版が動く。コアが 4 つあれば並列版が走る。あなたが切替コードを書く必要なし。
- 「並列にしたら数値が変わる」のよくある問題は、PSDP 独自の数学的同期メカニズムで理論的に排除 (詳細は特許出願・論文記載、ここでは伏字)。
- 本番で動かすたびに 逐次版と並列版の出力 sha256 が一致 することを bench が確認。違ったら即時 rollback。
つまり: 既存コードに 1 行も触らない / コンパイルし直すだけ / 結果は 1 ビットも変わらない / 4 コアで 4 倍 (より厳密には 2.97 〜 4.23 倍、コア数とアルゴリズム特性に依存)。監査では「コード変更ゼロ」がそのまま強みになります。
対応言語
同一言語内で「逐次版 → 並列版」の対を生成します。 エンタープライズから組込・科学計算系まで、16 言語に対応。
| エンタープライズ | Java 8 / 17 / 21 · C# · Kotlin (+coroutines) · Scala |
|---|---|
| システム | Rust · Go · C / C++ · Swift |
| スクリプト | Python · Node.js · PHP |
| 関数型 / 科学計算 | Clojure · Erlang · Common Lisp · FORTRAN |
用途別ユースケース
金融トレーディングシステム
夜間バッチ・リスク計算を並列化、ウィンドウを 1/3 に短縮しつつ「1 円も狂わない」 bit-exact 保証。SAFETY_MAX プロファイルで監査要件を満たす。
規制業界の Java/C# 並列化
J-SOX / SEC 要件下での金融・保険の Java / C# 基幹を、ハッシュ連鎖監査付きで並列化。 結果不変保証により、再計算 / 比較 / 監査が成立する。
クラウドコスト削減
既存ワークロードを 3 〜 4 倍に高速化 = インフラ費用を 1/3 に。 AWS / GCP / Azure のインスタンスサイズ・台数を、コード変更なしで圧縮できる。
HFT (高頻度取引)
低レイテンシ要件下でのオーダー処理・市場データ並列化。GAME_MIN プロファイルで 安全機構を最小化、フレーム時間最優先。
科学計算 / シミュレーション
FFT / Conv2D / LU 分解 等の数値計算を bit-exact 並列化。「並列にしたら 結果が違うので比較できない」というよくある問題を排除する。
ML 推論加速
学習済みモデルの推論パイプラインを並列化。決定論性保証により、 A/B 比較・回帰検証・セキュリティ監査と両立する。
仕組み — 数学的同期による bit-exact 並列化
並列実行が逐次実行と同じ結果を返すための充分条件を、関係作用素に基づく PSDP 独自の数学的同期メカニズムから導出します。 実行時にこの条件が一定閾値以下に保たれるよう同期を強制し、 数値ズレの上界を解析的に与えます。これにより「並列にすると数値が変わる」という よくある現象を理論的に排除できます。 (理論の詳細は特許出願・公開論文をご参照ください。本ページではマル秘部分を伏字としています。)
// PSDP 適用例(OrderBatchProcessor_PSDP.java、抜粋) // ・元の逐次コード (OrderBatchProcessor_ORIGINAL.java) と // 入出力 sha256 が完全一致することを bench で検証 public class OrderBatchProcessor { public Result process(List<Order> orders) { return orders.parallelStream() // 並列化はここだけ .map(this::settle) .collect(PSDP.phaseSyncReduce(...)); // 位相同期 reduce } }
並列化の差分は API 呼び出し数行のみ、ロジック書き換え不要。 逐次版と並列版の出力 sha256 が一致することを Bench が回帰検証します。
技術仕様
- 注入方式ランタイム注入。ソースコード書き換え不要、再ビルドのみで適用。
- bit-exact 保証逐次版と並列版の出力 sha256 完全一致。「並列化で結果が微妙に変わる」典型的失敗モードを排除。
- 数学的同期保証PSDP 独自の同期条件を実行時に強制し、数値ズレの上界が代数的に出る (理論詳細は伏字)。
- ハッシュ連鎖監査FNV1a64 + SHA-256 monotonic chain。改ざん 1 byte で検出 (DETECTED)。後付け編集不可。
- フォールトインジェクション ロールバック90/90 シナリオで barrier 違反ゼロ、tombstone 方式で過去状態復元。
- 11 安全機構請求項 29-32 で網羅、安全度 5 プロファイル (GAME_MIN〜SAFETY_MAX) で用途別調整。
実証データ
| カテゴリ | kernel | 速度向上 | 備考 |
|---|---|---|---|
| Compute | NENC (numerical equivalence) | 3.38 × | cores 数に対しほぼ線形、CPU bound |
| Graph | GRA (graph kernels) | 2.17 × | メモリ帯域で頭打ち、bit-exact 維持 |
| Database (OLAP / partition並列) | TPC-H Q1 / Q6 column store、12 M 行 | 4.38 〜 5.20 × | Ryzen 9 7945 で 1c → 8c、25 / 25 run が reference と bit-exact 一致 |
| Database (CDC replay) | commutativity-aware 20 M ops WAL replay | 4.26 × | serial baseline 比、25 / 25 run で最終状態 hash 完全一致 |
| Database (multi-conn 並列読み) | SQLite WAL reader throughput | 9.76 × | 14.2 → 138.6 qps、1c → 12c |
| SIMD | svt_av1_quantize_fp (AVX-512) | 3072 / 3072 | bit-exact PASS、AVX2 比 ±5% (memory-bound) |
378 runs all bit-exact (100% PASS) / 90/90 fault-injection rollbacks
は PSDP Paper JP v5d (910 KB PDF、2026-03-04) で詳説。
上記 Database 3 行は 2026-05-18 に AMD Ryzen 9 PRO 7945
(12c / 24t、OpenJDK 21) で再測定。
旧版に記載していた「DB 1.02 ×」は、PSDP 適用外 phase を含む TOTAL wall-time に
集計した際の workload-normalisation 不備による値であり、本表の partition / CDC / WAL reader
のケースで置換される。新測定 75+ runs はすべて決定的。
競合との対比
| Intel TBB | 並列化フレームワークだがコード書き換え必須、bit-exact 保証なし。 PSDP はソース無変更 + bit-exact + 監査証跡。 |
|---|---|
| OpenMP | pragma ベースで明示注釈必須、結果再現性は実装依存。 PSDP はランタイム注入 + 結果不変保証 + 監査適合。 |
| Java parallelStream | 結果順序が非決定的、reduce の浮動小数演算で再現性なし。 PSDP は phaseSyncReduce で reduce 順序も決定論。 |
| C# Parallel.ForEach | 同上、副作用順序が非決定。PSDP は同言語内で bit-exact 並列を提供。 |
| GPU 並列 (CUDA / Metal) | 言語跨ぎが必要、結果がアーキ依存。 PSDP は同一言語内・同一バイナリで完結、CPU で動く。 |
PSDP の本領 (memory-bound 大規模バッチ・compute-intensive)
PSDP は Bernstein 可換性が成立する ms 単位以上の compute-intensive ワークロードで 2.97-4.23x の speedup を発揮します。特に有効な領域:
| ML inference | matmul / convolution 中心、各 batch 数百 ms 〜 数秒、PSDP 2.97-4.23x |
|---|---|
| HFT 取引計算 | tick-by-tick 評価、Bernstein 領域分離容易、低 latency 並列 |
| 科学計算 | 有限要素 / 流体 / 分子動力学、領域分割 + 同期点明確 |
| 大規模バッチ DB walk | SlimeTree-VSAM 等 in-memory backend の sequential cursor (memory BW bound) で PSDP 6-8x scaling 見込 |
実例: SlimeTree-VSAM 10 億件 sequential batch (synergy 例) — SlimeTree-VSAM 単体で同ホスト bench PostgreSQL 比 480 倍速 (10 億件 sequential 4.4 分 vs PostgreSQL 19.5 時間)。 さらに PSDP 統合で 8-thread parallel 化、memory BW 共有を考慮しても 4.4 分 → 30〜60 秒 (6-8x scaling 見込)。 PostgreSQL 比 1900〜3800 倍速に達し、夜間バッチ window が崩壊している大規模金融基幹で唯一動く解。
本見込は SlimeTree-VSAM の impl_v6 micro / scale bench (Zen 4 / WSL2 同ホスト) と PSDP の ML inference bench 2.97-4.23x scaling から合成。SlimeTree-VSAM は 2026-05-24 news で公開済。
効果が限定的なケース
PSDP の本領は上記の compute-intensive な ms 単位以上のワークロード。一方、以下のパターンでは加速倍率が小さい、または効果が出ません。透明性のため明示します。
| I/O 律速 | DB / 通信待ちで CPU が遊んでいる場合、PSDP は計算並列化のため待ち時間は短縮しません。正攻法: 非同期 I/O または queue 分離 (PSDP の射程外)。 |
|---|---|
| HashMap / tree-walk dispatch 中心 | 分岐密度が高く Bernstein 可換性が成立しない pointer-chasing 系では、同期 overhead が利得を上回ります。 |
| 極小 workload (~ms 未満) | Bernstein 同期セットアップが ms 単位、各タスクが μs オーダーだと相対 overhead が支配。tasks をバッチで束ねる必要。 |
| 既に並列化済 (rayon / Tokio 等) | 同言語内の他並列化と排他的、PSDP injection 前に既存並列化を除去する追加 work が必要。 |
実例: SlimeTree-RLM impl_v4 (Rust) ― HashMap-heavy / dispatch-bound code (Hot Shelf treap / Cold Shelf RB-tree / SCC 分解中心)。 本 architecture では Slot 単独操作が μs オーダーで Bernstein 同期 overhead が相対的に大きく、 PSDP injection の speedup は 1.0-1.1x 程度に止まる見込みで、 PSDP の本領 (compute-intensive matmul-class) ではないため適用を保留しています。
PSDP は 計算自体が時間を支配するアルゴリズム (ML inference / HFT / 科学計算) で 2.97-4.23x を発揮します。 上記 4 パターンに該当するコードベースには別アプローチ (非同期 I/O / cache 最適化 / batching) をお勧めします。
価格・ライセンス (暫定、2026-05-18 — 10,000 LOC 試算例)
| 導入パス | LOC | 買い切り / LOC | 買い切り合計 | ランタイム率 | ランタイム / 年 | サポート |
|---|---|---|---|---|---|---|
| SlimeNENC (変換) | 10,000 | US$ 9.95 | US$ 99,500 | — | — | フル |
| PSDP (SlimeNENC 顧客) | 10,000 | US$ 0.00 | US$ 0 | 2%/年 | US$ 1,990 | フル |
| PSDP 直販 (SIer / パートナー経由) | 10,000 | US$ 1.00 | US$ 10,000 | 20%/年 | US$ 2,000 | フル (パートナー経由) |
| PSDP エンドユーザー直販 (30% OFF) | 10,000 | US$ 0.70 | US$ 7,000 | 20%/年 | US$ 1,400 | FAQ のみ |
上 3 経路では LOC あたりの年ランタイム費用が同水準に収束する設計、差は買い切り部分のみで SlimeNENC 変換ツールの価値に対応。 エンドユーザー直販はセルフ導入向け (FAQ のみのサポート、SI 関与なし — 実機統合支援が要る場合はパートナー経由)。
| 方式 | Ed25519 署名 license + 3-hop air-gap activation (金融機関向け)。 |
|---|---|
| license server | license.javatel.jp (AWS Lightsail、HSTS / OCSP stapling) |
| 特許 | 特願 2026-046620 (経路間で契約再交渉不要) |
SIer / パートナー様向け: 直販定価でご販売頂くパートナー様には、 買い切り部分に対して相応のマージンが、さらに同率が 毎年継続のランタイム購読収入に対しても適用されます。 顧客が稼働を続ける限り、年次の収入が積み重なる継続収益モデル。 具体的な tier 数字はパートナー契約の一部として登録後にご案内します (/ja/partners/)。
直販 Edition (暫定、2026-05-18 — 正式アナウンス時に変更の可能性あり)
| Edition | PSDP-managed LOC 上限 | 買い切り (年初) | ランタイム / 年 | 備考 |
|---|---|---|---|---|
| Trial | 10,000 | US$ 0 | US$ 0 (14 日) | 機能制限なし、商用不可 |
| Individual | 50,000 | LOC × $1.00 (上限 $50) | LOC × $0.20 | コミュニティサポート、商用可 |
| Corporate | 1,000,000 | LOC × $1.00 | LOC × $0.20 | メールサポート、SLA 99%、audit chain export |
| Enterprise | unlimited | LOC × $1.00 | LOC × $0.20 (上限 $1,000,000/年) | 24h SLA 99.9%、3-hop air-gap activation、金融 / 医療 |
| OEM | unlimited + 再ライセンス権 | 個別交渉 | 個別交渉 | source-escrow option、組込・再販可 |
「PSDP-managed LOC」とは、psdp.toml で PSDP-managed と宣言した namespace / packages 配下の
ソースファイル LOC 数 (cloc / tokei で計測、年初 git revision に対して算定)。
ランタイムが同値を self-report し、相互検証可能。
本表は 暫定であり、上限・最低金額・SLA tier は GA 価格発表時に改訂される可能性があります。
特許
- 特願 2026-046620 (PSDP コア / Phase-Synchronous Deterministic Parallelism)
- 特願 2026-046625 (位相同期実装、11 安全機構、請求項 29-32)
- 追加出願準備中 (SIMD / GPU 拡張)
