Topology.cc (9116:9171e26543fa) Topology.cc (9117:49116b947194)
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

278void
279Topology::clearStats()
280{
281 for (int cntrl = 0; cntrl < m_controller_vector.size(); cntrl++) {
282 m_controller_vector[cntrl]->clearStats();
283 }
284}
285
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

278void
279Topology::clearStats()
280{
281 for (int cntrl = 0; cntrl < m_controller_vector.size(); cntrl++) {
282 m_controller_vector[cntrl]->clearStats();
283 }
284}
285
286void
287Topology::printConfig(std::ostream& out) const
288{
289 if (m_print_config == false)
290 return;
291
292 assert(m_component_latencies.size() > 0);
293
294 out << "--- Begin Topology Print ---" << endl
295 << endl
296 << "Topology print ONLY indicates the _NETWORK_ latency between two "
297 << "machines" << endl
298 << "It does NOT include the latency within the machines" << endl
299 << endl;
300
301 for (int m = 0; m < MachineType_NUM; m++) {
302 int i_end = MachineType_base_count((MachineType)m);
303 for (int i = 0; i < i_end; i++) {
304 MachineID cur_mach = {(MachineType)m, i};
305 out << cur_mach << " Network Latencies" << endl;
306 for (int n = 0; n < MachineType_NUM; n++) {
307 int j_end = MachineType_base_count((MachineType)n);
308 for (int j = 0; j < j_end; j++) {
309 MachineID dest_mach = {(MachineType)n, j};
310 if (cur_mach == dest_mach)
311 continue;
312
313 int src = MachineType_base_number((MachineType)m) + i;
314 int dst = MachineType_base_number(MachineType_NUM) +
315 MachineType_base_number((MachineType)n) + j;
316 int link_latency = m_component_latencies[src][dst];
317 int intermediate_switches =
318 m_component_inter_switches[src][dst];
319
320 // NOTE switches are assumed to have single
321 // cycle latency
322 out << " " << cur_mach << " -> " << dest_mach
323 << " net_lat: "
324 << link_latency + intermediate_switches << endl;
325 }
326 }
327 out << endl;
328 }
329 }
330
331 out << "--- End Topology Print ---" << endl;
332}
333
334// The following all-pairs shortest path algorithm is based on the
335// discussion from Cormen et al., Chapter 26.1.
336void
337extend_shortest_path(Matrix& current_dist, Matrix& latencies,
338 Matrix& inter_switches)
339{
340 bool change = true;
341 int nodes = current_dist.size();

--- 90 unchanged lines hidden ---
286// The following all-pairs shortest path algorithm is based on the
287// discussion from Cormen et al., Chapter 26.1.
288void
289extend_shortest_path(Matrix& current_dist, Matrix& latencies,
290 Matrix& inter_switches)
291{
292 bool change = true;
293 int nodes = current_dist.size();

--- 90 unchanged lines hidden ---