INCS775
Data Center Security (Fall 2022) Assignment #1
The goal of this assignment is to implement one of the following data center topologies:
- K-ary Fat Tree
- BCube (k, n)
You can choose any programing language and write a program that takes k and/or n parameters and creates the target topology in an output file. Notice that each team is required to implement one of the above topologies. Every team needs to submit the 1) compiled source code and 2) output file containing the generated topology.
1. K-ary Fat Tree
This program takes k as an input and generates the topology in an output file. You may use the following naming convention for nodes (including servers and switches) starting from the far left server ( “N0” ). For example, the following picture shows a 4-ary Fat Tree_based data center. Servers are assigned “N0” to “N15”, followed by Edge switches (“N16” to “N23”), Aggregation switches (“N24” to “N31”) and Core switches (“N32” to “N35”) respectively.
To generate the topology in output file, you need to show the connection of each pair of nodes in the data center. If there is a direct connection between two nodes Ni and Nj in your topology, you should write:
Ni Nj 1
If there is no direct connection between two nodes Ni and Nj in your topology, you should write:
Ni Nj 9999
So your output file should be in the following format:
N0 N1 9999 N0 N2 9999 .
.
N0 N16 1 .
.
2. BCube (k, n)
This program takes k and n as inputs and generates the topology in an output file. You may use the similar naming convention to Fat Tree program for nodes (including servers and switches) starting from the far left server ( “N0” ). For example, the following picture shows a BCube (1,4) data center. Servers are assigned “N0” to “N15”, followed by Level- 1 switches (“N16” to “N19”), and Level-2 switches (“N20” to “N23”) respectively.
To generate the topology in output file, you need to show the connection of each pair of nodes in the data center. If there is a direct connection between two nodes Ni and Nj in your topology, you should write:
Ni Nj 1
If there is no direct connection between two nodes Ni and Nj in your topology, you should write:
Ni Nj 9999
So your output file should be in the following format:
N0 N1 9999 N0 N2 9999 .
.
N0 N16 1 .