All Projects → ntu-dsi-dcn → ntu-dsi-dcn

ntu-dsi-dcn / ntu-dsi-dcn

Licence: GPL-2.0 license
The official open source ns-3 simulation framework for datacenter network architectures

Programming Languages

python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language
perl
6916 projects
c
50402 projects - #5 most used programming language
Click
5 projects
Gnuplot
187 projects

Projects that are alternatives of or similar to ntu-dsi-dcn

yalla
Spheroid models of morphogenesis for the GPU.
Stars: ✭ 30 (+50%)
Mutual labels:  simulation-framework
CARLsim4
CARLsim is an efficient, easy-to-use, GPU-accelerated software framework for simulating large-scale spiking neural network (SNN) models with a high degree of biological detail.
Stars: ✭ 75 (+275%)
Mutual labels:  simulation-framework
simobility
simobility - light-weight mobility simulation framework. Best for quick prototyping
Stars: ✭ 29 (+45%)
Mutual labels:  simulation-framework
SelfDrivingCarsControlDesign
Self Driving Cars Longitudinal and Lateral Control Design
Stars: ✭ 96 (+380%)
Mutual labels:  simulation-framework
FreeFem-website
FreeFEM website
Stars: ✭ 13 (-35%)
Mutual labels:  simulation-framework
FreeFem-doc
FreeFEM user documentation
Stars: ✭ 98 (+390%)
Mutual labels:  simulation-framework
quic-ns-3
QUIC implementation for ns-3
Stars: ✭ 33 (+65%)
Mutual labels:  ns-3
HELICS
Hierarchical Engine for Large-scale Infrastructure Co-Simulation (HELICS)
Stars: ✭ 76 (+280%)
Mutual labels:  simulation-framework
terrame
TerraME is a programming environment for spatial dynamical modelling
Stars: ✭ 33 (+65%)
Mutual labels:  simulation-framework
fdtd
A 3D electromagnetic FDTD simulator written in Python
Stars: ✭ 195 (+875%)
Mutual labels:  simulation-framework
LiSE
Rules-based engine for life sims, with time travel
Stars: ✭ 88 (+340%)
Mutual labels:  simulation-framework
wrench
WRENCH: Cyberinfrastructure Simulation Workbench
Stars: ✭ 25 (+25%)
Mutual labels:  simulation-framework
auryn
Auryn: A fast simulator for spiking neural networks with synaptic plasticity
Stars: ✭ 77 (+285%)
Mutual labels:  simulation-framework
brian2cuda
A brian2 extension to simulate spiking neural networks on GPUs
Stars: ✭ 46 (+130%)
Mutual labels:  simulation-framework
dose
Digital Organism Simulation Environment (DOSE)
Stars: ✭ 44 (+120%)
Mutual labels:  simulation-framework
mptcp
MultiPath TCP (MPTCP) Implementation in ns-3
Stars: ✭ 72 (+260%)
Mutual labels:  ns-3
FreeFem-modules
A collection of mathematically validated modules (EDP) for FreeFEM
Stars: ✭ 28 (+40%)
Mutual labels:  simulation-framework
lsp-dsp-lib
DSP library for signal processing
Stars: ✭ 37 (+85%)
Mutual labels:  architectures
photontorch
Highly parallel simulation and optimization of photonic circuits in time and frequency domain based on the deep-learning framework PyTorch
Stars: ✭ 29 (+45%)
Mutual labels:  simulation-framework
js-simulator
General-purpose discrete-event multiagent simulation library for agent-based modelling and simulation
Stars: ✭ 52 (+160%)
Mutual labels:  simulation-framework

Getting started

