Skip to content

A Python (3.6+) library that, given placement dumps from the Orchestrator, can be used to draw useful pictures.

Notifications You must be signed in to change notification settings

POETSII/placement-postprocessing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What's This?

A Python (3.6+) library that, given placement dumps from the Orchestrator, can be used to draw maps and histograms describing the placement. It uses matplotlib and graphviz to do this.

Requirements

You'll need the following Python packages (and their dependencies).

  • Pandas (I use 1.3.4), for holding and manipulating data.
  • Matplotlib (I use 3.4.3), for drawing graphs.
  • graphviz (I use 0.18.2), for creating dotfiles for Graphviz to render into maps.

You will also need an installation of Graphviz itself, from your package manager or from https://www.graphviz.org/, because the graphviz Python package does not install a renderer for you. I use 2.49.3.

Library

Need a quick start? Check example.py.

This library (placement_postprocessing) takes a dump of placement data from the POETS Orchestrator (https://github.com/poetsii/orchestrator), and produces histograms and maps presenting that data. It's a simple tool that produces simple pictures.

Load in your data:

import placement_postprocessing as pp  # hohoho
data = pp.Data("example_data/")

where the following files are present (and are described by the Orchestrator's placement documentation) in "example_data/":

  • placement_gi_edges_<APPNAME>_<TIMESTAMP>.csv
  • placement_gi_to_hardware_<APPNAME>_<TIMESTAMP>.csv
  • placement_diagnostics_<APPNAME>_<TIMESTAMP>.csv
  • placement_edge_loading_<TIMESTAMP>.csv
  • placement_hardware_to_gi_<APPNAME>_<TIMESTAMP>.csv
  • placement_node_loading_<TIMESTAMP>.csv

Note that the Data constructor will raise RuntimeError if there are multiple files in the directory with different <APPNAME>s and <TIMESTAMP>s.

Once you've loaded your data, you can draw histograms using the methods:

pp.mailbox_loading_histogram
pp.core_loading_histogram
pp.mailbox_edge_loading_histogram
pp.application_edge_cost_histogram

which you'll then need to save. You can also draw maps with:

pp.draw_map

If you want to know more about these drawing methods, they all have docstrings. Feel free to help(pp.draw_map).

About

A Python (3.6+) library that, given placement dumps from the Orchestrator, can be used to draw useful pictures.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages