AHP Graphs - https://arxiv.org/pdf/1802.06492.pdf
Requires Python3.9 at a minimum. There is a "noTyping" branch which works with older versions of Python (like 3.6)
apt install graphviz libgraphviz-dev
yum install graphviz graphviz-devel
python3 -m pip install pygraphviz orjson
- Assembly names are automatically prefixed to the expanded devices names when the graph is flattened
- Besides graph construction, the main features that ahp_graph provides are several outputs
SSTGraph.build()
will immediately turn your graph into SST components and begin a simulationSSTGraph.write_json()
will output the graph along with parameters in JSON formatDeviceGraph.write_dot()
will output the graph in DOT format and optionally draw SVGs with them
- All output generated by ahp_graph goes into a folder called 'output'
- This is for the
SSTGraph.write_json()
andDeviceGraph.write_dot()
functions
- This is for the
- SST global parameters are set by adding things to the DeviceGraph attr field
- SST component parameters are set by adding things to the Device attr field
- You can still do normal SST Python things (examples below):
sst.setProgramOption()
sst.setStatisticLoadLevel()
sst.setStatisticOutput()
SSTGraph.build()
returns a dictionary of devices with their name as the key- You can use this to enable statistics for devices after they are created
- If you plan to build the graph with ahp_graph partitioning and run with MPI, remember to include the
--parallel-load=SINGLE
flag to sst--parallel-load
by default will work with multiple unique files- ahp_graph can generate the graph for each rank using a single file, so it needs the value 'SINGLE'
- By default sst grabs all command line parameters
- You can pass parameters to the python script by putting
--
before your script parameters
- You can pass parameters to the python script by putting