From b5e4e55f2834d9aeb5b9429487af5cca7fba9740 Mon Sep 17 00:00:00 2001 From: Navarrop Date: Mon, 11 Jul 2011 16:48:48 +0200 Subject: [PATCH 1/1] Add script and platforms for cabinet. --- .../Cmake/generate_g5k_platform_cabinets.pl | 339 +++++++++++ examples/platforms/g5k_cabinets.xml | 565 ++++++++++++++++++ examples/platforms/nancy.xml | 106 ++++ 3 files changed, 1010 insertions(+) create mode 100644 buildtools/Cmake/generate_g5k_platform_cabinets.pl create mode 100644 examples/platforms/g5k_cabinets.xml create mode 100644 examples/platforms/nancy.xml diff --git a/buildtools/Cmake/generate_g5k_platform_cabinets.pl b/buildtools/Cmake/generate_g5k_platform_cabinets.pl new file mode 100644 index 0000000000..f5009f3f33 --- /dev/null +++ b/buildtools/Cmake/generate_g5k_platform_cabinets.pl @@ -0,0 +1,339 @@ +#!/usr/bin/perl -w +use strict; +use Switch; + +my $site=""; +my $cluster=""; +my $toversion=3; +my $line; +my $uid=""; +my $i=0; +my @AS_route = (); + +if($#ARGV!=1) { + die "Usage: ./generate_g5k_platform.pl g5k_username g5k_password\n"; +} + +print "\n"; +print "\n"; +print "\n"; +print "\t\n"; + +print "\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +#printf "\t\t\t\n"; +print "\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +printf "\t\t\t\n"; +#printf "\t\t\n"; +print "\n"; + +print "\t\t\n"; +print "\t\t\n"; +print "\t\t\n"; +print "\t\t\n"; +print "\t\t\n"; +print "\t\t\n"; +print "\t\t\n"; +print "\t\t\n"; +print "\t\t\n"; +#print "\t\t\n"; +print "\t\t\n"; + +`wget https://api.grid5000.fr/2.0/grid5000/sites --http-user="$ARGV[0]" --http-password="$ARGV[1]" --no-check-certificate --quiet`; +open SITES_LIGNE, 'sites' or die "Unable to open sites $!\n"; +while(defined($line=)) +{ + if($line =~ /"uid": "(.*)",/){ + $site = $1; + print "\t\t\n"; + + `wget https://api.grid5000.fr/2.0/grid5000/sites/$site/clusters --http-user="$ARGV[0]" --http-password="$ARGV[1]" --no-check-certificate --quiet`; + open CLUSTERS_LIGNE, 'clusters' or die "Unable to open clusters $!\n"; + while(defined($line=)) + { + if($line =~ /"uid": "(.*)",/){ + $cluster = $1; + &get_switch($site, $cluster); + } + } + + close CLUSTERS_LIGNE; + `rm clusters`; + + print "\t\t\t\n"; + print "\t\t\t\t\n"; + print "\t\t\t\n"; + print "\t\t\t\n"; + print "\n"; + + print "\t\t\t\n"; + print "\t\t\t\t\t\n"; + print "\t\t\t\t\t\n"; + print "\t\t\t\n\n"; + + print "\t\t\t\n"; + print "\t\t\t\t\t\n"; + print "\t\t\t\n\n"; + + print "\t\t\t\n"; + print "\t\t\t\t\t\n"; + print "\t\t\t\n\n"; + + print "\t\t\n"; + + push @AS_route, $site; + } +} +close SITES_LIGNE; +`rm sites`; + +printf "\n"; + +while(@AS_route) +{ + $site = pop @AS_route; + print "\t\t\n"; + print "\t\t\t\n"; + print "\t\t\n"; +} + +print "\t\n"; +print "\n"; + +sub get_switch { + my $total; + my $switch=""; + my @switch_list=(); + + my @host=(); + my @host_switch=(); + $site="$_[0]"; + $cluster="$_[1]"; + `wget https://api.grid5000.fr/2.0/grid5000/sites/$site/clusters/$cluster/nodes --http-user="$ARGV[0]" --http-password="$ARGV[1]" --no-check-certificate --quiet`; + open NODES_LIGNE, 'nodes' or die "Unable to open nodes $!\n"; + while(defined($line=)) + { + if($line =~ /"uid": "(.*)",/) + { + $uid = $1; + push(@host, $1); + } + if($line =~ /"total": (.*),/){ + $total = $1; + } + if($line =~ /"switch": "(.*)",/ && !$switch) + { + $switch = "$1"; + push(@host_switch, $1); + } + if( $uid && $switch ) + { + push(@switch_list, $switch); + $uid=""; + $switch=""; + } + } + close NODES_LIGNE; + `rm nodes`; + + my %count; + my @uniq_array = grep { ++$count{$_} < 2 } @switch_list; + @uniq_array = sort (@uniq_array); + if(@switch_list && @uniq_array != 1){ + + if(@switch_list != @host){ + printf "Take care \@host != of \@switch_list\n"; + } + + print "\t\t\t\n"; + + my @num=(); + my $radical; + foreach(@uniq_array){ + $switch = $_; + $i=0; + @num=(); + foreach(@host_switch){ + if($_ =~ $switch){ + if($host[$i] =~ /$cluster-(.*)/){ + push(@num, $1); + } + } + $i++; + } + + my $deb; + my $fin; + @num=sort {$a <=> $b} (@num); + $radical = ""; + + $i=0; + foreach(@num){ + if($i == 0){ + $deb = $num[$i]; + $fin = $num[$i]; + } + else{ + if($num[$i] == ($num[$i-1]+1) ) + { + $fin = $num[$i]; + if(@num == ($i+1)){ + if($deb != $fin) + { + if(!($radical =~ /^$/)) + { + $radical = $radical.";"; + } + $radical = $radical.$deb."-".$fin; + $deb = $num[$i]; + $fin = $num[$i]; + } + else + { + $radical=$radical.";".$num[$i]; + } + } + } + else + { + if($deb != $fin) + { + if(!($radical =~ /^$/)) + { + $radical = $radical.";"; + } + $radical = $radical.$deb."-".$fin; + $deb = $num[$i]; + $fin = $num[$i]; + } + else + { + $radical=$radical.";".$num[$i]; + } + + } + } + $i++; + } + print "\t\t\t\t\n"; + } + + print "\n\t\t\t\t\n"; + print "\t\t\t\t\t\n"; + print "\t\t\t\t\n"; + + print "\t\t\t\t\n\n"; + + print "\t\t\t\t\n"; + print "\t\t\t\t\t\n"; + print "\t\t\t\t\n"; + + print "\t\t\t\t\n"; + print "\t\t\t\t\t\n"; + print "\t\t\t\t\n"; + + print "\t\t\t\t\n"; + print "\t\t\t\t\t\n"; + print "\t\t\t\t\n"; + + + print "\t\t\t\n"; + + + } + else{ + print "\t\t\t\n"; + } + print "\t\t\t\n\n"; +} + + +sub get_gflops { + switch ($_[0]) { + case "bordeplage" { print "5.2297E9" } + case "bordereau" { print "8.8925E9" } + case "borderline" { print "13.357E9" } + + case "chicon" { print "8.9618E9" } + case "chimint" { print "23.531E9" } + case "chinqchint" { print "22.270E9" } + case "chirloute" { print "24.473E9" } + + case "adonis" { print "23.681E9" } + case "edel" { print "23.492E9" } + case "genepi" { print "21.175E9" } + + case "capricorne" { print "4.7233E9" } + case "sagittaire" { print "5.6693E9" } + + case "graphene" { print "16.673E9" } + case "griffon" { print "20.678E9" } + + case "gdx" { print "4.7153E9" } + case "netgdx" { print "4.7144E9" } + + case "paradent" { print "21.496E9" } + case "paramount" { print "12.910E9" } + case "parapide" { print "30.130E9" } + case "parapluie" { print "27.391E9" } + + case "helios" { print "7.7318E9" } + case "sol" { print "8.9388E9" } + case "suno" { print "23.530E9" } + + case "pastel" { print "9.5674E9" } + case "violette" { print "5.1143E9" } + + case "default" { print "3.542E9" } + else { print "xxxxxxx" } + } +} diff --git a/examples/platforms/g5k_cabinets.xml b/examples/platforms/g5k_cabinets.xml new file mode 100644 index 0000000000..dfb95028a9 --- /dev/null +++ b/examples/platforms/g5k_cabinets.xml @@ -0,0 +1,565 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/platforms/nancy.xml b/examples/platforms/nancy.xml new file mode 100644 index 0000000000..f21a9b160a --- /dev/null +++ b/examples/platforms/nancy.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.20.1