Beispiel #1
0
def generateThreeLayer(k):
	# initialize essential parameters 
	num_ports_per_switch = k	# number of ports per switch
	num_pod = k					# number of pods
	num_servers = int(k/2)			# number of hosts under a ToR switch 
	num_tor = int(k/2)				# number of ToR switches in a pod 
	num_agg = int(k/2)				# number of aggregation switches in a pod 
	num_core = int((k**2)/4)			# number of core switches 
	total_servers = int((k**3)/4)	# number of total servers 

	# initialize component generation 
	num_racks = num_pod * num_tor
	list_of_racks = []
	cpu_cores = 16
	for i in range(num_racks):
		rack = Rack(str(i))
		for j in range(num_servers):
			server = Server(i*(num_servers)+j,"server"+str(i)+"-"+str(j), cpu_cores)
			rack.accumulate(server)
		list_of_racks.append(rack)

	list_of_tors = []
	for i in range(num_tor * num_pod):
		tor = Switch("ToR"+str(i), "ToR", k)
		list_of_tors.append(tor)

	list_of_agg= []
	for i in range(num_agg * num_pod):
		agg = Switch("Agg"+ str(i), "Agg", k)
		list_of_agg.append(agg)

	list_of_core = []
	for i in range(num_core):
		core = Switch("Core"+str(i), "Core", k)
		list_of_core.append(core)

	list_of_links = []
	num_links = int(3 * (k**3) / 4)
	capacity = 1024 	# Mbits
	delay = 1			# ms
	for i in range(num_links):
		link = Link("link"+str(i), capacity, delay)
		list_of_links.append(link)

	return list_of_racks, list_of_tors, list_of_agg, list_of_core, list_of_links
Beispiel #2
0
def generateTwoLayer(num_of_servers, num_of_racks, num_of_core):

	list_of_racks = []
	cpu_cores = 1
	total_ram = 1.0
	total_storage = 1.0
	for i in range(num_of_racks):
		rack = Rack(str(i))
		for j in range(num_of_servers):
			server = Server(i*(num_of_servers)+j,"server"+str(i)+"-"+str(j), cpu_cores, total_ram, total_storage)
			server.tor = "ToR"+str(i)
			rack.accumulate(server)
		list_of_racks.append(rack)

	list_of_tors = []
	for i in range(num_of_racks):
		tor = Switch("ToR"+str(i), "ToR", num_of_servers+num_of_core)
		list_of_tors.append(tor)

	list_of_core = []
	for i in range(num_of_core):
		core = Switch("Core"+str(i), "Core", num_of_racks)
		list_of_core.append(core)

	list_of_links = []
	num_of_tor_links = int(num_of_servers*num_of_racks)
	capacity_tor = 1000 # Mbits
	num_of_other_links = int(num_of_racks*num_of_core)
	capacity_other = 10000 # Mbits
	delay = 90
	for i in range(num_of_tor_links):
		link = Link("link"+str(i), capacity_tor, delay)
		list_of_links.append(link)
	for i in range(num_of_other_links):
		link = Link("link"+str(num_of_tor_links+i), capacity_other, delay)
		list_of_links.append(link)

	return list_of_racks, list_of_tors, list_of_core, list_of_links