Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Distributed DAG Job Scheduler

A high-throughput, concurrent execution engine built in Python. This system schedules and executes interdependent computational jobs using Directed Acyclic Graphs (DAGs) to resolve dependencies and prevent deadlocks.

Architecture

  1. DAG Resolver: Uses Kahn's Algorithm to topologically sort incoming tasks and group them into concurrently executable layers. Includes cycle detection to prevent deadlocks.
  2. Execution Engine: Utilizes Python's ProcessPoolExecutor to dispatch jobs to parallel worker nodes, maximizing CPU utilization for heavy computational pipelines.

Execution Flow

The scheduler parses a JSON configuration of tasks. Jobs without dependencies are instantly dispatched to the worker pool. Dependent jobs remain blocked until their parent tasks emit a success signal.

Quick Start

# Clone the repository
git clone [https://github.com/Atri2-code/Distributed-DAG-Scheduler.git](https://github.com/Atri2-code/Distributed-DAG-Scheduler.git)
cd Distributed-DAG-Scheduler

# Execute the test pipeline
python scheduler.py

About

High-performance distributed execution engine for orchestrating interdependent computational workflows. Features a custom dependency resolution algorithm using Directed Acyclic Graphs (DAGs), worker-node pooling, and predictive cycle detection to maximize CPU utilization and prevent deadlocks.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages