# Ray
[[University of California, Berkeley]] で開発された汎用分散フレームワーク([[@2018__OSDI__Ray A Distributed Framework for Emerging AI Applications]]、OSDI 2018)。[[Philipp Moritz]]・[[Robert Nishihara]] が均等貢献筆頭著者、[[Ion Stoica]] がシニア著者。
## 設計思想
強化学習(RL)アプリケーションは訓練・サービング・シミュレーションという 3 つのワークロードを密結合で必要とするが、既存フレームワークはそのいずれかにしか対応していなかった。Ray は「**1 つのフレームワークで RL の全構成要素を扱う**」という目標を掲げ、以下の 3 技術で実現する。
1. **統一プログラミングモデル**: ステートレスタスク(`@ray.remote` 関数)とステートフルアクター(`@ray.remote` クラス)を同一動的タスクグラフ上に統合
2. **ボトムアップ分散スケジューラ**: ローカルスケジューラ優先、過負荷時のみグローバルへ転送する 2 段スケジューラ。ミリ秒未満のタスクディスパッチを実現
3. **Global Control Store(GCS)**: Redis シャード + チェーン複製で制御状態を一元管理。全コンポーネントをステートレスにし水平スケールを可能に
## 性能
- 100 ノードで 1.8 million tasks/s(ほぼ線形スケール)
- Allreduce 16 ノード 100MB で OpenMPI 比 1.5× 高速
- サービングスループット: Clipper 比 1 桁超(100KB 入力)
- PPO RL アプリケーション: 最適化 MPI 実装比でコスト 18× 削減
## エコシステム
2018 年の OSDI 論文公開時点で A3C・PPO・DQN・ES・DDPG・Ape-X を実装済み。後に Anyscale 社が商用化し、RLlib・Ray Tune・Ray Serve・Ray Data 等のライブラリ群が整備された。現在は LLM サービング(vLLM バックエンド)でも広く使われる。
## リポジトリ
https://github.com/ray-project/ray
(Sources: [[@2018__OSDI__Ray A Distributed Framework for Emerging AI Applications]])