Skip to content

Simgrid setup

Git revision

cd ~/simgrid3 && git rev-parse HEAD

cmake configuration

cd ~/simgrid3 && cmake --system-information 

Experimental setup

Code

C code

cat random_flows.c

Makefile

cat Makefile

Early experiment

touch res.txt
echo "Platform: $platform" >> res.txt
for i in 1 2 5 10 20 50 ; do
  for j in Full Lazy ; do
    echo "Network/optim: $j" >> res.txt
    echo "Number of flows: $i" >> res.txt
    ./random_flows $platform $i --cfg=network/optim:$j 2>/dev/null >> res.txt
  done
done
echo -n res.txt

DoE

R DoE

1
2
3
4
5
6
library(DoE.base)
design = fac.design(factor.names=list(platform=c("msg_platform.xml","median_p2psim.xml"), optim=c("Lazy","Full"),
         numflows=c(1, 2, 5, 10, 20, 50, 100, 200)),replication=5)
#cbind(run.order(design),design)
#write.csv(doe,paoutput, row.names = TRUE, quote=FALSE)
export.design(design, filename = output, type = "csv")

Makefile Generation

./doe_makefile_generate.pl $output.csv 

Experiment execution

make -C $output
cat $output/*.txt > $output.txt

Output reformating

open INPUT, $input;
$output = $input;
$output =~ s/\.txt$/.csv/;
$output = "res_".$output;

open OUTPUT, "> ".$output;
while($line=<INPUT>) {
  if($line =~ /^platform: *(.*)$/) {
    $platform = $1;
  } elsif($line =~ /^run.no: *(.*)$/) {
    $run_no = $1;
  } elsif($line =~ /^optim: *(.*)$/) {
    $optim = $1;
  } elsif($line =~ /numflows: *(.*)$/) {
    $num = $1;
  } elsif ($line =~ /Elapsed time : *(.*)/) {
    print OUTPUT "$run_no, $platform, $num, $optim, $1\n";
  }
}
print $output

Typical R analysis

1
2
3
library(ggplot2)
df <- read.csv(input, header=FALSE, strip.white=TRUE)
names(df) <- c("run.no", "platform", "numflows", "optim", "elapsed")

Whole run

Let's do a real set of experiments now down to the final plot.

1
2
3
4
library(DoE.base)
design = fac.design(factor.names=list(platform=c("waxman_200_1H.xml","msg_platform.xml","median_p2psim.xml"), optim=c("Lazy","Full"),
         numflows=c(10, 50, 100, 150)),replication=50)
export.design(design, filename = output, type = "csv")

file:

make: entrant dans le répertoire « /home/alegrand/Work/Documents/Articles/2012/simgrid3/experiments/plan4 »
make: quittant le répertoire « /home/alegrand/Work/Documents/Articles/2012/simgrid3/experiments/plan4 »

file: