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 |