Advanced ExamplesΒΆ

The VT-S3FNet repository also contains some large co-simulation examples. These examples rely on binaries present in the $HOME/VT-S3FNet/csudp directory.

Separate titan projects need to be created for each of these binaries to run the corresponding co-simulations. Refer to the link here for information on creating and configuring titan projects.

These emulated applications are briefly described here:

  • cusdp/tcp_tgen. This folder contains a tcp traffic generator which can generate periodic, poisson bursty and constant rate limited traffic. Refer to tgen.c file inside the folder for more information on its command line arguments.

  • csudp/tcp_incast_tgen. This folder contains a tcp traffic generator which can generate periodic, poisson bursty and constant rate limited traffic. The number of in-cast to a server is also configurable. Refer to incast_tgen.c file inside the folder for more information on its command line arguments.

  • csudp/tcp_rand. This folder contains a tcp traffic generator which can generate poisson bursty traffic. Unlike tcp_tgen, here the server each client connects to is chosen at random. This makes all timelines dependent on each other. Refer to rand_tgen.c file inside the folder for more information on its command line arguments.

  • csudp/mpi_sat. This folder contains a program which uses the MPI interface to solve the Circuit SAT problem.

  • csudp/mpi_integral. This folder contains a program which uses the MPI interface to solve the parallel integration problem.

  • csudp/mpi_matrix. This folder contains a program which uses the MPI interface to solve the parallel Matrix Vector multiplication problem.

Prior to building/compiling these applications, a unique titan project must be created for each of them. The following project names are expected.

Application

Expected titan project name

csudp/tcp_tgen

tcp_tgen

csudp/tcp_incast_tgen

incast_tgen

csudp/tcp_rand

tcp_rand

csudp/mpi_sat

mpi_sat

csudp/mpi_integral

mpi_integral

csudp/mpi_matrix

mpi_mm

Note

When creating these projects, make sure the project source directory is correctly specified. Other project options may also be configured as per your needs.

Assuming the previously described set of titan projects have been created, compile the applications:

cd ~/VT-S3FNet/csudup
make clean build

Once the previous step is complete, the advanced examples may be run. In particular, two examples are included:

  • Campus network. This co-simulation involves emulated tcp traffic generation on a large simulated campus network.

  • Fat tree network. This co-simulation involves emulation of MPI map-reduce style jobs on a large simulated fat tree topology.

To run these examples, refer to the files $HOME/VT-S3FNet/base/runTCPExperiments.sh and $HOME/VT-S3FNet/base/runMPIExperiments.sh.

These scripts launch several co-simulations one after the other. In each co-simulation the type of workload is changed. Comment out co-simulations which are not needed:

# Run tcp traffic generation experiments with lookahead enabled
sudo ./runTCPExperiments.sh 1

# Run tcp traffic generation experiments with lookahead disabled
sudo ./runTCPExperiments.sh 0

# Run MPI workload experiments with lookahead enabled
sudo ./runMPIExperiments.sh 1

# Run MPI workload experiments with lookahead disabled
sudo ./runMPIExperiments.sh 0