[Gems-users] Hierarchical Ring Interconnect


Date: Sat, 2 Jan 2010 03:06:38 +0530 (IST)
From: Abhishek Moghe <abhishekmoghe@xxxxxxxxxxx>
Subject: [Gems-users] Hierarchical Ring Interconnect
Hello


I am working on a "Token based Cache Coherence Protocol with Hierarchical Ring Interconnection Network".

For this, I first need to have a ring interconnection network which i managed to get just by writing a new network file in the folder /ruby/network/simple/Network_Files/ and it is named RING_.......txt

But when I ran the simulation with a sample trace file and checked the
(--- Begin Topology Print ---) stats

-------------

Topology print ONLY indicates the _NETWORK_ latency
between two machines
It does NOT include the latency within the machines
 NO of switches : 16

L1Cache-0 Network Latencies
  L1Cache-0 -> L1Cache-1 net_lat: 5
  L1Cache-0 -> L1Cache-2 net_lat: 7
  L1Cache-0 -> L1Cache-3 net_lat: 9
  L1Cache-0 -> L1Cache-4 net_lat: 11
  L1Cache-0 -> L1Cache-5 net_lat: 13
  L1Cache-0 -> L1Cache-6 net_lat: 15
  L1Cache-0 -> L1Cache-7 net_lat: 17
  L1Cache-0 -> L1Cache-8 net_lat: 19
  L1Cache-0 -> L1Cache-9 net_lat: 17
  L1Cache-0 -> L1Cache-10 net_lat: 15
  L1Cache-0 -> L1Cache-11 net_lat: 13
  L1Cache-0 -> L1Cache-12 net_lat: 11
  L1Cache-0 -> L1Cache-13 net_lat: 9
  L1Cache-0 -> L1Cache-14 net_lat: 7
  L1Cache-0 -> L1Cache-15 net_lat: 5
  L1Cache-0 -> L2Cache-0 net_lat: 3
  L1Cache-0 -> L2Cache-1 net_lat: 5
  L1Cache-0 -> L2Cache-2 net_lat: 7
  L1Cache-0 -> L2Cache-3 net_lat: 9

.
.
.

---------------

 it shows that the network latency increases progressively from one machine to the other till it reaches the diametrically opposite machine on the ring
(at the moment this is a simple ring topology not the heirarchical one) and then progressively decrease on its way back to the starting point. So this makes me think that it is a bidirectional ring. But I wanted a unidirectional ring so I modified the makeFileSpecified() in Topology.C file. This is what I did
 
I commented out the following lines of code

---------
 
      Vector < SwitchID > otherDirectionNodes;
      otherDirectionNodes.setSize(2);
      otherDirectionNodes[0] = nodes[1];
      if (internalNodes == 2) {  // this is an internal link
        otherDirectionNodes[1] = nodes[0];
      } else {
        otherDirectionNodes[1] = nodes[0]+m_nodes;
      }
      nodePairs.insertAtBottom(otherDirectionNodes);
      latencies.insertAtBottom(latency);
      if (weight != -1) {
        weights.insertAtBottom(weight);
      } else {
        weights.insertAtBottom(latency);
      }
      bw_multis.insertAtBottom(bw_multiplier);

----------

I am thinking the net_lat should increase moving from one machine to the other on the ring as they did earlier but after reaching the diametrically opposite machine on the ring, instead of decreasing, there should be further increase in their value since the rings are unidirectional.

so I recompiled and checked for the same (--- Begin Topology Print ---) stats.

but this time net_lat for all machines is -1


Can anybody guide me on what else i could do to get unidirectional ring?


Any help is appreciated ...


The INTERNET now has a personality. YOURS! See your Yahoo! Homepage.
[← Prev in Thread] Current Thread [Next in Thread→]
  • [Gems-users] Hierarchical Ring Interconnect, Abhishek Moghe <=