Git Product home page Git Product logo

cloud-computing's Introduction

 SABAREESH SURESH 
CWID : A20396634
READ ME INSTRUCTIONS

CS553_PA1_Compile Instructions:

All Benchmarks are tested using Prometheus testbed (216.47.142.37)
The directory cs553-pa1 contains all the source code files in their respective directories naming cpu, memory, disk and network.

CPU Benchmark:
To run and compile the CPU benchmark, get into the CPU directory and then compile the file MyCPUBench.c which performs the CPU Benchmark.

To compile and run this file use these following instructions:

1.To run this program successfully first compile using the following command,
gcc MyCPUBench.c -o MyCPUBench -lpthread
2.Once the compilation is done, run the compiled file MyCPUBench in the following manner
./MyCPUBench  <Type of precision>  <Number of threads>
For example, to measure the CPU performance of Quarter precision for 1 thread using the following instruction to run the benchmark.
./MyCPUBench QP 1

Follow the same instruction to run 1,2,4 threads for precisions HP, SP and DP accordingly.
QP , HP , SP ,DP denotes Quarter precision, Half precision, Single precision and Double precision respectively.

Memory Benchmark:
Go to cs553-pa1  memory directory to evaluate the memory benchmark. The source code naming MyRAMBench.c has the memory benchmark that is to be evaluated.

To compile and run this file use these following instructions:
1.To compile use the command gcc MyRAMBench.c -o MyRAMBench -lpthread
2.Once the compilation is done, run the compiled file MyRAMBench in the following manner,
./MyRAMBench <workload>   <Number of threads>  <block size>

For example, to measure the memory benchmark for RWS, one thread of block size 1KB then follow this command
./MyRAMBench  RWS  1  1000
Follow the same instruction to run for 1B,1KB,1MB,10MB for the respective threads 1,2 and 4 accordingly for RWS (Read Write Sequential) and for RWR (Read Write Random) , replace RWR instead of RWS in the workload and run as  ./MyRAMBench  RWR  1  1000

Disk Benchmark:
Go to cs553-pa1  disk directory to evaluate the disk benchmark. The source code naming MyDiskBench.c has the Disk benchmark that is to be evaluated.

To compile and run this file use these following instructions:
1.To compile use the command gcc MyDiskBench.c -o MyDiskBench -lpthread
2.Once the compilation is done, run the compiled file MyRAMBench in the following manner,
./MyDiskBench <workload>   <Number of threads>  <block size>

For example, to measure the memory benchmark for WS, one thread of block size 1KB then follow this command
./MyDiskBench  WS  1  1000
Follow the same instruction to run for 1KB,1MB,10MB,100MB for the respective threads 1,2,4,8,16,32,64,128 accordingly for WS (Write Sequential) and for WR (Write Random) , RS (Read Sequential) and for RR (Read Random)  replace WR instead of WS in the workload and run as  ./MyDiskBench  WR  1  1000

Network Benchmark:
Go to cs553-pa1  network directory to evaluate the memory benchmark. The network consists of client and server for Connection types TCP and UDP enabling the effective mode of transfer of data bytes.
Firstly, run and compile the Server then execute the client (compile and run) accordingly. The same set of instructions is followed for both UDP and TCP protocols.

Open two terminals in the cluster and find its local IP address and based on the IP you are using modify the connection accordingly.
In order to run and execute the TCP Connection, follow the commands in order.
Go to the source code MyNETBench-TCP_Server.c and execute the following the command
1.To compile use the command gcc MyNETBench-TCP_Server.c -o TCP_Server -lpthread
2.Once the compilation is done, run the compiled file TCP_Server in the following manner,
./ TCP_Server  <Connection Type>   <block size>   <Number of threads>
For example, to measure the Network benchmark for TCP Server, one thread of block size 1KB then follow this command
./ TCP_Client   TCP  1024  1     (1KB)
./ TCP_Client   TCP  32768  1   (32KB)
./ TCP_Client   TCP  1  1           (1B)

After executing this instruction, the server will now start to listen the message from the client and now start the client using this following instruction

Go to the source code MyNETBench-TCP_Client.c and execute the following the command
1.To compile use the command gcc MyNETBench-TCP_Client.c  -o  TCP_Client  -lpthread
2.Once the compilation is done, run the compiled file TCP_Server in the following manner,
./ TCP_Client  <Connection Type>   <block size>   <Number of threads>

For example, to measure the Network benchmark for TCP Client, one thread of block size 1KB then follow this command
./ TCP_Client   TCP  1024  1     (1KB)
./ TCP_Client   TCP  32768  1   (32KB)
./ TCP_Client   TCP  1  1           (1B)

Follow the same instruction to run for 1B,1KB,32KB for threads 1,2,4,8 accordingly for UDP Connection protocol, replace UDP instead of TCP .

In order to run and execute the UDP Connection, follow the commands in order.
Go to the source code MyNETBench-UDP_Server.c and execute the following the command
1.To compile use the command gcc MyNETBench-UDP_Server.c -o UDP_Server -lpthread
2.Once the compilation is done, run the compiled file UDP_Server in the following manner,
./ UDP_Server  <Connection Type>   <block size>   <Number of threads>
For example, to measure the Network benchmark for UDP Server, one thread of block size 1KB then follow this command
./ UDP_Server   UDP  1024  1

After executing this instruction, the server will now start to listen the message from the client and now start the client using this following instruction

Go to the source code MyNETBench-UDP_Client.c and execute the following the command
1.To compile use the command gcc MyNETBench-UDP_Client.c  -o  UDP_Client  -lpthread
2.Once the compilation is done, run the compiled file UDP_Server in the following manner,
./ UDP_Client  <Connection Type>   <block size>   <Number of threads>

For example, to measure the Network benchmark for UDP Client, one thread of block size 1KB then follow this command
./ UDP_Client   UDP  1024 1


Bash Scripts:
The Bash scripts reduce the complexity and its ease to use. Bash scripts are provided to invoke CPU, Memory and Disk Benchmark performances. The scripts run all stated scenarios for the experiments: Read /Write, Sequential/ Random with varying block sizes and threads, FLOPS for CPU.

Bash_CPU.sh run this bash file to evaluate the CPU performance. Input is given with varying number of threads and the precision. The respective output will be generated under the directory naming output that contains .thread.dat files where the output is of space separated column of values as mentioned.For a faster execution run in compute node (interactive mode)

Bash_memory.sh run this bash file to evaluate the Memory performance. Input is given with varying block sizes, number of threads for workloads sequential read write and random read write. The respective output will be generated under the directory naming output that contains  .thread.dat files where the output is of space separated column of values as mentioned . For a faster execution run in compute node (interactive mode)


Bash_disk.sh run this bash file to evaluate the Disk performance. Input is given with varying block sizes, number of threads for workloads sequential read, sequential write, random read and random write. The respective output will be generated under the directory naming output that contains  .thread.dat files where the output is of space separated column of values as mentioned . For a faster execution run in compute node (interactive mode)

Network : Open two terminals in the compute node and then execute the instructions accordingly. The output will be displayed in the console directly for the ease of use. 


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.