DR_EVT: HPC Job Scheduler Simulator
Discrete Event-Driven Simulator for High-Performance Computing Job Schedulers
DR_EVT simulates HPC job scheduling policies with EASY and CONSERVATIVE backfilling implementations. Uniquely supports online simulation via gRPC, enabling coordinated multi-cluster simulations in a distributed fashion and digital-twin scheduler interacting in real-time.
Scheduler behavior is verified against a from-scratch Python reference implementation (consistency check between implementations, not independently derived ground truth).
Getting Started
User Guide
Algorithm & Testing
- Backfilling Algorithms - Reference Implementation
- EASY Backfilling
- Conservative Backfilling
- Comparison
- Testing Guide for DR_EVT Scheduler
- Overview
- Quick Navigation
- How to Run Tests
- Comprehensive Tests
- Unit Tests
- Feature Tests
- Scale Tests
- Replay Tests
- Resource History Tests
- Job Store Tests
- Append-Job Tests
- Progressive Loading Tests
- Streaming API Tests
- Configuration Tests
- Queue Implementation Testing
- Column Alias Tests
- Run Time Mode Tests
- Test Summary
- Test File Formats
- Generating Expected Outputs
- Adding New Tests
- Common Test Patterns
- Troubleshooting
- Conservative Backfilling Tests
- References
- Key Principles
Development
- Developer Documentation
- Terminology - Clarification
- Block Queue Wait Queue Implementation
- Block Queue Testing Guide
- Circular Buffer Wait Queue Implementation
- ReadTheDocs Setup Guide
- Design Decisions
- Simulation vs Replay Modes - Design
- Timezone Offset Support Design
- Trace as a self-contained, streaming-ready state container
Documentation
Getting Started
Start here if you’re new to DR_EVT:
Quick Start - Get up and running in 5 minutes
Installation - Build and install DR_EVT
Basic Tutorial - Your first simulation
User Guide
Complete guide for running simulations:
User Guide - Complete usage manual
Command-Line Options - All available options
Algorithm and Testing
Backfilling Algorithms - EASY and CONSERVATIVE algorithms with diagrams
Testing Guide - Complete test catalog, how to run tests, test patterns, and verification methodology
APIs
Streaming API - Online/incremental simulation API
Python API - Python bindings reference
gRPC Client/Server - Network-exposed streaming API, including the MPI-based multi-client/multi-server test harness
Development
For contributors and maintainers:
Developer Notes - Design decision index and development resources
Quick Links
Project Status
Version: 1.0
Scheduling Policies:
Backfill: EASY and CONSERVATIVE (fully implemented)
Priority: FCFS, an alternative FCFS implementation (for testing), FCFS with conservative/no backfilling support, SJF, LJF
APIs:
Streaming API: Online/incremental simulation, including genuinely new jobs (
append_job()/append_jobs()) not just ones already in a preloaded tracegRPC Service: Network-exposed streaming API for multi-cluster coordination
Python Bindings: Batch mode and the core streaming/monitoring API; some
Sim_Paramsfields andSimulationmethods (includingappend_job()/append_jobs()) aren’t bound yet - see Python API
Test Suite: 150+ tests across comprehensive/unit/feature/append-job/progressive-loading/config/gRPC/scale/replay categories (see Testing Guide for the current breakdown and how to run them).
About
DR_EVT simulates discrete event-driven HPC job scheduling with:
EASY and CONSERVATIVE backfilling implementations, verified against an independent Python reference implementation (consistency check, not mathematical ground truth - see Testing Guide)
gRPC-based online simulation service enabling coordinated multi-cluster simulations in a distributed fashion and digital-twin scheduler interacting in real-time
Replay and simulation modes for both offline analysis and online operation
Streaming API for incremental job submission and online scheduling decisions
Real HPC trace support (Lassen format) plus simpler CSV format
Comprehensive test suite covering correctness, differential comparisons, and large-scale scenarios
Developed at Lawrence Livermore National Laboratory.