Spaces:
Running
Running
# Pipeline Parallelism Dash Visualizer | |
This is an interactive Dash-based visualizer for pipeline parallelism scheduling, complementing the existing Matplotlib-based visualization. | |
## Features | |
- **Static image generation** similar to the Matplotlib version | |
- **Interactive web-based visualization** with Dash | |
- **Download functionality** to save the visualization as PNG | |
- **Progress indication** during figure creation and image generation | |
- **Compatible API** with the existing visualizer | |
## Installation | |
Install the required dependencies: | |
```bash | |
pip install -r requirements-dash.txt | |
``` | |
## Usage | |
### From Python | |
```python | |
from pipeline import create_1f1b_schedule | |
from dash_visualizer import visualize_pipeline_parallelism_dash, save_pipeline_visualization_plotly | |
# Create a schedule | |
schedule = create_1f1b_schedule( | |
num_stages=4, | |
num_batches=8, | |
forward_times=[1.0, 1.0, 1.0, 1.0], | |
backward_times=[2.0, 2.0, 2.0, 2.0], | |
) | |
# Generate a static image | |
save_pipeline_visualization_plotly( | |
schedule=schedule, | |
schedule_type="1f1b", | |
output_file="pipeline_plotly.png" | |
) | |
# OR launch an interactive Dash app | |
visualize_pipeline_parallelism_dash( | |
schedule=schedule, | |
schedule_type="1f1b", | |
port=8050, | |
debug=False | |
) | |
``` | |
### Using the Command Line | |
You can use the updated command line interface: | |
```bash | |
# Generate a static image with Dash/Plotly | |
python pipeline.py --visualizer dash --output-file pipeline_viz.png | |
# Launch an interactive Dash app | |
python pipeline.py --visualizer dash-interactive | |
# Use the original Matplotlib visualizer | |
python pipeline.py --visualizer matplotlib | |
``` | |
You can also use the dash_visualizer.py script directly for testing: | |
```bash | |
# Generate a static image | |
python dash_visualizer.py --output test_viz.png | |
# Launch an interactive app | |
python dash_visualizer.py --interactive | |
``` | |
## Differences from Matplotlib Visualizer | |
The Dash-based visualizer provides all the same visual elements as the Matplotlib version: | |
- Color-coded rectangles for forward, backward, and optimizer operations | |
- Batch numbers displayed inside each rectangle | |
- Device labels on the y-axis | |
- Clear legend | |
Additional features: | |
- Interactive web interface | |
- Hovering over elements to see details | |
- Download button to save the visualization | |
- Progress bars for tracking visualization creation | |
- Responsive layout that works well on different screen sizes |