UGRAMM
Loading...
Searching...
No Matches
UGRAMM.h File Reference
#include <boost/config.hpp>
#include <iostream>
#include <fstream>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/graph/dijkstra_shortest_paths.hpp>
#include <boost/property_map/property_map.hpp>
#include <boost/graph/graphviz.hpp>
#include <boost/graph/copy.hpp>
#include <queue>
#include <map>
#include <list>
#include <bitset>
#include <algorithm>
#include <vector>
#include <limits>
#include <sys/time.h>
#include "spdlog/spdlog.h"
#include <spdlog/sinks/stdout_color_sinks.h>
#include <boost/program_options.hpp>
#include "../lib/json.h"
Include dependency graph for UGRAMM.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  NodeConfig
 
struct  DotVertex
 
struct  EdgeProperty
 
struct  RoutingTree
 

Macros

#define MAX_DIST   10000000
 
#define RIKEN   1
 
#define DEBUG   0
 
#define computeTopoEnable   0
 
#define maxIterations   39
 
#define NOT_PLACED   -1
 
#define sortAlgorithm   0
 
#define skipFullyLockedNodes   1
 
#define allowWildcardInLocking   0
 

Typedefs

typedef boost::adjacency_list< boost::listS, boost::vecS, boost::bidirectionalS, DotVertex, EdgePropertyDirectedGraph
 
typedef boost::graph_traits< DirectedGraph >::edge_iterator edge_iterator
 
typedef boost::graph_traits< DirectedGraph >::in_edge_iterator in_edge_iterator
 
typedef boost::graph_traits< DirectedGraph >::out_edge_iterator out_edge_iterator
 
typedef boost::graph_traits< DirectedGraph >::vertex_descriptor vertex_descriptor
 
typedef boost::graph_traits< DirectedGraph >::vertex_iterator vertex_iterator
 
typedef boost::graph_traits< DirectedGraph >::out_edge_iterator OutEdgeIterator
 
typedef DirectedGraph::edge_descriptor Edge
 
using json = nlohmann::json
 

Functions

int findMinorEmbedding (DirectedGraph *H, DirectedGraph *G, std::map< int, NodeConfig > *hConfig, std::map< int, NodeConfig > *gConfig)
 
int findMinVertexModel (DirectedGraph *G, DirectedGraph *H, int y, std::map< int, NodeConfig > *hConfig, std::map< int, NodeConfig > *gConfig)
 

Variables

int max_iter
 
std::vector< RoutingTree > * Trees
 
std::vector< std::list< int > > * Users
 
std::map< int, int > invUsers
 
std::vector< int > * HistoryCosts
 
std::vector< int > * TraceBack
 
std::vector< int > * TopoOrder
 
std::map< int, std::string > hNames
 
std::map< std::string, int > hNamesInv
 
std::map< int, std::string > gNames
 
std::map< std::string, int > gNamesInv
 
std::map< std::string, int > gNamesInv_FuncCell
 
std::bitset< 100000 > explored
 
int iterCount
 
float PFac
 
float HFac
 
float base_cost
 
float pfac_mul
 
float hfac_mul
 
int capacity
 
std::shared_ptr< spdlog::logger > UGRAMM
 
std::shared_ptr< spdlog::logger > drcLogger
 
std::vector< std::string > inPin
 
std::vector< std::string > outPin
 
std::map< std::string, std::vector< std::string > > ugrammConfig
 
json UgrammPragmaConfig
 
json jsonParsed
 

Macro Definition Documentation

◆ allowWildcardInLocking

#define allowWildcardInLocking   0

◆ computeTopoEnable

#define computeTopoEnable   0

◆ DEBUG

#define DEBUG   0

◆ MAX_DIST

#define MAX_DIST   10000000

◆ maxIterations

#define maxIterations   39

◆ NOT_PLACED

#define NOT_PLACED   -1

◆ RIKEN

#define RIKEN   1

◆ skipFullyLockedNodes

#define skipFullyLockedNodes   1

◆ sortAlgorithm

