Metadata-Version: 2.4
Name: pms-ray-cluster
Version: 1.5.7
Summary: repos for pms ray cluster
Author: HyeongSeok Kim
Author-email: tiryul@gmail.com
Requires-Python: ==3.12.*
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: asyncmy (>=0.2.10,<0.3.0)
Requires-Dist: asyncpg (>=0.29.0,<0.30.0)
Requires-Dist: boto3 (>=1.34.133,<2.0.0)
Requires-Dist: dependency-injector (>=4.46.0,<5.0.0)
Requires-Dist: ffmpeg-python (>=0.2.0,<0.3.0)
Requires-Dist: fire (>=0.6.0,<0.7.0)
Requires-Dist: influxdb-client (>=1.48.0,<2.0.0)
Requires-Dist: loguru
Requires-Dist: openexr (>=3.3.2,<4.0.0)
Requires-Dist: pillow (>=10.4.0,<11.0.0)
Requires-Dist: pms-model-manager (>=1.3.2,<2.0.0)
Requires-Dist: pms-nvidia-processor (>=2.16.0,<2.17.0)
Requires-Dist: prefect (>=3.2.12,<4.0.0)
Requires-Dist: pydantic (>=2.10.6,<3.0.0)
Requires-Dist: pydantic-settings (>=2.7.1,<3.0.0)
Requires-Dist: pymysql (>=1.2.0,<2.0.0)
Requires-Dist: pytest (>=8.3.5,<9.0.0)
Requires-Dist: python-dotenv
Requires-Dist: ray[serve] (==2.40)
Requires-Dist: redis[async] (>=5.2.1,<6.0.0)
Requires-Dist: scenedetect (>=0.6.6,<0.7.0)
Requires-Dist: sourcedefender (>=15.0.12,<16.0.0)
Requires-Dist: sqlalchemy[asyncio] (>=2.0.50,<3.0.0)
Requires-Dist: streamlit (>=1.43.2,<2.0.0)
Requires-Dist: streamlit-autorefresh (>=1.0.1,<2.0.0)
Requires-Dist: tenacity (>=9.1.2,<10.0.0)
Requires-Dist: typer
Requires-Dist: uvloop
Description-Content-Type: text/markdown

# PMS Ray Cluster: Distributed Computing Infrastructure

`pms-ray-cluster`는 Ray Cluster 컨테이너 생성을 위한 이미지 빌드 리포지토리입니다.
과거 별도의 패키지도 존재했지만 pms의 버전이 업데이트 되면서 패키지는 더 이상 사용하지 않습니다.

## 🚀 Key Engineering Features

- **Multi-Environment Cluster Provisioning**
  - **On-Premise (Docker Compose)**: `docker-compose.head.yaml`, `worker.gpu.yaml`, `worker.npu.yaml` 등 노드 역할과 하드웨어 타겟에 따라 컴포즈 파일을 세분화하여, 로컬 또는 폐쇄망 환경에서도 손쉽게 스케일 아웃이 가능합니다.
- **Custom Hardware-Accelerated Images**
  - 공식 Ray 이미지의 한계를 넘어, 미디어 파이프라인과 AI 추론에 최적화된 커스텀 Dockerfile(`Dockerfile.trt`, `Dockerfile.onprem`, `Dockerfile.basic`)을 제공합니다. 
  - TensorRT 런타임, 비디오 디코딩 패키지, NPU 드라이버 등 필수 의존성이 사전 빌드되어 노드 프로비저닝 속도를 극대화합니다.

## 📁 Architecture & Directory Structure

```text
pms_ray_cluster_main/
├── pms_ray_cluster/            # 더 이상 사용하지 않음!
├── docker/                     # 커스텀 Ray Worker 노드 이미지 빌드 명세
│   ├── Dockerfile.basic        # 범용 CPU/기본 워커 이미지
│   ├── Dockerfile.trt          # 고성능 추론용 TensorRT 탑재 워커 이미지
│   └── Dockerfile.onprem       # 온프레미스/폐쇄망 전용 독립 워커 이미지
├── asset/                      # 더 이상 사용하지 않음!
├── prometheus/                 # 더 이상 사용하지 않음!
└── docker-compose.*.yaml       # 온프레미스 및 로컬 개발용 컴포즈 파일 모음 (Head, CPU, GPU, NPU)

```

## 🛠 Tech Stack

* **Distributed Computing:** Ray 
* **Infrastructure & Orchestration:** Docker, Docker Compose
* **Hardware Targets:** NVIDIA GPU (TensorRT), Furiosa NPU, Multi-core CPU

## 📦 Getting Started

### 1. Run Cluster Locally or On-Premise

Docker Compose를 조합하여 원하는 규모와 하드웨어 스펙의 클러스터를 기동합니다.

```bash
# 1. Ray Head 노드 실행
docker-compose -f docker-compose.head.yaml up -d # CPU Node
docker-compose -f docker-compose.head.yaml -f docker-compose.head.gpu.yaml up -d # GPU Node

# 2. 워크로드에 맞는 Worker 노드 추가 (스케일 아웃 가능)
docker-compose -f docker-compose.worker.yaml up -d # CPU Node
docker-compose -f docker-compose.worker.yaml -f docker-compose.worker.gpu.yaml up -d  # GPU Node
docker-compose -f docker-compose.worker.yaml -f docker-compose.worker.npu.yaml up -d  # NPU Node

```

