PSDP — 同一言語並列化
Phase-Synchronous Deterministic Parallelism。 逐次プログラムを 同じ言語のまま 並列化し、出力結果を 1 ビットも変えない。 交換子ノルムによる位相同期が、並列実行時の決定論を代数的に保証します。
主要計測値
NENC kernel sweep (Java 8)、cores 数増加で線形に近いスケール
GRA kernel sweep (Java 8)、メモリ帯域支配で逓減
I/O bound に近づき頭打ち、ただし bit-exact は維持
32-lane SIMD で bit-exact PASS、AVX2 比 ±5% (memory-bound)
請求項 29-32、SlimeSyCUDA で GAME_MIN〜SAFETY_MAX の 5 プロファイルに展開
track_c/converter_* で Subset A の各言語に PSDP 同梱
仕組み — 交換子ノルム位相同期
並列実行が逐次実行と同じ結果を返すための充分条件を、関係作用素の 交換子ノルム ‖[A,B]‖ から導出。 実行時に交換子が一定閾値以下に保たれるよう 位相同期 (phase-sync) を強制し、Bötcher–Wenzel 不等式を介して SNR (実質的な数値ズレの上界) を解析的に与えます。 これにより、「並列にすると数値が変わる」というよくある現象を理論的に排除できます。
// 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 が回帰検証します。
3 層構成
PSDP は同一原理を 3 つの層に渡って適用します。 どの層でも「位相同期 + 交換子ノルム閾値」が結果同一性の証明手段です。
11 安全機構 (請求項 29-32)
並列実行が決定論を逸脱しそうな場面を 11 種に分類し、各々に安全機構を備えます。 SlimeSyCUDA (GPU 拡張) では、これらを段階的に on/off できる 5 プロファイル化:
| GAME_MIN | ゲーム向け最小オーバーヘッド設定。安全機構を最小限に絞り、フレーム時間優先。 |
|---|---|
| BALANCED | 平均的設定。一般的な並列化用途。 |
| STRICT | 金融計算・科学計算向けの厳格設定。bit-exact 検証を毎ループ実施。 |
| AUDIT | 監査ログ完全記録。Subset A の audit chain と接続、変換+並列の往復証明が可能。 |
| SAFETY_MAX | 11 機構すべて on。航空・医療等のミッションクリティカル用途想定。 |
対応言語 (各言語に PSDP 実装同梱)
Subset A の 5 言語に加え、研究実装として更に多言語に展開済 (track_c/converter_* 配下に 23 converter)。 同一の Slot IR 上で「逐次版」「PSDP 並列版」の対が生成されるため、 移行 (Subset A) と並列化 (Subset B) を 1 つのパイプラインで両立で きます。
ベンチマーク (Java 8、cores sweep)
| カテゴリ | kernel | 速度向上 | 備考 |
|---|---|---|---|
| Compute | NENC (numerical equivalence) | 3.38 × | cores 数に対しほぼ線形、CPU bound |
| Graph | GRA (graph kernels) | 2.17 × | メモリ帯域で頭打ち、bit-exact 維持 |
| Database | TPC (transaction) | 1.02 × | I/O bound、ただし結果不変を保証 |
| SIMD | svt_av1_quantize_fp (AVX-512) | 3072 / 3072 | bit-exact PASS、AVX2 比 ±5% (memory-bound) |
※「速度向上のために結果が変わる」よくある妥協を排除し、bit-exact 維持を絶対条件としています。 DB 系で 1.02× に留まるのは I/O 律速の物理限界であり、安全機構が邪魔をしているわけではありません。
監査適合性
- Bit-exact逐次版 と並列版の出力 sha256 完全一致。「並列化で結果が微妙に変わる」典型的失敗モードを排除。
- 位相同期保証交換子ノルム ‖[A,B]‖ ≤ ε を実行時に強制。Bötcher–Wenzel 不等式から数値ズレの上界が代数的に出る。
- 11 安全機構請求項 29-32 で網羅、安全度 5 プロファイル (GAME_MIN〜SAFETY_MAX) で用途別調整。
- audit chain 連携Subset A の audit chain (請求項 9) と接続し、変換+並列化の双方向証明が一本のパイプラインで完結。
- 回帰耐性同一 input + 同一バージョンで sha256 完全一致。並列・GPU 環境でも結果ブレがない。
典型ユースケース
| 金融バッチ | 夜間バッチの計算処理を並列化、ウィンドウ短縮しつつ「1 円も狂わない」保証付。SAFETY_MAX プロファイルで監査要件を満たす。 |
|---|---|
| 科学計算 | FFT / Conv2D / LU 分解等の数値計算を bit-exact 並列化。「並列にしたら結果が違うので比較できない」という常識的問題を排除。 |
| 映像符号化 | SlimeCodec の QP 制御 / SVT-AV1 の AVX-512 量子化を bit-exact で並列化。エンコーダ並列性能とリプロデューシビリティを両立。 |
| ゲーム / リアルタイム | SlimeSyCUDA (GPU 版) で GAME_MIN プロファイルを使用、安全機構を最小化してフレーム時間最優先で提供。 |
技術仕様
| 特許 | 特願 2026-046625 (Subset B = PSDP) / 特願 2026-046620 (Subset A 連携) |
|---|---|
| 請求項 | 位相同期 (Layer 1-3) / 11 安全機構 (請求項 29-32) / audit chain 接続 (請求項 9 連携) |
| 論文 | PSDP Paper JP v5d (910 KB PDF、2026-03-04) |
| 実装 | Java 8 PoC / AVX-512 MVP-A (svt_av1_quantize_fp 32-lane) / Rust + WASM デモ (index_psdp.html) / 12+ 言語 converter 同梱 |
| 標準テスト | NENC / GRA / TPC kernel sweep (Java 8) / 3072 blocks AVX-512 bit-exact |
| License model | WASM converter 課金、生成物は PSDP runtime 保守課金あり、詳細策定中。Ed25519 3-hop activation。 |
関連資料
- PSDP 論文PSDP Paper JP v5d (910 KB PDF、本論文)
- 指示書指示書 _PSDP_v2並列開発.md (v2 並列開発仕様)
- サンプルOrderBatchProcessor_ORIGINAL.java vs OrderBatchProcessor_PSDP.java (逐次/並列の bit-exact 対比)
- 実装ログPSDP_IMPLEMENTATION_LOG.md (Phase A/B、Rust + WASM 実装記録)
- 出願明細特願 2026-046625 (Subset B) / 特願 2026-046620 (Subset A 連携)
