StratusLab Benchmarks

To measure performance of StratusLab cloud implementation, we developed application-oriented benchmarks.

These benchmarks covers :

  • CPU-intensive
  • Simulation
  • Analysis
  • Filtering
  • Shared Memory
  • Parallel
  • Workflow

Package installation

Actually we support RPM/YUM packages. Benchmarks binary can be downloaded from :

  • stratusLab YUM repositories

do

yum install stratuslab-benchmarks

Benchmarks source code can be downloaded from :

  • stratusLab Git repository

do

git clone https://user@code.stratuslab.eu/git/benchmarks.git

Benchmarks Deployment

cd to benchmarks/deploy directory

  • deploy directory contains :
    • benchmarks scripts : cpu_benchmarks.sh, io_benchmarks.sh, kepler_benchmarks.sh, mpi_benchmarks.sh, openmp_benchmarks.sh.
    • contextualization files : stratuslab.repo, init.sh
    • generic vm-template
    • generic hostfile for MPI benchmarks
    • directory workflows_bench, which contains kepler workflows

OpenMP Benchmarks

  • Executables : openmp-cg, openmp-jacobi, openmp-matrix.
    • openmp-cg implements conjugate gradient method, solving linear system Ax=b
    • openmp-jacobi implements Jacobian type iteration solving linear system Ax=b
    • openmp-matrix implements matrix multiplication C=AB

For each executable, OpenMP Bemchmark run in both sequential and parallel mode.

To deploy OpenMP benchmarks, run openmp_benchmarks command :

Usage :
openmp_benchmarks -e Executable -c CPUNb -m MemorySize(Mbytes) -n ThreadNb
where :
Executable : openmp-cg, openmp-jacobi or openmp-matrix
CPUNb : Number of CPU to use
MemorySize : Amount of Memory to use (Mbytes)
ThreadNb : Number of thread to be used for OpenMP application
Example : openmp_benchmarks -e openmp-cg  -c 3 -m 3000 -n 6

This command generate Excecutable.xml output file, in xml format, copied in the current directory. This file contains informations : Benchmark, Application, Thread Number, CPU time and Elapsed for both parallel and sequential executables.

MPI Benchmarks

  • Executables : mpi-async, mpi-sync, mpi-persistent, mpi-standard.
    • mpi-async implements MPI asynchronous non blocking communication
    • mpi-sync implements MPI synchronous blocking communication
    • mpi-persistent implements MPI persistent communication
    • mpi-standard implemenst MPI standard communication.

These executables links with lapack library for LU factorization.

To deploy MPI benchmarks, run mpi_benchmarks command :

Usage :
mpi_benchmarks -e Executable -c CPUNb -m MemorySize(Mbytes) 
where :
Executable : mpi-async, mpi-sync, mpi-persistent or mpi-standard.
CPUNb : Number of CPU to use
MemorySize : Amount of Memory to use (Mbytes)
Example : mpi_benchmarks -e mpi-sync  -c 3 -m 3000 

This command generate Excecutable.xml output file, in xml format, copied in the current directory. This file contains informations : Benchmark, Application, CPU time and Elapsed time.

I/O Benchmarks

  • Executables : io-mpi-io.
    • io-mpi-io, read from a file and write to another file. It immplements MPI I/O methods. It could be used with small input data/large output data, small input data/ small output data, large input data/small output data or large input data/ large output data.

To deploy I/O benchmarks, run io_benchmarks command :

Usage :
io_benchmarks -e Executable -c CPUNb -m MemorySize(Mbytes) -i Inputfile_size(Mbytes) -o Outputfile_size(Mbytes) 
where :
Executable : io-mpi-io
CPUNb : Number of CPU to use
MemorySize : Amount of Memory to use in Mbytes
Inputfile_size : size of the input file in Mbytes
Outputfile_size : size of the output file in Mbytes
Example : io_benchmarks -e io-mpi-io  -c 3 -m 3000  -i 100 -o 1000 

This command generate Excecutable.xml output file, in xml format, copied in the current directory. This file contains informations : Benchmark, Application, inputfile, size of the inputfile, outputfile, size of the outputfile, CPU time and Elapsed time.

CPU Benchmarks

  • Executables : cpu_intensive
    • High-CPU requirements with no input and no output data. It imposes an amount of CPU stress on the system.

To deploy cpu benchmarks, run cpu_benchmarks command :

Usage :
cpu_benchmarks -e Executable -c CPUNb -m MemorySize(Mbytes) -t timeout(sec) 
where :
Executable : cpu_intensive
CPUNb : Number of CPU to use
MemorySize : Amount of Memory to use in Mbytes
timeout : time out after N seconds
Example : cpu_benchmarks  -e cpu_intensive -c 3 -m 3000  -t 60 

Workflow Benchmarks

  • Executable : kepler_install.sh kepler-nogui.sh
    • kepler_install.sh : download, configure and install Kepler platform
    • kepler-nogui.sh run kepler workflows

To deploy kepler benchmarks, run kepler_benchmarks command :

Usage :
kepler_benchmarks -e Executable -c CPUNb -m MemorySize(Mbytes) -w kepler_workflow 
where :
Executable : kepler-nogui
CPUNb : Number of CPU to use
MemorySize : Amount of Memory to use in Mbytes
kepler_workflow : Kepler workflow in xml format
Example : kepler_benchmarks -e kepler-nogui -c 3 -m 3000  -w openmp.xml 

This command generate Executable.xml output file, in xml format, copied in the current directory. This file depends in the executables defined in the kepler_workflow.

  • Bookmark at
  • Bookmark "StratusLab Benchmarks" at del.icio.us
  • Bookmark "StratusLab Benchmarks" at Digg
  • Bookmark "StratusLab Benchmarks" at Reddit
  • Bookmark "StratusLab Benchmarks" at Google
  • Bookmark "StratusLab Benchmarks" at StumbleUpon
  • Bookmark "StratusLab Benchmarks" at Facebook
  • Bookmark "StratusLab Benchmarks" at Twitter