Cluster.py (9862:54d6728d99cf) Cluster.py (10088:eca928d8a4ab)
1# Copyright (c) 2012 Advanced Micro Devices, Inc.
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met: redistributions of source code must retain the above copyright
7# notice, this list of conditions and the following disclaimer;
8# redistributions in binary form must reproduce the above copyright

--- 72 unchanged lines hidden (view full) ---

81 self.router = Router(router_id=self.num_routers())
82 network.routers.append(self.router)
83
84 for node in self.nodes:
85 if type(node) == Cluster:
86 node.makeTopology(options, network, IntLink, ExtLink, Router)
87
88 # connect this cluster to the router
1# Copyright (c) 2012 Advanced Micro Devices, Inc.
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met: redistributions of source code must retain the above copyright
7# notice, this list of conditions and the following disclaimer;
8# redistributions in binary form must reproduce the above copyright

--- 72 unchanged lines hidden (view full) ---

81 self.router = Router(router_id=self.num_routers())
82 network.routers.append(self.router)
83
84 for node in self.nodes:
85 if type(node) == Cluster:
86 node.makeTopology(options, network, IntLink, ExtLink, Router)
87
88 # connect this cluster to the router
89 link = IntLink(link_id=self.num_int_links(), node_a=self.router, node_b=node.router)
89 link = IntLink(link_id=self.num_int_links(), node_a=self.router,
90 node_b=node.router)
91
90 if node.extBW:
91 link.bandwidth_factor = node.extBW
92 if node.extBW:
93 link.bandwidth_factor = node.extBW
92 elif self.intBW: # if there is an interanl b/w for this node and no ext b/w to override
94
95 # if there is an interanl b/w for this node
96 # and no ext b/w to override
97 elif self.intBW:
93 link.bandwidth_factor = self.intBW
94
95 if node.extLatency:
96 link.latency = node.extLatency
97 elif self.intLatency:
98 link.latency = self.intLatency
99
100 network.int_links.append(link)
101 else:
98 link.bandwidth_factor = self.intBW
99
100 if node.extLatency:
101 link.latency = node.extLatency
102 elif self.intLatency:
103 link.latency = self.intLatency
104
105 network.int_links.append(link)
106 else:
102 # node is just a controller connect it to the router via a ext_link
103 link = ExtLink(link_id=self.num_ext_links(), ext_node=node, int_node=self.router)
107 # node is just a controller,
108 # connect it to the router via a ext_link
109 link = ExtLink(link_id=self.num_ext_links(), ext_node=node,
110 int_node=self.router)
111
104 if self.intBW:
105 link.bandwidth_factor = self.intBW
106 if self.intLatency:
107 link.latency = self.intLatency
108
109 network.ext_links.append(link)
110
111 def __len__(self):
112 return len([i for i in self.nodes if type(i) != Cluster]) + \
113 sum([len(i) for i in self.nodes if type(i) == Cluster])
112 if self.intBW:
113 link.bandwidth_factor = self.intBW
114 if self.intLatency:
115 link.latency = self.intLatency
116
117 network.ext_links.append(link)
118
119 def __len__(self):
120 return len([i for i in self.nodes if type(i) != Cluster]) + \
121 sum([len(i) for i in self.nodes if type(i) == Cluster])