The NTU-DSI-DCN simulation framework is built on top of the core ns-3 simulator (http://www.nsnam.org). The version used is ns-3.13 instead of the latest, for robustness and stability concerns. The fat tree and the BCube architectures have been implemented into the framework. Users can simply simulate the architectures and reproduce their performance models through a simple command line invocation.

More information can be found in our paper:

  1. D. Wong, K.T. Seow, C.H. Foh and R. Kanagavelu, “Towards Reproducible Performance Studies of Datacenter Network Architectures Using An Open-Source Simulation Approach”, Proceedings of the IEEE Global Communications Conference (GLOBECOM’13), December 2013, Atlanta, GA, USA. [Download as PDF]

Pre-requisities

Installation steps

  • Install a Linux Operating System and the Mercurial tool onto a physical computer.
  • Download the simulation framework by checking out the codes from the 'ntu-dsi-dcn' repository using Mercurial
hg clone https://github.com/ntu-dsi-dcn/ntu-dsi-dcn.git
  • Setup and install the necessary packages needed by ns-3 in order to compile and run the simulation framework later (https://www.nsnam.org/wiki/Installation)

  • Go into the project folder 'ntu-dsi-dcn' and run the command to configure the simulation framework first

./waf configure
  • To compile the NTU-DSI-DCN simulation framework, run the following command
./waf

Migrating to the latest ns-3 and Ubuntu LTS versions

We suggest that you start by getting NTU-DSI-DCN to run successfully on the old ns-3.13 and Ubuntu 12.04 LTS first before doing the migration. This allows you to get a good feel of ns-3's basics. Once you are more confident about handling the technicalites of ns-3, proceed on with the migration if needed.

Should you wish to run NTU-DSI-DCN on the latest ns-3 and Ubuntu LTS versions, you need to do the following:

  • First, install a fresh copy of the latest official ns-3 simulator (eg. ns-3.27) on a clean Ubuntu LTS (eg. Ubuntu 16.04 LTS) system.
  • Manually fix the compilation errors using the official ns-3 wiki guide as reference (https://www.nsnam.org/wiki/Installation).
  • Go to the "/scratch" folder in NTU-DSI-DCN.
  • Copy all the NTU-DSI-DCN simulation codes found in this "/scratch" folder over to the latest ns-3 simulator's "/scratch" folder you have just installed.
  • Refactor the NTU-DSI-DCN simulation codes to make it compatible with the latest ns-3 simulator APIs.
  • Follow the "Running the simulations" steps written below to reproduce the experiments stated in our paper.

Running the simulations

The network topologies, configurations for the network devices and protocols, and the traffic flow generation have been implemented and documented. The source codes in the "/scratch" folder contains all the documentation for the implementation details of the architectures, as well as the simulation settings that are used. Users can customize the codes and/or edit the setting variables if necessary for their own needs.

  • To simulate the Fat tree architecture, use this command:
./waf --run scratch/Fat-tree
  • To simulate the BCube architecture, use this command:
./waf --run scratch/BCube
  • To run the experiments stated in the paper's discussion on 'Section IV: Towards Reproducible Simulation Studies', use these commands:
./waf --run scratch/Fat-tree-Bilal

./waf --run scratch/Fat-tree-AlFares
  • The performance statistics outputs are generated in the "/statistics" folder in XML format. Statistics output information such as the average throughput, number of packets transmitted and packet delay can be found by opening the XML file in a text editor. For example, consider this command:
./waf --run scratch/Fat-tree 

The above command will produce a "/statistics/Fat-tree.xml" output file with the statistics information when the simulation is completed.

Extending the simulation framework

If you wish to extend a DCN topology of interest, which is currently not found in the framework, use the simulation codes in the "/scratch" folder as the basis template to get started.

The source code documentation and comments should give you some idea of how to go about building a new DCN topology.

If you wish to contribute a DCN performance model that you have built into NTU-DSI-DCN framework (or any other improvements that you might have), drop us an email over at [email protected] and we can get in touch to discuss the details. Due credits and acknowledgement will be given to the work done by the original authors. We strictly do not claim ownership of works not done by us.

Contributions from the community

16 Jan 2015 - Arfath Ahamed's Fat-tree implementation with NetAnim on ns-3.21.

For those who wish to use this framework to simulate the Fat-tree architecture on ns-3.21 and above, you can use the following source codes contributed by Arfath Ahamed. He can be contacted at [email protected]. Download these source codes into the "/scratch" folder of ns-3 to run it.

Researchers

  • Daji Wong
  • Kiam Tian Seow
  • Chuan Heng Foh
  • Renuga Kanagavelu
  • Ngoc Linh Vu

This research initiative is a collaborative effort between Nanyang Technological University (Singapore) and A*STAR Data Storage Institute (Singapore).

We can be contacted at [email protected].

License

Licensed under the GNU General Public License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].