/clusim

Clusim is a golang-based Virtualization-as-a-Code for distributed computing development, simulation, and emulation infrastructure.

Primary LanguagePythonApache License 2.0Apache-2.0

Introduction

CLUSIM: A Fast and Scalable Trace-Driven Computer Cluster Simulator Authors: Cheng-Yueh Liu, Po-Yao Huang, Yuan-Di Li

This repo shows how to execute a simple MPI Application on virtual cluster.

1. Create a single VM

$ ./vm-create.sh
$ ./vm-run.sh

2. Lauch a Virtual Cluster and Run a MPI-application

VM Cluster

Download the prebuilt ubuntu 20.04 image (url:"https://drive.google.com/open?id=1-xM6ZJ-q4Y9OxPwe6NDh9Yv6aKlJ7b-n"), and place it at /image/ as /image/ubuntu1604.img

cd clusim/vmcluster
./vmcluster update-image
./start-vcluster.sh 4 0

Then, we will log in to clusim0 whose ip is 172.17.0.2

./demo-npb.sh bt A 4
exit

Snapshot of Demo

mpi nas bt

4. Build NS-3

cd clusim/ns3
./build.py

5. Using Clusim to Simulate and Analyze Network Performance

Modify the path to the logged pcap file in simple.cfg

cd clusim
make
cp config/default.cfg .
./clusim default.cfg

Publication

[1] C.Y. Liu, P.Y. Huang, C.H. Tu and S.H. Hung, "A Fast and Scalable Cluster Simulator for Network Performance Projection of HPC Applications," 2018 International Conference on High Performance Computing & Simulation (HPCS), 2018, pp. 970-977, doi: 10.1109/HPCS.2018.00153.