#define sortAlgorithm   0

Typedef Documentation

◆ DirectedGraph

typedef boost::adjacency_list<boost::listS, boost::vecS, boost::bidirectionalS, DotVertex, EdgeProperty> DirectedGraph

◆ Edge

typedef DirectedGraph::edge_descriptor Edge

◆ edge_iterator

typedef boost::graph_traits<DirectedGraph>::edge_iterator edge_iterator

◆ in_edge_iterator

typedef boost::graph_traits<DirectedGraph>::in_edge_iterator in_edge_iterator

◆ json

using json = nlohmann::json

◆ out_edge_iterator

◆ OutEdgeIterator

typedef boost::graph_traits<DirectedGraph>::out_edge_iterator OutEdgeIterator

◆ vertex_descriptor

◆ vertex_iterator

typedef boost::graph_traits<DirectedGraph>::vertex_iterator vertex_iterator

Function Documentation

◆ findMinorEmbedding()

int findMinorEmbedding ( DirectedGraph * H,
DirectedGraph * G,
std::map< int, NodeConfig > * hConfig,
std::map< int, NodeConfig > * gConfig )

Finds a minor embedding of graph H into graph G.

Parameters
HPointer to the directed graph H (original application graph read from a DOT file).
GPointer to the directed graph G (original device model read from a DOT file).
hConfigPointer to a map containing configuration information about nodes in graph H.
gConfigPointer to a map containing configuration information about nodes in graph G.
Returns
int Returns an integer indicating the success or failure of finding the minor embedding.

Finds a minor embedding of graph H into graph G.

◆ findMinVertexModel()

int findMinVertexModel ( DirectedGraph * G,
DirectedGraph * H,
int y,
std::map< int, NodeConfig > * hConfig,
std::map< int, NodeConfig > * gConfig )

Finds the minimal vertex model for embedding.

Parameters
HPointer to the directed graph H (original application graph read from a DOT file).
GPointer to the directed graph G (original device model graph read from a DOT file).
yInteger indicating a vertex in graph H to begin from.
hConfigPointer to a map containing configuration information about nodes in graph H.
gConfigPointer to a map containing configuration information about nodes in graph G.
Returns
int Returns an integer indicating the success or failure of finding the minimal embedding.

Finds the minimal vertex model for embedding.

Variable Documentation

◆ base_cost

float base_cost
extern

◆ capacity

int capacity
extern

◆ drcLogger

std::shared_ptr<spdlog::logger> drcLogger
extern

◆ explored

std::bitset<100000> explored
extern

◆ gNames

std::map<int, std::string> gNames
extern

◆ gNamesInv

std::map<std::string, int> gNamesInv
extern

◆ gNamesInv_FuncCell

std::map<std::string, int> gNamesInv_FuncCell
extern

◆ HFac

float HFac
extern

◆ hfac_mul

float hfac_mul
extern

◆ HistoryCosts

std::vector<int>* HistoryCosts
extern

◆ hNames

std::map<int, std::string> hNames
extern

◆ hNamesInv

std::map<std::string, int> hNamesInv
extern

◆ inPin

std::vector<std::string> inPin
extern

◆ invUsers

std::map<int, int> invUsers
extern

◆ iterCount

int iterCount
extern

◆ jsonParsed

json jsonParsed
extern

◆ max_iter

int max_iter
extern

◆ outPin

std::vector<std::string> outPin
extern

◆ PFac

float PFac
extern

◆ pfac_mul

float pfac_mul
extern

◆ TopoOrder

std::vector<int>* TopoOrder
extern

◆ TraceBack

std::vector<int>* TraceBack
extern

◆ Trees

std::vector<RoutingTree>* Trees
extern

◆ UGRAMM

std::shared_ptr<spdlog::logger> UGRAMM
extern

◆ ugrammConfig

std::map<std::string, std::vector<std::string> > ugrammConfig
extern

◆ UgrammPragmaConfig

json UgrammPragmaConfig
extern

◆ Users

std::vector<std::list<int> >* Users
extern