acmacro/aci.m4 \
tools/graspe-slave.in \
tools/MSG_visualization \
- tools/MSG_visualization/colorize.pl \
- tools/platform_generation \
- tools/platform_generation/WAN_3.tiers \
- tools/platform_generation/tiers_simgrid.pl \
- tools/platform_generation/AlvinMisc.pm \
- tools/platform_generation/graph_tbx.pm \
- tools/platform_generation/graph_viz.pm \
- tools/platform_generation/tiers.pm \
- tools/platform_generation/msgplatform2surfxml.pl
+ tools/MSG_visualization/colorize.pl
SOURCE_FILES = $(shell find . -name "*.[ch]")
TAGS: $(SOURCE_FILES)
+++ /dev/null
-#!/usr/bin/perl -w
-package AlvinMisc;
-use strict;
-#require 5.005_64;
-#our($VERSION, @EXPORT_OK, @ISA);
-use Carp;
-use Symbol;
-use SelectSaver;
-use IO (); # Load the XS module
-use IO::Handle;
-use English;
-require Exporter;
-use vars qw($VERSION @ISA @EXPORT_OK);
-@ISA = qw(Exporter);
-
-$VERSION = "1.21";
-
-@EXPORT_OK = qw(
- host
- sys_arch
-
- min
- max
- beep
- approx
-
- melange
- alea_gaussien
- random
- canonical_name
-);
-
-our($canonical_name);
-sub set_canonical_name {
- $canonical_name=$PROCESS_ID.host();
-# $canonical_name="4279moby";
-}
-
-#############
-# These subroutines determine hostnames, archs, ...
-#
-sub host() {
- my($un);
- $un=`uname -n`; chomp($un);
- return $un;
-}
-
-sub sys_arch() {
- my($us,$ur,$up);
- $us = `uname -s`; chomp($us);
- $ur = `uname -r`; chomp($ur);
- $up = `uname -p`; chomp($up);
- return $us."-".$ur."-".$up;
-}
-
-sub moyenne {
- my($moy)=0;
-
- if(scalar(@_)==0) {return $moy;}
- foreach (@_) {
- $moy+=$_;
- }
- $moy/=scalar(@_);
- return $moy;
-}
-
-#############
-# min
-#
-sub min {
- my $min = shift;
- foreach (@_) { $min = $_ if $_ < $min; }
- $min;
-}
-
-#############
-# max
-#
-sub max {
- my $max = shift;
- foreach (@_) { $max = $_ if $_ > $max; }
- $max;
-}
-
-
-#############
-# beep !!
-#
-sub beep{
- print STDOUT "\a";
- return;
-}
-
-#############
-# approx
-#
-sub approx{
- my($number) = shift;
- my($e);
-
- $e = int($number);
- if (($number-$e) < 0.5) {
- return $e;
- } else {
- return ($e+1);
- }
-}
-
-######################## fonctions aléatoires diverses #############################
-
-sub melange {
- my $tableau=shift;
- my($i,$j);
-
- for($i = @$tableau ; --$i; ) {
- $j = int rand ($i+1);
- next if $i==$j;
- @$tableau[$i,$j] = @$tableau[$j,$i];
- }
-}
-
-sub alea_gaussien {
- my($u1,$u2);
- my $w;
- my($g1, $g2);
-
- do {
- $u1 = 2*rand() -1;
- $u2 = 2*rand() -1;
- $w = $u1*$u1 + $u2*$u2 ;
- } while ( $w >=1 || $w==0 );
-
- $w = sqrt ( (-2*log($w))/$w );
- $g2 = $u1 * $w;
- $g1 = $u2 * $w;
- return($g1);
-}
-
-sub random {
- my($min,$max)=@_;
- return ($min+rand($max-$min));
-}
-
-
-srand;
-
-set_canonical_name;
-
-1;
+++ /dev/null
-#
-# Parameters for Network Model ModelId: 856566616
-# ============================
-#
-# Value Parameter
-# ----- ---------
-#
-# 1 NW: number of WANs
-# 5 NM: number of MANs per WAN
-# 5 NL: number of LANs per MAN
-# 10 SW: number of nodes per WAN
-# 10 SM: number of nodes per MAN
-# 5 SL: number of nodes per LAN
-# 2 RW: intranetwork redundancy for WAN
-# 1 RM: intranetwork redundancy for MANs
-# 1 RL: intranetwork redundancy for LANs
-# 2 RMW: internetwork redundancy for MAN to WAN
-# 1 RLM: internetwork redundancy for LAN to MAN
-#
-# 100 Grid size (square)
-# 40 Grid unit for WAN
-# 8 Grid unit for MAN
-# 2 Grid unit for LAN
-#
-# 0 Proximity test for WAN (0 is inactive)
-# 0 Proximity test for MAN (0 is inactive)
-# 0 Proximity test for LAN (0 is inactive)
-#
-# 0 Edge list is directed (0) or undirected (1)
-# Total Number of Nodes (derived) : 185
-#
-# Edge Metrics
-# ------------
-#
-# From To Band- Fixed Delay/Unit
-# Type Type width Delay Distance
-# ------------------------------------------
-# 0 0 10 5 1
-# 0 1 10 50 1
-# 0 2 0 0 1
-# 1 0 10 50 1
-# 1 1 100 100 10
-# 1 2 100 1000 1
-# 2 0 0 0 1
-# 2 1 100 1000 1
-# 2 2 1000 150 100
-#
-# NODES
-# =====
-#
-# Node X Y Type (0 = WAN, 1 = MAN, 2 = LAN)
-# ------------------------------------
-0 1520 2360 0
-1 2960 2800 0
-2 3400 600 0
-3 2400 920 0
-4 3000 1360 0
-5 3760 2400 0
-6 2000 2160 0
-7 1440 3080 0
-8 1640 3280 0
-9 3560 1720 0
-10 2304 3520 1
-11 1760 3552 1
-12 2072 3392 1
-13 2176 3704 1
-14 2296 3672 1
-15 1832 3688 1
-16 1648 3336 1
-17 1968 4064 1
-18 2384 3928 1
-19 2328 3352 1
-20 3840 1984 1
-21 4376 1904 1
-22 4128 2008 1
-23 3864 2448 1
-24 3848 2336 1
-25 3792 2456 1
-26 4200 1752 1
-27 4344 1728 1
-28 3952 2232 1
-29 3624 1832 1
-30 4232 2064 1
-31 3808 2280 1
-32 3744 2328 1
-33 4352 2072 1
-34 3840 2256 1
-35 3792 1680 1
-36 3648 2240 1
-37 3992 2384 1
-38 4360 1880 1
-39 4304 1688 1
-40 4200 856 1
-41 4152 896 1
-42 3936 1176 1
-43 4200 632 1
-44 3968 848 1
-45 3856 1200 1
-46 3960 936 1
-47 4152 808 1
-48 4112 888 1
-49 3528 952 1
-50 3328 2848 1
-51 3264 3456 1
-52 3752 3192 1
-53 3624 3536 1
-54 3776 2928 1
-55 3512 3192 1
-56 3064 3184 1
-57 3248 2880 1
-58 3432 3224 1
-59 3008 2952 1
-60 1847 3723 2
-61 1801 3651 2
-62 1931 3699 2
-63 1889 3609 2
-64 1877 3625 2
-65 2451 3863 2
-66 2315 3755 2
-67 2343 3713 2
-68 2355 3779 2
-69 2327 3751 2
-70 2061 4247 2
-71 1991 4217 2
-72 2057 4117 2
-73 2103 4245 2
-74 2107 4221 2
-75 2437 3547 2
-76 2417 3587 2
-77 2313 3573 2
-78 2327 3565 2
-79 2383 3561 2
-80 2081 4255 2
-81 2061 4103 2
-82 2005 4139 2
-83 2047 4213 2
-84 2035 4139 2
-85 4467 2007 2
-86 4527 1979 2
-87 4531 1921 2
-88 4525 1949 2
-89 4495 2003 2
-90 4071 2409 2
-91 3971 2405 2
-92 3973 2273 2
-93 4127 2277 2
-94 3969 2331 2
-95 4497 2047 2
-96 4515 1999 2
-97 4563 1965 2
-98 4569 1915 2
-99 4379 1941 2
-100 4449 1821 2
-101 4441 1731 2
-102 4447 1827 2
-103 4383 1839 2
-104 4535 1863 2
-105 4457 1925 2
-106 4481 1879 2
-107 4451 1855 2
-108 4533 1853 2
-109 4371 1853 2
-110 4427 2109 2
-111 4507 2241 2
-112 4513 2253 2
-113 4445 2213 2
-114 4371 2121 2
-115 4101 2467 2
-116 4125 2385 2
-117 4015 2439 2
-118 4145 2515 2
-119 4131 2471 2
-120 4437 1849 2
-121 4349 1877 2
-122 4397 1871 2
-123 4379 1817 2
-124 4449 1713 2
-125 3925 2421 2
-126 3815 2377 2
-127 3877 2335 2
-128 3929 2369 2
-129 4003 2407 2
-130 4545 2047 2
-131 4447 1889 2
-132 4417 2065 2
-133 4497 2025 2
-134 4513 2007 2
-135 4267 1001 2
-136 4223 1083 2
-137 4273 951 2
-138 4233 1003 2
-139 4191 1023 2
-140 4213 897 2
-141 4399 893 2
-142 4259 1037 2
-143 4373 929 2
-144 4221 931 2
-145 4309 817 2
-146 4255 713 2
-147 4257 813 2
-148 4355 701 2
-149 4365 747 2
-150 4007 1325 2
-151 3951 1209 2
-152 4049 1259 2
-153 3979 1247 2
-154 3943 1321 2
-155 4209 975 2
-156 4331 979 2
-157 4279 961 2
-158 4157 983 2
-159 4201 983 2
-160 3233 3359 2
-161 3121 3261 2
-162 3229 3289 2
-163 3229 3221 2
-164 3247 3205 2
-165 3627 3339 2
-166 3541 3271 2
-167 3599 3307 2
-168 3515 3193 2
-169 3677 3327 2
-170 3511 2899 2
-171 3377 3033 2
-172 3381 2861 2
-173 3447 2883 2
-174 3391 2919 2
-175 3189 3299 2
-176 3147 3331 2
-177 3119 3331 2
-178 3083 3267 2
-179 3229 3189 2
-180 3565 3243 2
-181 3583 3279 2
-182 3437 3341 2
-183 3493 3267 2
-184 3471 3339 2
-#
-# EDGES
-# =====
-#
-# From To Delay Band- From To State (1:active, 2:redundant
-# Node Node width Type Type 3:internetwork, 4:red.inter.)
-# ---------------------------------------------------
-#
-# WAN 0
-#
-0 6 525 10 0 0 1
-0 7 725 10 0 0 1
-0 8 925 10 0 0 2
-1 6 1125 10 0 0 1
-1 5 885 10 0 0 1
-1 52 51 10 0 1 3
-2 4 845 10 0 0 1
-2 3 1045 10 0 0 2
-2 41 51 10 0 1 3
-3 4 725 10 0 0 1
-3 2 1045 10 0 0 2
-4 9 645 10 0 0 1
-4 3 725 10 0 0 1
-4 2 845 10 0 0 1
-4 22 51 10 0 1 4
-4 38 51 10 0 1 4
-4 41 51 10 0 1 4
-5 1 885 10 0 0 1
-5 9 685 10 0 0 1
-5 52 51 10 0 1 4
-6 0 525 10 0 0 1
-6 1 1125 10 0 0 1
-7 0 725 10 0 0 1
-7 8 285 10 0 0 1
-7 18 51 10 0 1 4
-8 7 285 10 0 0 1
-8 0 925 10 0 0 2
-8 16 51 10 0 1 3
-9 5 685 10 0 0 1
-9 4 645 10 0 0 1
-9 22 51 10 0 1 3
-9 30 51 10 0 1 3
-#
-# MAN 0
-#
-10 14 1620 100 1 1 1
-10 19 1780 100 1 1 1
-10 75 1001 100 1 2 3
-11 12 3540 100 1 1 1
-11 15 1620 100 1 1 1
-11 16 2500 100 1 1 1
-11 60 1001 100 1 2 3
-12 19 2660 100 1 1 1
-12 11 3540 100 1 1 1
-13 14 1300 100 1 1 1
-13 17 4180 100 1 1 2
-14 13 1300 100 1 1 1
-14 10 1620 100 1 1 1
-14 18 2740 100 1 1 1
-14 65 1001 100 1 2 3
-15 11 1620 100 1 1 1
-15 17 4020 100 1 1 1
-15 16 4020 100 1 1 2
-16 11 2500 100 1 1 1
-16 15 4020 100 1 1 2
-16 8 51 10 1 0 3
-17 15 4020 100 1 1 1
-17 13 4180 100 1 1 2
-17 70 1001 100 1 2 3
-17 80 1001 100 1 2 3
-18 14 2740 100 1 1 1
-18 7 51 10 1 0 4
-19 10 1780 100 1 1 1
-19 12 2660 100 1 1 1
-#
-# MAN 1
-#
-20 28 2820 100 1 1 1
-20 29 2740 100 1 1 1
-21 22 2740 100 1 1 1
-21 27 1860 100 1 1 1
-21 85 1001 100 1 2 3
-21 95 1001 100 1 2 3
-22 28 2900 100 1 1 1
-22 21 2740 100 1 1 1
-22 9 51 10 1 0 3
-22 4 51 10 1 0 4
-23 25 820 100 1 1 1
-23 24 1220 100 1 1 1
-24 23 1220 100 1 1 1
-24 28 1540 100 1 1 1
-25 23 820 100 1 1 1
-26 27 1540 100 1 1 1
-27 21 1860 100 1 1 1
-27 26 1540 100 1 1 1
-27 100 1001 100 1 2 3
-27 105 1001 100 1 2 3
-28 24 1540 100 1 1 1
-28 20 2820 100 1 1 1
-28 22 2900 100 1 1 1
-28 90 1001 100 1 2 3
-29 20 2740 100 1 1 1
-#
-# MAN 2
-#
-30 33 1300 100 1 1 1
-30 37 4100 100 1 1 1
-30 9 51 10 1 0 3
-31 34 500 100 1 1 1
-31 32 900 100 1 1 1
-31 125 1001 100 1 2 3
-32 31 900 100 1 1 1
-32 36 1380 100 1 1 1
-33 30 1300 100 1 1 1
-33 38 2020 100 1 1 1
-33 110 1001 100 1 2 3
-34 37 2020 100 1 1 1
-34 31 500 100 1 1 1
-35 39 5220 100 1 1 1
-36 32 1380 100 1 1 1
-37 30 4100 100 1 1 1
-37 34 2020 100 1 1 1
-37 115 1001 100 1 2 3
-38 33 2020 100 1 1 1
-38 39 2100 100 1 1 1
-38 4 51 10 1 0 4
-38 130 1001 100 1 2 3
-39 38 2100 100 1 1 1
-39 35 5220 100 1 1 1
-39 120 1001 100 1 2 3
-#
-# MAN 3
-#
-40 41 660 100 1 1 1
-40 47 740 100 1 1 1
-40 140 1001 100 1 2 3
-41 48 500 100 1 1 1
-41 40 660 100 1 1 1
-41 2 51 10 1 0 3
-41 4 51 10 1 0 4
-41 155 1001 100 1 2 3
-42 45 900 100 1 1 1
-42 46 2500 100 1 1 1
-43 47 1860 100 1 1 1
-43 145 1001 100 1 2 3
-44 46 980 100 1 1 1
-44 48 1540 100 1 1 1
-45 42 900 100 1 1 1
-45 49 4180 100 1 1 1
-45 150 1001 100 1 2 3
-46 42 2500 100 1 1 1
-46 44 980 100 1 1 1
-47 40 740 100 1 1 1
-47 43 1860 100 1 1 1
-48 44 1540 100 1 1 1
-48 41 500 100 1 1 1
-48 135 1001 100 1 2 3
-49 45 4180 100 1 1 1
-#
-# MAN 4
-#
-50 57 900 100 1 1 1
-50 170 1001 100 1 2 3
-51 58 2900 100 1 1 1
-51 56 3460 100 1 1 1
-52 55 2500 100 1 1 1
-52 54 2740 100 1 1 1
-52 53 3700 100 1 1 1
-52 1 51 10 1 0 3
-52 5 51 10 1 0 4
-53 52 3700 100 1 1 1
-54 52 2740 100 1 1 1
-55 58 900 100 1 1 1
-55 52 2500 100 1 1 1
-55 165 1001 100 1 2 3
-56 51 3460 100 1 1 1
-56 59 2420 100 1 1 1
-56 160 1001 100 1 2 3
-56 175 1001 100 1 2 3
-57 59 2580 100 1 1 1
-57 50 900 100 1 1 1
-58 55 900 100 1 1 1
-58 51 2900 100 1 1 1
-58 180 1001 100 1 2 3
-59 56 2420 100 1 1 1
-59 57 2580 100 1 1 1
-#
-# LAN 0
-#
-60 61 8550 1000 2 2 1
-61 60 8550 1000 2 2 1
-60 62 8750 1000 2 2 1
-62 60 8750 1000 2 2 1
-60 63 12150 1000 2 2 1
-63 60 12150 1000 2 2 1
-60 64 10350 1000 2 2 1
-64 60 10350 1000 2 2 1
-60 11 1001 100 2 1 3
-11 60 1001 100 1 2 3
-#
-# LAN 1
-#
-65 66 17350 1000 2 2 1
-66 65 17350 1000 2 2 1
-65 67 18550 1000 2 2 1
-67 65 18550 1000 2 2 1
-65 68 12750 1000 2 2 1
-68 65 12750 1000 2 2 1
-65 69 16750 1000 2 2 1
-69 65 16750 1000 2 2 1
-65 14 1001 100 2 1 3
-14 65 1001 100 1 2 3
-#
-# LAN 2
-#
-70 71 7750 1000 2 2 1
-71 70 7750 1000 2 2 1
-70 72 13150 1000 2 2 1
-72 70 13150 1000 2 2 1
-70 73 4350 1000 2 2 1
-73 70 4350 1000 2 2 1
-70 74 5350 1000 2 2 1
-74 70 5350 1000 2 2 1
-70 17 1001 100 2 1 3
-17 70 1001 100 1 2 3
-#
-# LAN 3
-#
-75 76 4550 1000 2 2 1
-76 75 4550 1000 2 2 1
-75 77 12750 1000 2 2 1
-77 75 12750 1000 2 2 1
-75 78 11150 1000 2 2 1
-78 75 11150 1000 2 2 1
-75 79 5550 1000 2 2 1
-79 75 5550 1000 2 2 1
-75 10 1001 100 2 1 3
-10 75 1001 100 1 2 3
-#
-# LAN 4
-#
-80 81 15350 1000 2 2 1
-81 80 15350 1000 2 2 1
-80 82 13950 1000 2 2 1
-82 80 13950 1000 2 2 1
-80 83 5550 1000 2 2 1
-83 80 5550 1000 2 2 1
-80 84 12550 1000 2 2 1
-84 80 12550 1000 2 2 1
-80 17 1001 100 2 1 3
-17 80 1001 100 1 2 3
-#
-# LAN 5
-#
-85 86 6750 1000 2 2 1
-86 85 6750 1000 2 2 1
-85 87 10750 1000 2 2 1
-87 85 10750 1000 2 2 1
-85 88 8350 1000 2 2 1
-88 85 8350 1000 2 2 1
-85 89 2950 1000 2 2 1
-89 85 2950 1000 2 2 1
-85 21 1001 100 2 1 3
-21 85 1001 100 1 2 3
-#
-# LAN 6
-#
-90 91 10150 1000 2 2 1
-91 90 10150 1000 2 2 1
-90 92 16750 1000 2 2 1
-92 90 16750 1000 2 2 1
-90 93 14350 1000 2 2 1
-93 90 14350 1000 2 2 1
-90 94 12950 1000 2 2 1
-94 90 12950 1000 2 2 1
-90 28 1001 100 2 1 3
-28 90 1001 100 1 2 3
-#
-# LAN 7
-#
-95 96 5150 1000 2 2 1
-96 95 5150 1000 2 2 1
-95 97 10550 1000 2 2 1
-97 95 10550 1000 2 2 1
-95 98 15150 1000 2 2 1
-98 95 15150 1000 2 2 1
-95 99 15950 1000 2 2 1
-99 95 15950 1000 2 2 1
-95 21 1001 100 2 1 3
-21 95 1001 100 1 2 3
-#
-# LAN 8
-#
-100 101 9150 1000 2 2 1
-101 100 9150 1000 2 2 1
-100 102 750 1000 2 2 1
-102 100 750 1000 2 2 1
-100 103 6950 1000 2 2 1
-103 100 6950 1000 2 2 1
-100 104 9550 1000 2 2 1
-104 100 9550 1000 2 2 1
-100 27 1001 100 2 1 3
-27 100 1001 100 1 2 3
-#
-# LAN 9
-#
-105 106 5150 1000 2 2 1
-106 105 5150 1000 2 2 1
-105 107 7150 1000 2 2 1
-107 105 7150 1000 2 2 1
-105 108 10550 1000 2 2 1
-108 105 10550 1000 2 2 1
-105 109 11350 1000 2 2 1
-109 105 11350 1000 2 2 1
-105 27 1001 100 2 1 3
-27 105 1001 100 1 2 3
-#
-# LAN 10
-#
-110 111 15550 1000 2 2 1
-111 110 15550 1000 2 2 1
-110 112 16750 1000 2 2 1
-112 110 16750 1000 2 2 1
-110 113 10550 1000 2 2 1
-113 110 10550 1000 2 2 1
-110 114 5750 1000 2 2 1
-114 110 5750 1000 2 2 1
-110 33 1001 100 2 1 3
-33 110 1001 100 1 2 3
-#
-# LAN 11
-#
-115 116 8550 1000 2 2 1
-116 115 8550 1000 2 2 1
-115 117 9150 1000 2 2 1
-117 115 9150 1000 2 2 1
-115 118 6550 1000 2 2 1
-118 115 6550 1000 2 2 1
-115 119 3150 1000 2 2 1
-119 115 3150 1000 2 2 1
-115 37 1001 100 2 1 3
-37 115 1001 100 1 2 3
-#
-# LAN 12
-#
-120 121 9350 1000 2 2 1
-121 120 9350 1000 2 2 1
-120 122 4550 1000 2 2 1
-122 120 4550 1000 2 2 1
-120 123 6750 1000 2 2 1
-123 120 6750 1000 2 2 1
-120 124 13750 1000 2 2 1
-124 120 13750 1000 2 2 1
-120 39 1001 100 2 1 3
-39 120 1001 100 1 2 3
-#
-# LAN 13
-#
-125 126 11950 1000 2 2 1
-126 125 11950 1000 2 2 1
-125 127 9950 1000 2 2 1
-127 125 9950 1000 2 2 1
-125 128 5350 1000 2 2 1
-128 125 5350 1000 2 2 1
-125 129 7950 1000 2 2 1
-129 125 7950 1000 2 2 1
-125 31 1001 100 2 1 3
-31 125 1001 100 1 2 3
-#
-# LAN 14
-#
-130 131 18550 1000 2 2 1
-131 130 18550 1000 2 2 1
-130 132 12950 1000 2 2 1
-132 130 12950 1000 2 2 1
-130 133 5350 1000 2 2 1
-133 130 5350 1000 2 2 1
-130 134 5150 1000 2 2 1
-134 130 5150 1000 2 2 1
-130 38 1001 100 2 1 3
-38 130 1001 100 1 2 3
-#
-# LAN 15
-#
-135 136 9350 1000 2 2 1
-136 135 9350 1000 2 2 1
-135 137 5150 1000 2 2 1
-137 135 5150 1000 2 2 1
-135 138 3550 1000 2 2 1
-138 135 3550 1000 2 2 1
-135 139 7950 1000 2 2 1
-139 135 7950 1000 2 2 1
-135 48 1001 100 2 1 3
-48 135 1001 100 1 2 3
-#
-# LAN 16
-#
-140 141 18750 1000 2 2 1
-141 140 18750 1000 2 2 1
-140 142 14750 1000 2 2 1
-142 140 14750 1000 2 2 1
-140 143 16350 1000 2 2 1
-143 140 16350 1000 2 2 1
-140 144 3550 1000 2 2 1
-144 140 3550 1000 2 2 1
-140 40 1001 100 2 1 3
-40 140 1001 100 1 2 3
-#
-# LAN 17
-#
-145 146 11750 1000 2 2 1
-146 145 11750 1000 2 2 1
-145 147 5350 1000 2 2 1
-147 145 5350 1000 2 2 1
-145 148 12550 1000 2 2 1
-148 145 12550 1000 2 2 1
-145 149 8950 1000 2 2 1
-149 145 8950 1000 2 2 1
-145 43 1001 100 2 1 3
-43 145 1001 100 1 2 3
-#
-# LAN 18
-#
-150 151 12950 1000 2 2 1
-151 150 12950 1000 2 2 1
-150 152 7950 1000 2 2 1
-152 150 7950 1000 2 2 1
-150 153 8350 1000 2 2 1
-153 150 8350 1000 2 2 1
-150 154 6550 1000 2 2 1
-154 150 6550 1000 2 2 1
-150 45 1001 100 2 1 3
-45 150 1001 100 1 2 3
-#
-# LAN 19
-#
-155 156 12350 1000 2 2 1
-156 155 12350 1000 2 2 1
-155 157 7150 1000 2 2 1
-157 155 7150 1000 2 2 1
-155 158 5350 1000 2 2 1
-158 155 5350 1000 2 2 1
-155 159 1150 1000 2 2 1
-159 155 1150 1000 2 2 1
-155 41 1001 100 2 1 3
-41 155 1001 100 1 2 3
-#
-# LAN 20
-#
-160 161 14950 1000 2 2 1
-161 160 14950 1000 2 2 1
-160 162 7150 1000 2 2 1
-162 160 7150 1000 2 2 1
-160 163 13950 1000 2 2 1
-163 160 13950 1000 2 2 1
-160 164 15550 1000 2 2 1
-164 160 15550 1000 2 2 1
-160 56 1001 100 2 1 3
-56 160 1001 100 1 2 3
-#
-# LAN 21
-#
-165 166 10950 1000 2 2 1
-166 165 10950 1000 2 2 1
-165 167 4350 1000 2 2 1
-167 165 4350 1000 2 2 1
-165 168 18550 1000 2 2 1
-168 165 18550 1000 2 2 1
-165 169 5150 1000 2 2 1
-169 165 5150 1000 2 2 1
-165 55 1001 100 2 1 3
-55 165 1001 100 1 2 3
-#
-# LAN 22
-#
-170 171 18950 1000 2 2 1
-171 170 18950 1000 2 2 1
-170 172 13550 1000 2 2 1
-172 170 13550 1000 2 2 1
-170 173 6550 1000 2 2 1
-173 170 6550 1000 2 2 1
-170 174 12150 1000 2 2 1
-174 170 12150 1000 2 2 1
-170 50 1001 100 2 1 3
-50 170 1001 100 1 2 3
-#
-# LAN 23
-#
-175 176 5350 1000 2 2 1
-176 175 5350 1000 2 2 1
-175 177 7750 1000 2 2 1
-177 175 7750 1000 2 2 1
-175 178 11150 1000 2 2 1
-178 175 11150 1000 2 2 1
-175 179 11750 1000 2 2 1
-179 175 11750 1000 2 2 1
-175 56 1001 100 2 1 3
-56 175 1001 100 1 2 3
-#
-# LAN 24
-#
-180 181 4150 1000 2 2 1
-181 180 4150 1000 2 2 1
-180 182 16150 1000 2 2 1
-182 180 16150 1000 2 2 1
-180 183 7550 1000 2 2 1
-183 180 7550 1000 2 2 1
-180 184 13550 1000 2 2 1
-184 180 13550 1000 2 2 1
-180 58 1001 100 2 1 3
-58 180 1001 100 1 2 3
-# End of Model
+++ /dev/null
-#
-# Parameters for Network Model ModelId: 856566616
-# ============================
-#
-# Value Parameter
-# ----- ---------
-#
-# 1 NW: number of WANs
-# 5 NM: number of MANs per WAN
-# 5 NL: number of LANs per MAN
-# 10 SW: number of nodes per WAN
-# 10 SM: number of nodes per MAN
-# 5 SL: number of nodes per LAN
-# 2 RW: intranetwork redundancy for WAN
-# 1 RM: intranetwork redundancy for MANs
-# 1 RL: intranetwork redundancy for LANs
-# 2 RMW: internetwork redundancy for MAN to WAN
-# 1 RLM: internetwork redundancy for LAN to MAN
-#
-# 100 Grid size (square)
-# 40 Grid unit for WAN
-# 8 Grid unit for MAN
-# 2 Grid unit for LAN
-#
-# 0 Proximity test for WAN (0 is inactive)
-# 0 Proximity test for MAN (0 is inactive)
-# 0 Proximity test for LAN (0 is inactive)
-#
-# 0 Edge list is directed (0) or undirected (1)
-# Total Number of Nodes (derived) : 185
-#
-# Edge Metrics
-# ------------
-#
-# From To Band- Fixed Delay/Unit
-# Type Type width Delay Distance
-# ------------------------------------------
-# 0 0 10 5 1
-# 0 1 10 50 1
-# 0 2 0 0 1
-# 1 0 10 50 1
-# 1 1 100 100 10
-# 1 2 100 1000 1
-# 2 0 0 0 1
-# 2 1 100 1000 1
-# 2 2 1000 150 100
-#
-# NODES
-# =====
-#
-# Node X Y Type (0 = WAN, 1 = MAN, 2 = LAN)
-# ------------------------------------
-0 800 2160 0
-1 520 3400 0
-2 2280 2720 0
-3 2120 3120 0
-4 2960 2680 0
-5 600 1280 0
-6 1400 2720 0
-7 2480 2480 0
-8 1400 3080 0
-9 3760 920 0
-10 3360 2784 1
-11 3680 2984 1
-12 3680 2968 1
-13 3448 3376 1
-14 3312 3048 1
-15 3120 3328 1
-16 3192 2904 1
-17 3080 2840 1
-18 3128 2928 1
-19 3728 3040 1
-20 2168 3168 1
-21 2600 3304 1
-22 2792 3944 1
-23 2240 3808 1
-24 2160 3688 1
-25 2568 3408 1
-26 2288 3648 1
-27 2672 3704 1
-28 2792 3280 1
-29 2160 3928 1
-30 992 2328 1
-31 1272 2264 1
-32 1016 2328 1
-33 792 2688 1
-34 1024 2368 1
-35 928 2336 1
-36 1056 2408 1
-37 1000 2760 1
-38 1136 2608 1
-39 1072 2488 1
-40 792 1792 1
-41 1032 1464 1
-42 728 2024 1
-43 1080 1256 1
-44 720 1432 1
-45 808 1984 1
-46 1152 2008 1
-47 1320 1992 1
-48 1136 1448 1
-49 1256 1608 1
-50 3112 2800 1
-51 3264 2888 1
-52 3008 2776 1
-53 2880 2808 1
-54 3056 3240 1
-55 2792 3168 1
-56 2696 3152 1
-57 2656 2856 1
-58 2688 2544 1
-59 2704 2872 1
-60 3383 3233 2
-61 3485 3161 2
-62 3503 3171 2
-63 3417 3109 2
-64 3419 3229 2
-65 3303 3025 2
-66 3231 3111 2
-67 3191 2937 2
-68 3293 3069 2
-69 3139 2995 2
-70 3251 3001 2
-71 3309 3015 2
-72 3141 3119 2
-73 3187 2967 2
-74 3295 2967 2
-75 3319 3083 2
-76 3325 2993 2
-77 3313 3003 2
-78 3223 2951 2
-79 3373 3067 2
-80 3119 2941 2
-81 3245 2909 2
-82 3133 2889 2
-83 3111 2931 2
-84 3229 2939 2
-85 2665 3409 2
-86 2747 3399 2
-87 2701 3305 2
-88 2699 3469 2
-89 2705 3349 2
-90 2323 3797 2
-91 2205 3749 2
-92 2233 3743 2
-93 2267 3829 2
-94 2323 3743 2
-95 2601 3445 2
-96 2709 3315 2
-97 2785 3481 2
-98 2771 3393 2
-99 2621 3487 2
-100 2173 3277 2
-101 2231 3343 2
-102 2365 3355 2
-103 2325 3169 2
-104 2263 3189 2
-105 2967 4037 2
-106 2799 3981 2
-107 2989 4047 2
-108 2953 4021 2
-109 2891 4111 2
-110 1185 2687 2
-111 1245 2665 2
-112 1147 2663 2
-113 1119 2579 2
-114 1247 2509 2
-115 1139 2641 2
-116 1171 2603 2
-117 1221 2665 2
-118 1111 2607 2
-119 1107 2529 2
-120 1161 2551 2
-121 1043 2447 2
-122 1029 2421 2
-123 1145 2511 2
-124 1163 2411 2
-125 1077 2551 2
-126 1151 2453 2
-127 1245 2545 2
-128 1143 2523 2
-129 1135 2493 2
-130 1431 2437 2
-131 1293 2311 2
-132 1359 2269 2
-133 1403 2309 2
-134 1449 2417 2
-135 1347 2071 2
-136 1213 2039 2
-137 1163 2045 2
-138 1239 2015 2
-139 1251 2155 2
-140 829 1901 2
-141 975 1915 2
-142 811 1977 2
-143 861 1951 2
-144 989 1947 2
-145 913 2041 2
-146 867 2181 2
-147 807 2159 2
-148 839 2089 2
-149 783 2073 2
-150 1341 2127 2
-151 1505 2125 2
-152 1519 2031 2
-153 1405 2011 2
-154 1397 2165 2
-155 775 1507 2
-156 837 1573 2
-157 919 1625 2
-158 833 1485 2
-159 789 1461 2
-160 2881 2611 2
-161 2711 2555 2
-162 2807 2739 2
-163 2727 2561 2
-164 2853 2709 2
-165 2715 2731 2
-166 2751 2713 2
-167 2691 2571 2
-168 2727 2677 2
-169 2703 2549 2
-170 3015 2897 2
-171 3041 2925 2
-172 3167 2927 2
-173 3161 2941 2
-174 3079 2865 2
-175 2721 2901 2
-176 2743 3041 2
-177 2801 2887 2
-178 2867 2985 2
-179 2851 2873 2
-180 3067 2853 2
-181 2999 2957 2
-182 2941 2875 2
-183 2933 2959 2
-184 2895 2981 2
-#
-# EDGES
-# =====
-#
-# From To Delay Band- From To State (1:active, 2:redundant
-# Node Node width Type Type 3:internetwork, 4:red.inter.)
-# ---------------------------------------------------
-#
-# WAN 0
-#
-0 6 805 10 0 0 1
-0 5 885 10 0 0 1
-0 32 51 10 0 1 3
-0 42 51 10 0 1 4
-1 8 925 10 0 0 1
-1 6 1085 10 0 0 2
-2 3 405 10 0 0 1
-2 7 285 10 0 0 1
-2 27 51 10 0 1 4
-2 51 51 10 0 1 4
-3 8 725 10 0 0 1
-3 2 405 10 0 0 1
-3 23 51 10 0 1 3
-4 7 525 10 0 0 1
-4 9 1925 10 0 0 1
-4 15 51 10 0 1 3
-5 0 885 10 0 0 1
-5 47 51 10 0 1 3
-6 8 365 10 0 0 1
-6 0 805 10 0 0 1
-6 1 1085 10 0 0 2
-6 32 51 10 0 1 4
-7 2 285 10 0 0 1
-7 4 525 10 0 0 1
-7 9 2005 10 0 0 2
-7 15 51 10 0 1 4
-7 51 51 10 0 1 3
-8 1 925 10 0 0 1
-8 6 365 10 0 0 1
-8 3 725 10 0 0 1
-9 4 1925 10 0 0 1
-9 7 2005 10 0 0 2
-#
-# MAN 0
-#
-10 16 2100 100 1 1 1
-11 19 820 100 1 1 1
-11 12 260 100 1 1 1
-11 14 3780 100 1 1 1
-12 11 260 100 1 1 1
-13 15 3380 100 1 1 1
-13 14 3620 100 1 1 2
-14 11 3780 100 1 1 1
-14 16 1940 100 1 1 1
-14 15 3460 100 1 1 1
-14 13 3620 100 1 1 2
-14 60 1001 100 1 2 3
-15 14 3460 100 1 1 1
-15 13 3380 100 1 1 1
-15 4 51 10 1 0 3
-15 7 51 10 1 0 4
-16 14 1940 100 1 1 1
-16 18 740 100 1 1 1
-16 10 2100 100 1 1 1
-16 75 1001 100 1 2 3
-17 18 1060 100 1 1 1
-17 80 1001 100 1 2 3
-18 16 740 100 1 1 1
-18 17 1060 100 1 1 1
-18 65 1001 100 1 2 3
-18 70 1001 100 1 2 3
-19 11 820 100 1 1 1
-#
-# MAN 1
-#
-20 21 4580 100 1 1 1
-20 100 1001 100 1 2 3
-21 25 1140 100 1 1 1
-21 28 2020 100 1 1 1
-21 20 4580 100 1 1 1
-21 85 1001 100 1 2 3
-21 95 1001 100 1 2 3
-22 27 2740 100 1 1 1
-22 105 1001 100 1 2 3
-23 24 1540 100 1 1 1
-23 29 1540 100 1 1 1
-23 3 51 10 1 0 3
-24 26 1380 100 1 1 1
-24 23 1540 100 1 1 1
-24 90 1001 100 1 2 3
-25 21 1140 100 1 1 1
-25 27 3220 100 1 1 1
-25 26 3780 100 1 1 1
-26 25 3780 100 1 1 1
-26 24 1380 100 1 1 1
-27 25 3220 100 1 1 1
-27 22 2740 100 1 1 1
-27 2 51 10 1 0 4
-28 21 2020 100 1 1 1
-29 23 1540 100 1 1 1
-#
-# MAN 2
-#
-30 32 340 100 1 1 1
-30 35 740 100 1 1 1
-31 32 2660 100 1 1 1
-31 130 1001 100 1 2 3
-32 34 500 100 1 1 1
-32 30 340 100 1 1 1
-32 31 2660 100 1 1 1
-32 0 51 10 1 0 3
-32 6 51 10 1 0 4
-33 37 2260 100 1 1 1
-34 36 580 100 1 1 1
-34 32 500 100 1 1 1
-34 120 1001 100 1 2 3
-35 30 740 100 1 1 1
-36 39 900 100 1 1 1
-36 34 580 100 1 1 1
-36 125 1001 100 1 2 3
-37 38 2100 100 1 1 1
-37 33 2260 100 1 1 1
-38 39 1460 100 1 1 1
-38 37 2100 100 1 1 1
-39 38 1460 100 1 1 1
-39 36 900 100 1 1 1
-39 110 1001 100 1 2 3
-39 115 1001 100 1 2 3
-#
-# MAN 3
-#
-40 45 2020 100 1 1 1
-40 44 3700 100 1 1 1
-40 140 1001 100 1 2 3
-41 44 3220 100 1 1 1
-41 48 1140 100 1 1 1
-42 45 980 100 1 1 1
-42 0 51 10 1 0 4
-42 145 1001 100 1 2 3
-43 48 2100 100 1 1 1
-44 40 3700 100 1 1 1
-44 41 3220 100 1 1 1
-44 155 1001 100 1 2 3
-45 42 980 100 1 1 1
-45 40 2020 100 1 1 1
-45 46 3540 100 1 1 1
-46 45 3540 100 1 1 1
-46 47 1780 100 1 1 1
-46 135 1001 100 1 2 3
-47 46 1780 100 1 1 1
-47 5 51 10 1 0 3
-47 150 1001 100 1 2 3
-48 41 1140 100 1 1 1
-48 43 2100 100 1 1 1
-48 49 2100 100 1 1 1
-49 48 2100 100 1 1 1
-#
-# MAN 4
-#
-50 52 1140 100 1 1 1
-50 51 1780 100 1 1 1
-51 50 1780 100 1 1 1
-51 7 51 10 1 0 3
-51 2 51 10 1 0 4
-52 50 1140 100 1 1 1
-52 53 1380 100 1 1 1
-52 170 1001 100 1 2 3
-53 52 1380 100 1 1 1
-53 59 1940 100 1 1 1
-53 180 1001 100 1 2 3
-54 55 2820 100 1 1 1
-55 56 1060 100 1 1 1
-55 54 2820 100 1 1 1
-56 59 2900 100 1 1 1
-56 55 1060 100 1 1 1
-57 59 580 100 1 1 1
-57 58 3220 100 1 1 1
-58 57 3220 100 1 1 1
-58 160 1001 100 1 2 3
-58 165 1001 100 1 2 3
-59 53 1940 100 1 1 1
-59 57 580 100 1 1 1
-59 56 2900 100 1 1 1
-59 175 1001 100 1 2 3
-#
-# LAN 0
-#
-60 61 12550 1000 2 2 1
-61 60 12550 1000 2 2 1
-60 62 13550 1000 2 2 1
-62 60 13550 1000 2 2 1
-60 63 12950 1000 2 2 1
-63 60 12950 1000 2 2 1
-60 64 3750 1000 2 2 1
-64 60 3750 1000 2 2 1
-60 14 1001 100 2 1 3
-14 60 1001 100 1 2 3
-#
-# LAN 1
-#
-65 66 11350 1000 2 2 1
-66 65 11350 1000 2 2 1
-65 67 14350 1000 2 2 1
-67 65 14350 1000 2 2 1
-65 68 4550 1000 2 2 1
-68 65 4550 1000 2 2 1
-65 69 16750 1000 2 2 1
-69 65 16750 1000 2 2 1
-65 18 1001 100 2 1 3
-18 65 1001 100 1 2 3
-#
-# LAN 2
-#
-70 71 5950 1000 2 2 1
-71 70 5950 1000 2 2 1
-70 72 16150 1000 2 2 1
-72 70 16150 1000 2 2 1
-70 73 7350 1000 2 2 1
-73 70 7350 1000 2 2 1
-70 74 5550 1000 2 2 1
-74 70 5550 1000 2 2 1
-70 18 1001 100 2 1 3
-18 70 1001 100 1 2 3
-#
-# LAN 3
-#
-75 76 9150 1000 2 2 1
-76 75 9150 1000 2 2 1
-75 77 8150 1000 2 2 1
-77 75 8150 1000 2 2 1
-75 78 16350 1000 2 2 1
-78 75 16350 1000 2 2 1
-75 79 5750 1000 2 2 1
-79 75 5750 1000 2 2 1
-75 16 1001 100 2 1 3
-16 75 1001 100 1 2 3
-#
-# LAN 4
-#
-80 81 13150 1000 2 2 1
-81 80 13150 1000 2 2 1
-80 82 5350 1000 2 2 1
-82 80 5350 1000 2 2 1
-80 83 1350 1000 2 2 1
-83 80 1350 1000 2 2 1
-80 84 11150 1000 2 2 1
-84 80 11150 1000 2 2 1
-80 17 1001 100 2 1 3
-17 80 1001 100 1 2 3
-#
-# LAN 5
-#
-85 86 8350 1000 2 2 1
-86 85 8350 1000 2 2 1
-85 87 11150 1000 2 2 1
-87 85 11150 1000 2 2 1
-85 88 6950 1000 2 2 1
-88 85 6950 1000 2 2 1
-85 89 7350 1000 2 2 1
-89 85 7350 1000 2 2 1
-85 21 1001 100 2 1 3
-21 85 1001 100 1 2 3
-#
-# LAN 6
-#
-90 91 12750 1000 2 2 1
-91 90 12750 1000 2 2 1
-90 92 10550 1000 2 2 1
-92 90 10550 1000 2 2 1
-90 93 6550 1000 2 2 1
-93 90 6550 1000 2 2 1
-90 94 5550 1000 2 2 1
-94 90 5550 1000 2 2 1
-90 24 1001 100 2 1 3
-24 90 1001 100 1 2 3
-#
-# LAN 7
-#
-95 96 16950 1000 2 2 1
-96 95 16950 1000 2 2 1
-95 97 18750 1000 2 2 1
-97 95 18750 1000 2 2 1
-95 98 17750 1000 2 2 1
-98 95 17750 1000 2 2 1
-95 99 4750 1000 2 2 1
-99 95 4750 1000 2 2 1
-95 21 1001 100 2 1 3
-21 95 1001 100 1 2 3
-#
-# LAN 8
-#
-100 101 8750 1000 2 2 1
-101 100 8750 1000 2 2 1
-100 102 20750 1000 2 2 1
-102 100 20750 1000 2 2 1
-100 103 18750 1000 2 2 1
-103 100 18750 1000 2 2 1
-100 104 12550 1000 2 2 1
-104 100 12550 1000 2 2 1
-100 20 1001 100 2 1 3
-20 100 1001 100 1 2 3
-#
-# LAN 9
-#
-105 106 17750 1000 2 2 1
-106 105 17750 1000 2 2 1
-105 107 2550 1000 2 2 1
-107 105 2550 1000 2 2 1
-105 108 2150 1000 2 2 1
-108 105 2150 1000 2 2 1
-105 109 10750 1000 2 2 1
-109 105 10750 1000 2 2 1
-105 22 1001 100 2 1 3
-22 105 1001 100 1 2 3
-#
-# LAN 10
-#
-110 111 6350 1000 2 2 1
-111 110 6350 1000 2 2 1
-110 112 4550 1000 2 2 1
-112 110 4550 1000 2 2 1
-110 113 12750 1000 2 2 1
-113 110 12750 1000 2 2 1
-110 114 18950 1000 2 2 1
-114 110 18950 1000 2 2 1
-110 39 1001 100 2 1 3
-39 110 1001 100 1 2 3
-#
-# LAN 11
-#
-115 116 4950 1000 2 2 1
-116 115 4950 1000 2 2 1
-115 117 8550 1000 2 2 1
-117 115 8550 1000 2 2 1
-115 118 4550 1000 2 2 1
-118 115 4550 1000 2 2 1
-115 119 11750 1000 2 2 1
-119 115 11750 1000 2 2 1
-115 39 1001 100 2 1 3
-39 115 1001 100 1 2 3
-#
-# LAN 12
-#
-120 121 15750 1000 2 2 1
-121 120 15750 1000 2 2 1
-120 122 18550 1000 2 2 1
-122 120 18550 1000 2 2 1
-120 123 4350 1000 2 2 1
-123 120 4350 1000 2 2 1
-120 124 14150 1000 2 2 1
-124 120 14150 1000 2 2 1
-120 34 1001 100 2 1 3
-34 120 1001 100 1 2 3
-#
-# LAN 13
-#
-125 126 12350 1000 2 2 1
-126 125 12350 1000 2 2 1
-125 127 16950 1000 2 2 1
-127 125 16950 1000 2 2 1
-125 128 7150 1000 2 2 1
-128 125 7150 1000 2 2 1
-125 129 8350 1000 2 2 1
-129 125 8350 1000 2 2 1
-125 36 1001 100 2 1 3
-36 125 1001 100 1 2 3
-#
-# LAN 14
-#
-130 131 18750 1000 2 2 1
-131 130 18750 1000 2 2 1
-130 132 18350 1000 2 2 1
-132 130 18350 1000 2 2 1
-130 133 13150 1000 2 2 1
-133 130 13150 1000 2 2 1
-130 134 2750 1000 2 2 1
-134 130 2750 1000 2 2 1
-130 31 1001 100 2 1 3
-31 130 1001 100 1 2 3
-#
-# LAN 15
-#
-135 136 13750 1000 2 2 1
-136 135 13750 1000 2 2 1
-135 137 18550 1000 2 2 1
-137 135 18550 1000 2 2 1
-135 138 12150 1000 2 2 1
-138 135 12150 1000 2 2 1
-135 139 12750 1000 2 2 1
-139 135 12750 1000 2 2 1
-135 46 1001 100 2 1 3
-46 135 1001 100 1 2 3
-#
-# LAN 16
-#
-140 141 14750 1000 2 2 1
-141 140 14750 1000 2 2 1
-140 142 7950 1000 2 2 1
-142 140 7950 1000 2 2 1
-140 143 5950 1000 2 2 1
-143 140 5950 1000 2 2 1
-140 144 16750 1000 2 2 1
-144 140 16750 1000 2 2 1
-140 40 1001 100 2 1 3
-40 140 1001 100 1 2 3
-#
-# LAN 17
-#
-145 146 14750 1000 2 2 1
-146 145 14750 1000 2 2 1
-145 147 15950 1000 2 2 1
-147 145 15950 1000 2 2 1
-145 148 8950 1000 2 2 1
-148 145 8950 1000 2 2 1
-145 149 13350 1000 2 2 1
-149 145 13350 1000 2 2 1
-145 42 1001 100 2 1 3
-42 145 1001 100 1 2 3
-#
-# LAN 18
-#
-150 151 16550 1000 2 2 1
-151 150 16550 1000 2 2 1
-150 152 20350 1000 2 2 1
-152 150 20350 1000 2 2 1
-150 153 13350 1000 2 2 1
-153 150 13350 1000 2 2 1
-150 154 6750 1000 2 2 1
-154 150 6750 1000 2 2 1
-150 47 1001 100 2 1 3
-47 150 1001 100 1 2 3
-#
-# LAN 19
-#
-155 156 9150 1000 2 2 1
-156 155 9150 1000 2 2 1
-155 157 18750 1000 2 2 1
-157 155 18750 1000 2 2 1
-155 158 6350 1000 2 2 1
-158 155 6350 1000 2 2 1
-155 159 4950 1000 2 2 1
-159 155 4950 1000 2 2 1
-155 44 1001 100 2 1 3
-44 155 1001 100 1 2 3
-#
-# LAN 20
-#
-160 161 17950 1000 2 2 1
-161 160 17950 1000 2 2 1
-160 162 14750 1000 2 2 1
-162 160 14750 1000 2 2 1
-160 163 16150 1000 2 2 1
-163 160 16150 1000 2 2 1
-160 164 10150 1000 2 2 1
-164 160 10150 1000 2 2 1
-160 58 1001 100 2 1 3
-58 160 1001 100 1 2 3
-#
-# LAN 21
-#
-165 166 4150 1000 2 2 1
-166 165 4150 1000 2 2 1
-165 167 16150 1000 2 2 1
-167 165 16150 1000 2 2 1
-165 168 5550 1000 2 2 1
-168 165 5550 1000 2 2 1
-165 169 18350 1000 2 2 1
-169 165 18350 1000 2 2 1
-165 58 1001 100 2 1 3
-58 165 1001 100 1 2 3
-#
-# LAN 22
-#
-170 171 3950 1000 2 2 1
-171 170 3950 1000 2 2 1
-170 172 15550 1000 2 2 1
-172 170 15550 1000 2 2 1
-170 173 15350 1000 2 2 1
-173 170 15350 1000 2 2 1
-170 174 7150 1000 2 2 1
-174 170 7150 1000 2 2 1
-170 52 1001 100 2 1 3
-52 170 1001 100 1 2 3
-#
-# LAN 23
-#
-175 176 14150 1000 2 2 1
-176 175 14150 1000 2 2 1
-175 177 8150 1000 2 2 1
-177 175 8150 1000 2 2 1
-175 178 16950 1000 2 2 1
-178 175 16950 1000 2 2 1
-175 179 13350 1000 2 2 1
-179 175 13350 1000 2 2 1
-175 59 1001 100 2 1 3
-59 175 1001 100 1 2 3
-#
-# LAN 24
-#
-180 181 12550 1000 2 2 1
-181 180 12550 1000 2 2 1
-180 182 12750 1000 2 2 1
-182 180 12750 1000 2 2 1
-180 183 17150 1000 2 2 1
-183 180 17150 1000 2 2 1
-180 184 21550 1000 2 2 1
-184 180 21550 1000 2 2 1
-180 53 1001 100 2 1 3
-53 180 1001 100 1 2 3
-# End of Model
+++ /dev/null
-#!/usr/bin/perl -w
-use strict;
-
-# Un graphe c'est un hachage nodes et un hachage edges avec trucs dedans
-# nodes{nom}{type}, nodes{nom}{X}, nodes{nom}{Y}, nodes{nom}{in}, nodes{nom}{out} par exemple
-# edges{nom}{src}, edges{nom}{dst}, edges{nom}{type}, edges{nom}{delay}, edges{nom}{bw}
-
-
-sub G_new_graph {
- my(%nodes,%edges); # a new graph...
- return(\%nodes,\%edges);
-}
-
-sub G_new_node {
- my($nodes,$edges,$name) = @_;
- $$nodes{$name}{name}=$name;
- $$nodes{$name}{type}=2;
-}
-
-sub G_connect {
- my($nodes,$edges,$src,$dst) = @_;
- my($edge_count)=scalar(keys(%{$edges}));
- $$edges{$edge_count}{src}=$src;
- $$edges{$edge_count}{dst}=$dst;
-# $$edges{$edge_count}{delay} = $delay;
-# $$edges{$edge_count}{bw} = $bw;
-# $$edges{$edge_count}{type} = $type;
-# $$edges{$edge_count}{using_path} = [];
- $$nodes{$src}{out}{$dst} = $edge_count;
- $$nodes{$dst}{in}{$src} = $edge_count;
- $$nodes{$dst}{out}{$src} = $edge_count;
- $$nodes{$src}{in}{$dst} = $edge_count;
- return($edge_count);
-}
-
-sub GO_connect {
- my($nodes,$edges,$src,$dst) = @_;
- my($edge_count)=scalar(keys(%{$edges}));
- $$edges{$edge_count}{src}=$src;
- $$edges{$edge_count}{dst}=$dst;
-# $$edges{$edge_count}{delay} = $delay;
-# $$edges{$edge_count}{bw} = $bw;
-# $$edges{$edge_count}{type} = $type;
-# $$edges{$edge_count}{using_path} = [];
- $$nodes{$src}{out}{$dst} = $edge_count;
- $$nodes{$dst}{in}{$src} = $edge_count;
- return($edge_count);
-}
-
-sub G_simgrid_export {
- my($nodes,$edges,$filename) = @_;
- my($u,$v,$w,$e);
- my(@host_list)=();
-
- open MSG_OUTPUT, "> $filename";
-
- print MSG_OUTPUT "HOSTS\n";
- foreach $u (keys %{$nodes}) {
- if (!((defined($$nodes{$u}{host}))&&($$nodes{$u}{host}==1))) { next; }
- if (!((defined($$nodes{$u}{Mflops}))&&($$nodes{$u}{host}==1))) {
- die "Lacking Mflops for $u\n";
- }
- print MSG_OUTPUT "$u $$nodes{$u}{Mflops}\n";
- push @host_list,$u;
- }
- print MSG_OUTPUT "LINKS\n";
- foreach $e (keys %{$edges}) {
- (defined($$edges{$e}{bw})) or die "Lacking bw for $u\n";
- (defined($$edges{$e}{delay})) or die "Lacking bw for $u\n";
- print MSG_OUTPUT "$e $$edges{$e}{bw} $$edges{$e}{delay}\n";
- }
- print MSG_OUTPUT "ROUTES\n";
- foreach $u (@host_list){
- foreach $v (@host_list){
- if($u ne $v) {
- my(@path)=();
- $w = $u;
- while ($w ne $v) {
- my($next) = $$nodes{$w}{shortest_route}{$v};
- $e = $$nodes{$w}{out}{$next};
- push(@path,$e);
- $w = $next;
- }
- print MSG_OUTPUT "$u $v (@path)\n";
- }
- }
- }
- close(MSG_OUTPUT);
-}
-
-sub G_surfxml_export {
- my($nodes,$edges,$filename) = @_;
- my($u,$v,$w,$e);
- my(@host_list)=();
-
- open MSG_OUTPUT, "> $filename";
-
- print MSG_OUTPUT "<?xml version='1.0'?>\n";
- print MSG_OUTPUT "<!DOCTYPE platform_description SYSTEM \"surfxml.dtd\">\n";
- print MSG_OUTPUT "<platform_description>\n";
-
- foreach $u (keys %{$nodes}) {
- if (!((defined($$nodes{$u}{host}))&&($$nodes{$u}{host}==1))) { next; }
- if (!((defined($$nodes{$u}{Mflops}))&&($$nodes{$u}{host}==1))) {
- die "Lacking Mflops for $u\n";
- }
- print MSG_OUTPUT " <cpu name=\"$$nodes{$u}{name}\" power=\"$$nodes{$u}{Mflops}\"/>\n";
- push @host_list,$u;
- }
- foreach $e (keys %{$edges}) {
- (defined($$edges{$e}{bw})) or die "Lacking bw for $u\n";
- (defined($$edges{$e}{delay})) or die "Lacking bw for $u\n";
- my($lat);
- $lat = $$edges{$e}{delay} / 1000;
- print MSG_OUTPUT " <network_link name=\"$e\" bandwidth=\"$$edges{$e}{bw}\" latency=\"$lat\"/>\n";
- }
- foreach $u (@host_list){
- foreach $v (@host_list){
- if($u ne $v) {
- my(@path)=();
- $w = $u;
- while ($w ne $v) {
- my($next) = $$nodes{$w}{shortest_route}{$v};
- $e = $$nodes{$w}{out}{$next};
- push(@path,$e);
- $w = $next;
- }
- print MSG_OUTPUT " <route src=\"$$nodes{$u}{name}\" dst=\"$$nodes{$v}{name}\">";
- foreach $w (@path) {
- print MSG_OUTPUT "<route_element name=\"$w\"/>";
- }
- print MSG_OUTPUT " </route>\n";
- }
- }
- }
- print MSG_OUTPUT "</platform_description>\n";
- close(MSG_OUTPUT);
-}
-
-##############################
-### GRAPH ALGORITHMS ###
-##############################
-
-sub shortest_paths{
- my($nodes,$edges) = @_;
-
- my(%connexion);
- my(%distance);
- my(%shortest);
-
- my(@node_list) = sort (keys %$nodes);
- my($n) = scalar(@node_list);
-
- my($u,$v,$w,$step,$e);
-
- foreach $u (@node_list){
- foreach $v (@node_list){
- $connexion{$u}{$v} = 0;
- $distance{$u}{$v} = 0;
- $shortest{$u}{$v} = -1;
- }
- }
-
- foreach $e (sort (keys %$edges)){
- my($x1)=$$edges{$e}{src};
- my($x2)=$$edges{$e}{dst};
- $connexion{$x1}{$x2} = $connexion{$x2}{$x1} = 1;
- $distance{$x1}{$x2} = $distance{$x2}{$x1} = 1;
- $shortest{$x1}{$x2} = $x2;
- $shortest{$x2}{$x1} = $x1;
- }
-
-# print_matrix(\%connexion);
-# matrix2viz(\%connexion);
-
- foreach $step (0..$n-1){
- my($modif) = 0;
- foreach $u (@node_list){
- foreach $v (@node_list){
- foreach $w (@node_list){
- if(($connexion{$u}{$w} != 0)
- && ($distance{$w}{$v}!=0)
- && (($distance{$u}{$v} >
- $distance{$u}{$w} + $distance{$w}{$v}) || ($distance{$u}{$v}==0))
- ){
- $distance{$u}{$v} =
- $distance{$u}{$w} + $distance{$w}{$v};
- $shortest{$u}{$v} = $w;
- $modif = 1;
- }
- }
- }
- }
- if($modif == 0) {last;}
- }
-
- foreach $u (@node_list){
- foreach $v (@node_list){
- if($u eq $v) {
- $$nodes{$u}{shortest_route}{$v} = $u;
- $$nodes{$u}{number_hops}{$v} = 0;
- } else {
- $$nodes{$u}{shortest_route}{$v} = $shortest{$u}{$v};
- $$nodes{$u}{number_hops}{$v} = $distance{$u}{$v};
- }
- }
- }
-}
-
-sub build_interferences{
- my($nodes,$edges,$host_list) = @_;
-
- my($u,$v,$w,$e);
- my(%interference);
-
- foreach $u (@$host_list){
- foreach $v (@$host_list){
- if($u ne $v) {
- $w = $u;
- push(@{ $$nodes{$u}{using_path}},[$u,$v]);
- while ($w ne $v) {
- my($next) = $$nodes{$w}{shortest_route}{$v};
- $e = $$nodes{$w}{out}{$next};
- push(@{ $$edges{$e}{using_path}},[$u,$v]);
- push(@{ $$nodes{$next}{using_path}},[$u,$v]);
- $w = $next;
- }
- }
- }
- }
-# foreach $e (keys %$edges){
-# my($e1,$e2);
-# foreach $e1 (@{$$edges{$e}{using_path}}) {
-# my($p1,$q1) = @$e1;
-# foreach $e2 (@{$$edges{$e}{using_path}}) {
-# my($p2,$q2) = @$e2;
-# $interference{$p1}{$p2}{$q1}{$q2} = 1;
-# }
-# }
-# }
- my($p1,$p2,$q1,$q2);
-
- foreach $p1 (@$host_list) {
- foreach $p2 (@$host_list) {
- foreach $q1 (@$host_list) {
- foreach $q2 (@$host_list) {
- $interference{$p1}{$p2}{$q1}{$q2}=0;
- }
- }
- }
- }
-
- foreach $e (keys %$nodes){
- my($e1,$e2);
- foreach $e1 (@{$$nodes{$e}{using_path}}) {
- my($p1,$q1) = @$e1;
- foreach $e2 (@{$$nodes{$e}{using_path}}) {
- my($p2,$q2) = @$e2;
- $interference{$p1}{$p2}{$q1}{$q2} = 1;
- }
- }
- }
-
- foreach $e (keys %$nodes){
- undef(@{$$nodes{$e}{using_path}});
- }
-
- foreach $e (keys %$edges){
- undef(@{$$edges{$e}{using_path}});
- }
-
-# foreach $u (@host_list){
-# foreach $v (@host_list){
-# if((defined($interference[$u]))&&(defined($interference[$u][$v]))) {
-# print_matrix($interference[$u][$v]);
-# }
-# }
-# }
- return(\%interference);
-}
-
-sub __visit_pp {
- my($nodes,$edges,$u,$time,$direction,$stamp) = @_;
- my($v);
- $$nodes{$u}{"Couleur_$stamp"}=1;
- $$time++;
- $$nodes{$u}{"Debut_$stamp"}=$$time;
- foreach $v (keys (%{$$nodes{$u}{$direction}})) {
- if ($$nodes{$v}{"Couleur_$stamp"} == 0) {
- $$nodes{$v}{"PI_$stamp"} = $u;
- __visit_pp($nodes,$edges,$v,$time,$direction,$stamp);
- }
- }
- $$nodes{$u}{"Couleur_$stamp"}=2;
- $$time++;
- $$nodes{$u}{"Fin_$stamp"}=$$time;
-}
-
-sub __PP {
- my($nodes,$edges,$direction,$stamp,$stampSorter) = @_;
-
- my(@node_list) = (keys %$nodes);
- if(defined($stampSorter)) {
- @node_list = sort {
- $$nodes{$b}{$stampSorter}
- <=>
- $$nodes{$a}{$stampSorter}
- } @node_list;
- }
-
- my($u,$time);
-
- foreach $u (@node_list) {
- $$nodes{$u}{"Couleur_$stamp"} = 0;
- }
- $time = 0;
- foreach $u (@node_list) {
- if($$nodes{$u}{"Couleur_$stamp"} == 0) {
- __visit_pp($nodes,$edges,$u,\$time,$direction,$stamp);
- }
- }
- return $time;
-}
-
-
-sub GO_SCC_Topological_Sort{
- my($nodes,$edges) = @_;
-
- my(@node_list) = (keys %$nodes);
-
- ### Strongly Connected Components building
- __PP($nodes,$edges,"out","1");
- __PP($nodes,$edges,"in","2","Fin_1");
-
- @node_list = sort
- {
- if ($$nodes{$a}{"Fin_2"}<$$nodes{$b}{"Debut_2"}) {
- return -1;
- } elsif ($$nodes{$a}{"Debut_2"}<$$nodes{$b}{"Debut_2"}) {
- return -1;
- }
- return 1;
- }
- @node_list;
-
- my($u,$v);
- my($scc)=$node_list[0];
- my(%SCC);
- foreach $u (@node_list) {
- if($$nodes{$u}{Fin_2} > $$nodes{$scc}{Fin_2}) {
- $scc = $u;
- }
- push @{$SCC{$scc}},$u;
- $$nodes{$u}{SCC_leader}=$scc;
- }
-
- ### Topological Sort
- my($n_SCC,$e_SCC)=G_new_graph();
- foreach $scc (keys %SCC) {
- G_new_node($n_SCC,$e_SCC,$$nodes{$scc}{SCC_leader});
- foreach $u (@{$SCC{$scc}}) {
- foreach $v (keys (%{$$nodes{$u}{out}})) {
- if(!defined($$n_SCC{$$nodes{$u}{SCC_leader}}{out}{$$nodes{$v}{SCC_leader}})) {
- GO_connect($n_SCC,$e_SCC,$$nodes{$u}{SCC_leader},$$nodes{$v}{SCC_leader});
- }
- }
- }
- }
-
- __PP($n_SCC,$e_SCC,"out","TS");
- my(@SCC_list) = keys %SCC;
- @SCC_list = sort {$$n_SCC{$b}{Fin_TS} <=> $$n_SCC{$a}{Fin_TS}} @SCC_list;
- my(@ordering)=();
- foreach $scc (@SCC_list) {
- push @ordering, $SCC{$scc};
- }
-
- return \@ordering;
-}
-
-
-1;
+++ /dev/null
-#!/usr/bin/perl -w
-use strict;
-
-#################################
-### GRAPH VISUALISATION ###
-#################################
-
-sub graph2viz{
- my($nodes,$edges,$filename) = @_;
-
- open VIZ, "> $filename.dot";
- print VIZ "graph essai { \n";
- print VIZ " graph [overlap=scale]\n";
- #print VIZ " graph [overlap=false spline=true]\n";
- print VIZ " node [shape=box, style=filled]\n";
- print VIZ " node [width=.3, height=.3, style=filled, color=skyblue]\n";
-
- my($u,$e);
- foreach $u (sort (keys %$nodes)){
- print VIZ " \"$u\" [label=\"$u\"";
-# if((defined($$nodes{$u}{max_interf}))&&($$nodes{$u}{max_interf}==1)) {print VIZ ",color=green";}
- if(defined($$nodes{$u}{host}) && ($$nodes{$u}{host}==1)) {print VIZ ",color=red";}
- print VIZ "];\n";
- }
-
- foreach $e (sort (keys %$edges)){
- my($src)=$$edges{$e}{src};
- my($dst)=$$edges{$e}{dst};
-# my($len)=log(10000/$$edges{$e}{bw});
- print VIZ " \"$src\" -- \"$dst\" [";
-# print VIZ "len=$len";
-# print VIZ "label=$e";
- if($#{$$edges{$e}{using_path}}>=0) {
- print VIZ "color=red";
- } else {
- print VIZ "color=gray";
- }
- print VIZ "];\n";
- }
-
- print VIZ "}\n";
- close VIZ;
-
- system("neato -Tps $filename.dot > $filename.ps");
-# system("gv $filename.ps");
- system("pstoedit -f fig $filename.ps $filename.fig 2>/dev/null");
-# system("xfig -startg 0 $filename.fig ");
-}
-
-sub digraph2viz{
- my($nodes,$edges,$filename) = @_;
-
- open VIZ, "> $filename.dot";
- print VIZ "digraph essai { \n";
- print VIZ " graph [overlap=scale]\n";
- #print VIZ " graph [overlap=false spline=true]\n";
- print VIZ " node [shape=box, style=filled]\n";
- print VIZ " node [width=.3, height=.3, style=filled, color=skyblue]\n";
-
- my($u,$e);
- foreach $u (sort (keys %$nodes)){
- print VIZ " $u [label=$u";
- if((defined($$nodes{$u}{host}))&&($$nodes{$u}{host}==1)) {print VIZ ",color=red";}
- print VIZ "];\n";
- }
-
- foreach $e (sort (keys %$edges)){
- my($src)=$$edges{$e}{src};
- my($dst)=$$edges{$e}{dst};
-# my($len)=log(10000/$$edges{$e}{bw});
- print VIZ " $src -> $dst\n";
-# print VIZ "len=$len";
-# print VIZ "label=$e";
- }
-
- print VIZ "}\n";
- close VIZ;
-
- system("dot -Tps $filename.dot > $filename.ps");
-# system("gv $filename.ps");
- system("pstoedit -f fig $filename.ps $filename.fig 2>/dev/null");
- system("xfig -startg 0 $filename.fig ");
-}
-
-sub graph2fig_basic{
- my($nodes,$edges,$filename) = @_;
-
- open VIZ, "> $filename.fig";
-
- print VIZ "#FIG 3.2\n";
- print VIZ "Landscape\n";
- print VIZ "Center\n";
- print VIZ "Metric\n";
- print VIZ "A4\n";
- print VIZ "100.00\n";
- print VIZ "Single\n";
- print VIZ "-2\n";
- print VIZ "1200 2\n";
-
- my($scale)=5;
-
- my($u,$e);
- foreach $u (sort (keys %$nodes)){
- my($x) = $scale * $$nodes{$u}{X};
- my($y) = $scale * $$nodes{$u}{Y};
- print VIZ "4 1 0 50 -1 0 12 0.0000 0 135 270 $x $y $u\\001\n";
- }
-
- foreach $e (sort (keys %$edges)){
- my($src)=$$edges{$e}{src};
- my($dst)=$$edges{$e}{dst};
- my($x1) = $scale * $$nodes{$src}{X};
- my($y1) = $scale * $$nodes{$src}{Y};
- my($x2) = $scale * $$nodes{$dst}{X};
- my($y2) = $scale * $$nodes{$dst}{Y};
- print VIZ "2 1 0 1 4 7 50 -1 -1 0.000 0 0 -1 0 0 2\n";
- print VIZ "\t $x1 $y1 $x2 $y2\n";
- }
- close VIZ;
-
- system("xfig -startg 0 $filename.fig ");
-}
-
-sub interfgraph2viz{
- my($nodes,$edges,$count_interferences,$value_interferences,$figbase,$filename) = @_;
-
- system("cp $figbase.fig $filename.fig");
- open FIG, ">> $filename.fig";
- my($e);
- foreach $e (@{$$count_interferences{$value_interferences}}){
- my($src)=$$e[0];
- my($dst)=$$e[1];
- my(@tab);
- print STDERR "($src - $dst)\n";
- $src = `grep ' $src\\\\001' $filename.fig`;
- $dst = `grep ' $dst\\\\001' $filename.fig`;
- @tab = split(/\s+/,$src);
- my($x1) = $tab[11];
- my($y1) = $tab[12];
- @tab = split(/\s+/,$dst);
- my($x2) = $tab[11];
- my($y2) = $tab[12];
- print FIG "2 1 0 3 14 7 999 -1 -1 0.000 0 0 -1 0 0 2\n";
- print FIG "\t $x1 $y1 $x2 $y2\n";
-# print VIZ " $src -- $dst [color=green];\n";
- }
- close(FIG);
-# system("xfig -startg 0 $filename.fig ");
- system("fig2dev -L png $filename.fig $filename.png");
- unlink("$filename.fig");
-}
-
-
-sub graph_get_layout{
- my($nodes,$edges,$filename) = @_;
-
- graph2viz($nodes,$edges,$filename);
-
- my($u);
- foreach $u (sort (keys %$nodes)){
- my($val_u) = `grep ' $u\\\\001' $filename.fig`;
- my(@tab) = split(/\s+/,$val_u);
- my($x1) = $tab[11];
- my($y1) = $tab[12];
- $$nodes{$u}{X}=$x1;
- $$nodes{$u}{Y}=$y1;
- }
-}
-
-sub graph2viz_withlayout{
- my($nodes,$edges,$filename) = @_;
-
- open FIG, ">> $filename.fig";
- my($e,$u);
- foreach $u (sort (keys %$nodes)){
- my($x1) = int ($$nodes{$u}{X});
- my($y1) = int ($$nodes{$u}{Y});
- print FIG "1 3 0 1 0 31 50 -1 20 0.000 1 0.0000 $x1 $y1 75 75 $x1 $y1 ".($x1+75)." $y1\n";
- }
- foreach $e (sort (keys %$edges)){
- my($src)=$$edges{$e}{src};
- my($dst)=$$edges{$e}{dst};
- my($x1) = int ($$nodes{$src}{X});
- my($y1) = int ($$nodes{$src}{Y});
- my($x2) = int ($$nodes{$dst}{X});
- my($y2) = int ($$nodes{$dst}{Y});
- print FIG "2 1 0 3 14 7 60 -1 -1 0.000 0 0 -1 0 0 2\n";
- print FIG "\t $x1 $y1 $x2 $y2\n";
- }
- close(FIG);
-# system("xfig -startg 0 $filename.fig ");
-# system("fig2dev -L png $filename.fig $filename.png");
-}
-
-sub print_matrix{
- my($M) = shift;
-
- if(!defined($M)) {return;}
- my($u,$v);
-
- my(@node_list) = sort (keys %$M);
- my($n) = scalar(@node_list);
-
- foreach $u (0..$n-1){
- print "==";
- }
- print "\n";
-
- foreach $u (@node_list){
- if(defined($$M{$u})) {
- foreach $v (@node_list){
- if(defined($$M{$u}{$v})){
- print "$$M{$u}{$v} ";
- } else {
- print " ";
- }
- }
- }
- print "\n";
- }
- foreach $u (0..$n-1){
- print "==";
- }
- print "\n\n";
-}
-
-sub matrix2viz{
- my($M) = shift;
- my($filename) = "foo";
- open VIZ, "> $filename.dot";
-
- print VIZ "# Brite topology translated by Alvin\n";
- print VIZ "graph essai { \n";
- print VIZ " graph [overlap=scale]\n";
-
- #print VIZ " graph [overlap=false spline=true]\n";
- print VIZ " node [shape=box, style=filled]\n";
- print VIZ " node [width=.3, height=.3, style=filled, color=skyblue]\n";
- my(@node_list) = sort (keys %$M);
- my($n) = scalar(@node_list);
-
- my($u,$v);
- foreach $u (@node_list){
- print VIZ " $u [label=$u, color = red];\n";
- }
-
- foreach $u (@node_list){
- foreach $v (@node_list){
- if($$M{$u}{$v}!=0){
- print VIZ " $u -- $v ;\n";
- }
- }
- }
- print VIZ "}\n";
- close VIZ;
-
- system("neato -Tps $filename.dot > $filename.ps");
- system("gv $filename.ps");
-}
-
-
-sub print_object {
- my($M) = @_;
- my($key);
- if(!defined($M)) {
- } elsif (!ref($M)) {
- print "\"$M\"";
- return;
- } elsif (ref($M) eq "SCALAR") {
- print "\"$$M\"";
- return;
- } elsif (ref($M) eq "HASH") {
- print "{";
- foreach $key (sort (keys %{$M})) {
- if($key eq "number_hops") {next;}
- if($key eq "shortest_route") {next;}
- if($key eq "using_path") {next;}
- print "\"$key\" => ";
- print_object($$M{$key});
- print ","
- }
- print "}";
- } elsif (ref($M) eq "ARRAY") {
- print "[";
- foreach $key (0..$#$M) {
- print_object($$M[$key]);
- print ","
- }
- print "]";
- } else {
- }
-}
-
-# sub print_object{
-# my($indent,$M) = @_;
-# my($key);
-# if (!ref($M)) {
-# print "$M";
-# return;
-# } elsif (ref($M) eq "SCALAR") {
-# print "$$M";
-# return;
-# } elsif (ref($M) eq "HASH") {
-# print "\n";
-# foreach $key (sort (keys %{$M})) {
-# print "$indent $key => { ";
-# print_object($indent." ", $$M{$key});
-# print "$indent }\n"
-# }
-# } elsif (ref($M) eq "ARRAY") {
-# print "\n";
-# foreach $key (0..$#$M) {
-# print "$indent $key : [";
-# print_object($indent." ", $$M[$key]);
-# print "$indent ]\n"
-# }
-# } else {
-# }
-# }
-
-1;
+++ /dev/null
-#
-# Parameters for Network Model ModelId: 856566616
-# ============================
-#
-# Value Parameter
-# ----- ---------
-#
-# 1 NW: number of WANs
-# 2 NM: number of MANs per WAN
-# 3 NL: number of LANs per MAN
-# 5 SW: number of nodes per WAN
-# 5 SM: number of nodes per MAN
-# 5 SL: number of nodes per LAN
-# 1 RW: intranetwork redundancy for WAN
-# 1 RM: intranetwork redundancy for MANs
-# 1 RL: intranetwork redundancy for LANs
-# 1 RMW: internetwork redundancy for MAN to WAN
-# 1 RLM: internetwork redundancy for LAN to MAN
-#
-# 100 Grid size (square)
-# 40 Grid unit for WAN
-# 8 Grid unit for MAN
-# 2 Grid unit for LAN
-#
-# 0 Proximity test for WAN (0 is inactive)
-# 0 Proximity test for MAN (0 is inactive)
-# 0 Proximity test for LAN (0 is inactive)
-#
-# 0 Edge list is directed (0) or undirected (1)
-# Total Number of Nodes (derived) : 45
-#
-# Edge Metrics
-# ------------
-#
-# From To Band- Fixed Delay/Unit
-# Type Type width Delay Distance
-# ------------------------------------------
-# 0 0 10 5 1
-# 0 1 10 50 1
-# 0 2 0 0 1
-# 1 0 10 50 1
-# 1 1 100 100 10
-# 1 2 100 1000 1
-# 2 0 0 0 1
-# 2 1 100 1000 1
-# 2 2 1000 150 100
-#
-# NODES
-# =====
-#
-# Node X Y Type (0 = WAN, 1 = MAN, 2 = LAN)
-# ------------------------------------
-0 440 960 0
-1 760 1480 0
-2 2680 1920 0
-3 2440 1200 0
-4 1000 1280 0
-5 2632 1512 1
-6 2736 1416 1
-7 3072 1232 1
-8 2992 1520 1
-9 2904 1928 1
-10 1016 1552 1
-11 864 1248 1
-12 592 1008 1
-13 1112 928 1
-14 1128 1296 1
-15 3261 1367 2
-16 3095 1305 2
-17 3115 1341 2
-18 3143 1263 2
-19 3115 1325 2
-20 3095 1605 2
-21 2993 1599 2
-22 3013 1669 2
-23 3163 1547 2
-24 3129 1597 2
-25 3177 1389 2
-26 3097 1309 2
-27 3257 1393 2
-28 3129 1321 2
-29 3095 1417 2
-30 661 1015 2
-31 641 1037 2
-32 791 1079 2
-33 605 1181 2
-34 773 1071 2
-35 865 1333 2
-36 901 1367 2
-37 921 1267 2
-38 1045 1409 2
-39 967 1265 2
-40 671 1071 2
-41 731 1171 2
-42 615 1153 2
-43 677 1015 2
-44 599 1031 2
-#
-# EDGES
-# =====
-#
-# From To Delay Band- From To State (1:active, 2:redundant
-# Node Node width Type Type 3:internetwork, 4:red.inter.)
-# ---------------------------------------------------
-#
-# WAN 0
-#
-0 1 605 10 0 0 1
-0 13 51 10 0 1 3
-1 4 285 10 0 0 1
-1 0 605 10 0 0 1
-2 3 725 10 0 0 1
-3 4 1445 10 0 0 1
-3 2 725 10 0 0 1
-3 8 51 10 0 1 3
-4 1 285 10 0 0 1
-4 3 1445 10 0 0 1
-#
-# MAN 0
-#
-5 6 1460 100 1 1 1
-6 8 2820 100 1 1 1
-6 5 1460 100 1 1 1
-7 8 3060 100 1 1 1
-7 15 1001 100 1 2 3
-7 25 1001 100 1 2 3
-8 7 3060 100 1 1 1
-8 6 2820 100 1 1 1
-8 9 4260 100 1 1 1
-8 3 51 10 1 0 3
-8 20 1001 100 1 2 3
-9 8 4260 100 1 1 1
-#
-# MAN 1
-#
-10 14 2820 100 1 1 1
-11 14 2740 100 1 1 1
-11 12 3700 100 1 1 1
-11 35 1001 100 1 2 3
-12 11 3700 100 1 1 1
-12 30 1001 100 1 2 3
-12 40 1001 100 1 2 3
-13 14 3780 100 1 1 1
-13 0 51 10 1 0 3
-14 11 2740 100 1 1 1
-14 10 2820 100 1 1 1
-14 13 3780 100 1 1 1
-#
-# LAN 0
-#
-15 16 17750 1000 2 2 1
-16 15 17750 1000 2 2 1
-15 17 14950 1000 2 2 1
-17 15 14950 1000 2 2 1
-15 18 15750 1000 2 2 1
-18 15 15750 1000 2 2 1
-15 19 15150 1000 2 2 1
-19 15 15150 1000 2 2 1
-15 7 1001 100 2 1 3
-7 15 1001 100 1 2 3
-#
-# LAN 1
-#
-20 21 10350 1000 2 2 1
-21 20 10350 1000 2 2 1
-20 22 10550 1000 2 2 1
-22 20 10550 1000 2 2 1
-20 23 8950 1000 2 2 1
-23 20 8950 1000 2 2 1
-20 24 3550 1000 2 2 1
-24 20 3550 1000 2 2 1
-20 8 1001 100 2 1 3
-8 20 1001 100 1 2 3
-#
-# LAN 2
-#
-25 26 11350 1000 2 2 1
-26 25 11350 1000 2 2 1
-25 27 8150 1000 2 2 1
-27 25 8150 1000 2 2 1
-25 28 8350 1000 2 2 1
-28 25 8350 1000 2 2 1
-25 29 8750 1000 2 2 1
-29 25 8750 1000 2 2 1
-25 7 1001 100 2 1 3
-7 25 1001 100 1 2 3
-#
-# LAN 3
-#
-30 31 2950 1000 2 2 1
-31 30 2950 1000 2 2 1
-30 32 14550 1000 2 2 1
-32 30 14550 1000 2 2 1
-30 33 17550 1000 2 2 1
-33 30 17550 1000 2 2 1
-30 34 12550 1000 2 2 1
-34 30 12550 1000 2 2 1
-30 12 1001 100 2 1 3
-12 30 1001 100 1 2 3
-#
-# LAN 4
-#
-35 36 4950 1000 2 2 1
-36 35 4950 1000 2 2 1
-35 37 8750 1000 2 2 1
-37 35 8750 1000 2 2 1
-35 38 19550 1000 2 2 1
-38 35 19550 1000 2 2 1
-35 39 12350 1000 2 2 1
-39 35 12350 1000 2 2 1
-35 11 1001 100 2 1 3
-11 35 1001 100 1 2 3
-#
-# LAN 5
-#
-40 41 11750 1000 2 2 1
-41 40 11750 1000 2 2 1
-40 42 9950 1000 2 2 1
-42 40 9950 1000 2 2 1
-40 43 5750 1000 2 2 1
-43 40 5750 1000 2 2 1
-40 44 8350 1000 2 2 1
-44 40 8350 1000 2 2 1
-40 12 1001 100 2 1 3
-12 40 1001 100 1 2 3
-# End of Model
+++ /dev/null
-#!/usr/bin/perl -w
-
-use strict;
-
-$ARGV[0] or die "msg2surf.pl <platform.txt>";
-open INPUT, "$ARGV[0]" or die;
-
-my($line);
-my($parsing_host) = 0;
-my($parsing_link) = 0;
-my($parsing_route) = 0;
-my($lat);
-my(@link_list) = ();
-my($link);
-
-print "<?xml version='1.0'?>\n";
-print "<!DOCTYPE platform_description SYSTEM \"surfxml.dtd\">\n";
-print "<platform_description>\n";
-
-while(defined($line=<INPUT>)){
- chomp $line;
- if($line=~/HOSTS/) {
- $parsing_host=1;
- next;
- }
- if($line=~/LINKS/) {
- $parsing_host=0;
- $parsing_link=1;
- next;
- }
- if($line=~/ROUTES/) {
- $parsing_link=0;
- $parsing_route=1;
- next;
- }
-
- if($parsing_host) {
- if($line=~ /^\s*(\w+)\s+([0-9\.]+)\s*$/) {
- print " <cpu name=\"$1\" power=\"$2\"/>\n";
- } else die "Cannot understand line \"$line\"\n";
- }
- if($parsing_link) {
- if($line=~ /^\s*(\w+)\s+([0-9\.]+)\s*([0-9\.]+)\s*$/) {
- $lat=$3;
- $lat/=1000;
- print " <network_link name=\"$1\" bandwidth=\"$2\" latency=\"$lat\"/>\n";
- } else die "Cannot understand line \"$line\"\n";
- }
- if($parsing_route) {
- if($line=~ /^\s*(\w+)\s+(\w+)\s+\((.*)\)\s*$/) {
- @link_list=split(/\s+/, $3);
- print " <route src=\"$1\" dst=\"$2\">";
- foreach $link (@link_list) {
- print "<route_element name=\"$link\"/>";
- }
- print "</route>\n";
- } else die "Cannot understand line \"$line\"\n";
- }
-}
-print "</platform_description>\n";
-
-
+++ /dev/null
-/* $Id$ */
-
-/* Simple Generator */
-/* generates SimGrid platforms being either lines, rings, mesh, tore or */
-/* hypercubes. */
-
-/* Copyright (C) 2006 Flavien Vernier (original code) */
-/* Copyright (C) 2006 Martin Quinson (cleanups & maintainance) */
-/* All right reserved. */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-
-#include<stdio.h>
-#include<math.h>
-#include <stdlib.h>
-
-int MFLOPS=1000;
-int MBYTES=100;
-double LAT_S=0.00015;
-
-int size=0;
-int x=0,y=0;
-int dimension=0;
-
-int rand_mflops_min=0, rand_mflops_max=0;
-int rand_mbytes_min=0, rand_mbytes_max=0;
-double rand_lat_s_min=0.0, rand_lat_s_max=0.0;
-
-void randParam(){
- if(rand_mflops_min!=rand_mflops_max){
- MFLOPS=rand_mflops_min+((double)(rand_mflops_max-rand_mflops_min)*((double)rand()/RAND_MAX));
- }
- if(rand_mbytes_min!=rand_mbytes_max){
- MBYTES=rand_mbytes_min+((double)(rand_mbytes_max-rand_mbytes_min)*((double)rand()/RAND_MAX));
- }
- if(rand_lat_s_min!=rand_lat_s_max){
- LAT_S=rand_lat_s_min+((rand_lat_s_max-rand_lat_s_min)*((double)rand()/RAND_MAX));
- }
-}
-
-void generateLine(){
- int i;
- fprintf(stdout,"<?xml version='1.0'?>\n<!DOCTYPE platform_description SYSTEM \"surfxml.dtd\">\n<platform_description>\n");
-
-
- for(i=0;i<size;i++){
- fprintf(stdout,"<cpu name=\"node%i\" power=\"%i\"/>\n",i,MFLOPS);
- randParam();
- }
-
- for(i=0;i<2*(size-1);i++){
- fprintf(stdout,"<network_link name=\"link%i\" bandwidth=\"%i\" latency=\"%f\"/>\n",i,MBYTES,LAT_S);
- randParam();
- }
-
- for(i=0;i<size-1;i++){
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",i,(i+1),2*i);
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",(i+1),i,2*i+1);
- }
- fprintf(stdout,"</platform_description>\n");
-
-}
-
-void generateRing(){
- int i;
- fprintf(stdout,"<?xml version='1.0'?>\n<!DOCTYPE platform_description SYSTEM \"surfxml.dtd\">\n<platform_description>\n");
-
-
- for(i=0;i<size;i++){
- fprintf(stdout,"<cpu name=\"node%i\" power=\"%i\"/>\n",i,MFLOPS);
- randParam();
- }
-
- for(i=0;i<2*size;i++){
- fprintf(stdout,"<network_link name=\"link%i\" bandwidth=\"%i\" latency=\"%f\"/>\n",i,MBYTES,LAT_S);
- randParam();
- }
-
- for(i=0;i<size;i++){
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",i,(i+1)%size,2*i);
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",(i+1)%size,i,2*i+1);
- }
- fprintf(stdout,"</platform_description>\n");
-}
-
-void generateMesh(){
- int i,j,l;
- fprintf(stdout,"<?xml version='1.0'?>\n<!DOCTYPE platform_description SYSTEM \"surfxml.dtd\">\n<platform_description>\n");
-
- for(i=0;i<x*y;i++){
- fprintf(stdout,"<cpu name=\"node%i\" power=\"%i\"/>\n",i,MFLOPS);
- randParam();
- }
-
- for(i=0;i<2*((x-1)*y+(y-1)*x);i++){
- fprintf(stdout,"<network_link name=\"link%i\" bandwidth=\"%i\" latency=\"%f\"/>\n",i,MBYTES,LAT_S);
- randParam();
- }
-
- l=0;
- for(j=0;j<y;j++){
- for(i=0;i<x;i++){
- if((i+1)%x!=0){
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",j*x+i,j*x+(i+1),l++);
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",j*x+(i+1),j*x+i,l++);
- }
- if(j<y-1){
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",j*x+i,j*x+(i+x),l++);
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",j*x+(i+x),j*x+i,l++);
- }
- }
- }
- fprintf(stdout,"</platform_description>\n");
-}
-
-void generateTore(){
- int i,j,l;
- fprintf(stdout,"<?xml version='1.0'?>\n<!DOCTYPE platform_description SYSTEM \"surfxml.dtd\">\n<platform_description>\n");
-
- for(i=0;i<x*y;i++){
- fprintf(stdout,"<cpu name=\"node%i\" power=\"%i\"/>\n",i,MFLOPS);
- randParam();
- }
-
- for(i=0;i<4*x*y;i++){
- fprintf(stdout,"<network_link name=\"link%i\" bandwidth=\"%i\" latency=\"%f\"/>\n",i,MBYTES,LAT_S);
- randParam();
- }
-
- l=0;
- for(j=0;j<y;j++){
- for(i=0;i<x;i++){
- if((i+1)%x!=0){
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",j*x+i,j*x+(i+1),l++);
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",j*x+(i+1),j*x+i,l++);
- }else{
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",j*x+i,j*x+i-x+1,l++);
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",j*x+i-x+1,j*x+i,l++);
- }
- if(j<y-1){
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",j*x+i,j*x+(i+x),l++);
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",j*x+(i+x),j*x+i,l++);
- }else{
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",j*x+i,i,l++);
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",i,j*x+i,l++);
- }
- }
- }
- fprintf(stdout,"</platform_description>\n");
-}
-
-
-void generateHypercube(){
- int i,d,l;
-
- fprintf(stdout,"<?xml version='1.0'?>\n<!DOCTYPE platform_description SYSTEM \"surfxml.dtd\">\n<platform_description>\n");
-
- for(i=0;i<(int)pow(2.0,(double)dimension);i++){
- fprintf(stdout,"<cpu name=\"node%i\" power=\"%i\"/>\n",i,MFLOPS);
- randParam();
- }
-
- for(i=0;i<dimension*(int)pow(2.0,(double)dimension);i++){
- fprintf(stdout,"<network_link name=\"link%i\" bandwidth=\"%i\" latency=\"%f\"/>\n",i,MBYTES,LAT_S);
- randParam();
- }
-
- fprintf(stdout,"ROUTES\n");
- l=0;
- for(i=0;i<(int)pow(2.0,(double)dimension);i++){
- for(d=1;d<(int)pow(2.0,(double)dimension);d=2*d)
- fprintf(stdout,"<route src=\"node%i\" dst=\"node%i\"> <route_element name=\"link%i\"/></route>\n",i,i^d,l++);
- }
- fprintf(stdout,"</platform_description>\n");
-}
-
-void usage(int argc, char** argv){
- fprintf(stderr,"%s topo [options] > platform_file.xml\n",argv[0]);
- fprintf(stderr,"\ntopo:\n");
- fprintf(stderr,"\t LINE n \t generates a line of n nodes.\n");
- fprintf(stderr,"\t RING n \t generates a ring of n nodes.\n");
- fprintf(stderr,"\t MESH x y \t generates a mesh of x line(s) y column(s).\n");
- fprintf(stderr,"\t TORE x y \t generates a tore of x line(s) y column(s).\n");
- fprintf(stderr,"\t HYPE d \t generates a hypercubee of dimension d\n");
- fprintf(stderr,"\noptions:\n");
- fprintf(stderr,"\t --mflops n \t defines the power of each node (default: 1000), n must be integer\n");
- fprintf(stderr,"\t --mbytes n \t defines the bandwidth of each edge (default: 100), n must be integer\n");
- fprintf(stderr,"\t --lat_s n \t defines the latency of each edge (default: 0.00015), n can be float\n");
- fprintf(stderr,"\t --rand_mflops min max \t defines a random power between min and max for each node\n");
- fprintf(stderr,"\t --rand_mbytes min max \t defines a random bandwidth between min and max for each edge\n");
- fprintf(stderr,"\t --rand_lat_s min max \t defines a random latency between min and max for each edge\n");
- fprintf(stderr,"\t --help\n");
-}
-
-
-int main(int argc, char** argv){
- int i=1;
-
- void (*generate)();
- generate=NULL;
-
- srand(time(NULL));
-
- while(i<argc){
- if((strcmp(argv[i],"LINE")==0)&&(i+1<argc)){
- generate=generateLine;
- size=atoi(argv[i+1]);
- i+=2;
- }else if((strcmp(argv[i],"RING")==0)&&(i+1<argc)){
- generate=generateRing;
- size=atoi(argv[i+1]);
- i+=2;
- }else if((strcmp(argv[i],"MESH")==0)&&(i+2<argc)){
- generate=generateMesh;
- x=atoi(argv[i+1]);
- y=atoi(argv[i+2]);
- i+=3;
- }else if((strcmp(argv[i],"TORE")==0)&&(i+2<argc)){
- generate=generateTore;
- x=atoi(argv[i+1]);
- y=atoi(argv[i+2]);
- i+=3;
- }else if((strcmp(argv[i],"HYPE")==0)&&(i+1<argc)){
- generate=generateHypercube;
- dimension=atoi(argv[i+1]);
- i+=2;
- }else if((strcmp(argv[i],"--mflops")==0)&&(i+1<argc)){
- MFLOPS=atoi(argv[i+1]);
- i+=2;
- }else if((strcmp(argv[i],"--mbytes")==0)&&(i+1<argc)){
- MBYTES=atoi(argv[i+1]);
- i+=2;
- }else if((strcmp(argv[i],"--lat_s")==0)&&(i+1<argc)){
- LAT_S=atof(argv[i+1]);
- i+=2;
- }else if((strcmp(argv[i],"--rand_mflops")==0)&&(i+2<argc)){
- rand_mflops_min=atoi(argv[i+1]);
- rand_mflops_max=atoi(argv[i+2]);
- randParam();
- i+=3;
- }else if((strcmp(argv[i],"--rand_mbytes")==0)&&(i+2<argc)){
- rand_mbytes_min=atoi(argv[i+1]);
- rand_mbytes_max=atoi(argv[i+2]);
- randParam();
- i+=3;
- }else if((strcmp(argv[i],"--rand_lat_s")==0)&&(i+2<argc)){
- rand_lat_s_min=atof(argv[i+1]);
- rand_lat_s_max=atof(argv[i+2]);
- randParam();
- i+=3;
- }else{
- usage(argc,argv);
- return 1;
- }
- }
- if(generate!=NULL){
- (*generate)();
- return 0;
- }else{
- usage(argc,argv);
- return 1;
- }
- return 0;
-}
-
+++ /dev/null
-#
-# Parameters for Network Model ModelId: 856566616
-# ============================
-#
-# Value Parameter
-# ----- ---------
-#
-# 1 NW: number of WANs
-# 2 NM: number of MANs per WAN
-# 3 NL: number of LANs per MAN
-# 3 SW: number of nodes per WAN
-# 3 SM: number of nodes per MAN
-# 3 SL: number of nodes per LAN
-# 1 RW: intranetwork redundancy for WAN
-# 1 RM: intranetwork redundancy for MANs
-# 1 RL: intranetwork redundancy for LANs
-# 1 RMW: internetwork redundancy for MAN to WAN
-# 1 RLM: internetwork redundancy for LAN to MAN
-#
-# 100 Grid size (square)
-# 40 Grid unit for WAN
-# 8 Grid unit for MAN
-# 2 Grid unit for LAN
-#
-# 0 Proximity test for WAN (0 is inactive)
-# 0 Proximity test for MAN (0 is inactive)
-# 0 Proximity test for LAN (0 is inactive)
-#
-# 0 Edge list is directed (0) or undirected (1)
-# Total Number of Nodes (derived) : 27
-#
-# Edge Metrics
-# ------------
-#
-# From To Band- Fixed Delay/Unit
-# Type Type width Delay Distance
-# ------------------------------------------
-# 0 0 10 5 1
-# 0 1 10 50 1
-# 0 2 0 0 1
-# 1 0 10 50 1
-# 1 1 100 100 10
-# 1 2 100 1000 1
-# 2 0 0 0 1
-# 2 1 100 1000 1
-# 2 2 1000 150 100
-#
-# NODES
-# =====
-#
-# Node X Y Type (0 = WAN, 1 = MAN, 2 = LAN)
-# ------------------------------------
-0 920 2320 0
-1 1360 3600 0
-2 360 920 0
-3 792 1552 1
-4 592 1248 1
-5 528 1224 1
-6 488 1568 1
-7 544 1320 1
-8 992 1312 1
-9 791 1259 2
-10 777 1407 2
-11 715 1401 2
-12 963 1577 2
-13 957 1613 2
-14 879 1743 2
-15 709 1305 2
-16 607 1329 2
-17 613 1349 2
-18 663 1707 2
-19 549 1757 2
-20 611 1651 2
-21 681 1667 2
-22 613 1727 2
-23 575 1615 2
-24 689 1505 2
-25 689 1389 2
-26 687 1457 2
-#
-# EDGES
-# =====
-#
-# From To Delay Band- From To State (1:active, 2:redundant
-# Node Node width Type Type 3:internetwork, 4:red.inter.)
-# ---------------------------------------------------
-#
-# WAN 0
-#
-0 2 1485 10 0 0 1
-0 1 1325 10 0 0 1
-1 0 1325 10 0 0 1
-2 0 1485 10 0 0 1
-2 5 51 10 0 1 3
-2 8 51 10 0 1 3
-#
-# MAN 0
-#
-3 4 3700 100 1 1 1
-3 12 1001 100 1 2 3
-4 5 740 100 1 1 1
-4 3 3700 100 1 1 1
-4 9 1001 100 1 2 3
-4 15 1001 100 1 2 3
-5 4 740 100 1 1 1
-5 2 51 10 1 0 3
-#
-# MAN 1
-#
-6 7 2580 100 1 1 1
-6 18 1001 100 1 2 3
-6 21 1001 100 1 2 3
-7 6 2580 100 1 1 1
-7 8 4580 100 1 1 1
-7 24 1001 100 1 2 3
-8 7 4580 100 1 1 1
-8 2 51 10 1 0 3
-#
-# LAN 0
-#
-9 10 14950 1000 2 2 1
-10 9 14950 1000 2 2 1
-9 11 16150 1000 2 2 1
-11 9 16150 1000 2 2 1
-9 4 1001 100 2 1 3
-4 9 1001 100 1 2 3
-#
-# LAN 1
-#
-12 13 3750 1000 2 2 1
-13 12 3750 1000 2 2 1
-12 14 18750 1000 2 2 1
-14 12 18750 1000 2 2 1
-12 3 1001 100 2 1 3
-3 12 1001 100 1 2 3
-#
-# LAN 2
-#
-15 16 10550 1000 2 2 1
-16 15 10550 1000 2 2 1
-15 17 10550 1000 2 2 1
-17 15 10550 1000 2 2 1
-15 4 1001 100 2 1 3
-4 15 1001 100 1 2 3
-#
-# LAN 3
-#
-18 19 12550 1000 2 2 1
-19 18 12550 1000 2 2 1
-18 20 7750 1000 2 2 1
-20 18 7750 1000 2 2 1
-18 6 1001 100 2 1 3
-6 18 1001 100 1 2 3
-#
-# LAN 4
-#
-21 22 9150 1000 2 2 1
-22 21 9150 1000 2 2 1
-21 23 11950 1000 2 2 1
-23 21 11950 1000 2 2 1
-21 6 1001 100 2 1 3
-6 21 1001 100 1 2 3
-#
-# LAN 5
-#
-24 25 11750 1000 2 2 1
-25 24 11750 1000 2 2 1
-24 26 4950 1000 2 2 1
-26 24 4950 1000 2 2 1
-24 7 1001 100 2 1 3
-7 24 1001 100 1 2 3
-# End of Model
+++ /dev/null
-#!/usr/bin/perl -w
-use strict;
-
-use graph_viz;
-use graph_tbx;
-
-
-##############################
-### GRAPH GENERATION ###
-##############################
-
-sub parse_tiers_file {
- my($filename);
- my($nodes,$edges)=G_new_graph(); # a new graph...
- $filename=shift or die "Need a tiers file!";
-
- open INPUT, $filename;
-
- my($state) = 0;
- my($line);
-
- while(defined($line=<INPUT>)){
- if($line =~ /^\# NODES/) {$state=1; next;}
- if($line =~ /^\# EDGES/) {$state=2; next;}
- if(($line=~/^\s*$/) || ($line=~/^\#/)) {next;}
- if ($state==1){ # Getting the nodes
- # Node X Y Type (0 = WAN, 1 = MAN, 2 = LAN)
- my($name,$X,$Y,$type) = split(/\s+/,$line);
- G_new_node($nodes,$edges,$name);
- $$nodes{$name}{X} = $X;
- $$nodes{$name}{Y} = $Y;
- $$nodes{$name}{type} = $type;
- $$nodes{$name}{using_path} = [];
- print STDERR "$name [$X $Y $type]\n";
- next;
- }
- if ($state==2){ # Getting the edges
- # From To Delay Band- From To State (1:active, 2:redundant
- # Node Node width Type Type 3:internetwork, 4:red.inter.)
- my($src,$dst,$delay,$bw,$srct,$dstt,$type) = split(/\s+/,$line);
- if(!defined($$nodes{$src}{out}{$dst})) {
- # links are symetric and simple
- my($edge_count)=G_connect($nodes,$edges,$src,$dst);
- $$edges{$edge_count}{delay} = $delay;
- $$edges{$edge_count}{bw} = $bw;
- $$edges{$edge_count}{type} = $type;
- $$edges{$edge_count}{using_path} = [];
- print STDERR "($dst,$src) [$delay $bw $type]\n";
- }
- next;
- }
- }
- close(INPUT);
- return($nodes,$edges);
-}
-
-sub generate_host_list{
- my($nodes,$edges,$proba) = @_;
- my($u);
- my(@host_list)=();
- foreach $u (sort (keys %$nodes)){ # type 0 = WAN, 1 = MAN, 2 = LAN
- if(($$nodes{$u}{type}==2) && (rand() < $proba)) {
- $$nodes{$u}{host}=1;
- push @host_list, $u;
- } else {
- $$nodes{$u}{host}=0;
- }
- }
- @host_list = sort {$a <=> $b} @host_list;
- return(\@host_list);
-}
-
-1;
+++ /dev/null
-#!/usr/bin/perl -w
-use strict;
-
-use AlvinMisc;
-use graph_viz;
-use graph_tbx;
-use tiers;
-
-my (%machine);
-$machine{"canaria.ens-lyon.fr"}{"CPU_clock"} = "347.669";
-$machine{"canaria.ens-lyon.fr"}{"CPU_Mflops"} = "34.333";
-$machine{"canaria.ens-lyon.fr"}{"CPU_model"} = "Pentium II (Deschutes)";
-$machine{"canaria.ens-lyon.fr"}{"CPU_num"} = "2";
-$machine{"canaria.ens-lyon.fr"}{"Machine_type"} = "i686";
-$machine{"canaria.ens-lyon.fr"}{"OS_version"} = "Linux 2.2.19pre17";
-
-$machine{"moby.ens-lyon.fr"}{"CPU_clock"} = "996.698";
-$machine{"moby.ens-lyon.fr"}{"CPU_Mflops"} = "114.444";
-$machine{"moby.ens-lyon.fr"}{"CPU_model"} = "Intel(R) Pentium(R) III Mobile CPU 1000MHz";
-$machine{"moby.ens-lyon.fr"}{"CPU_num"} = "1";
-$machine{"moby.ens-lyon.fr"}{"Machine_type"} = "i686";
-$machine{"moby.ens-lyon.fr"}{"OS_version"} = "Linux 2.4.18-accelerated";
-
-$machine{"popc0.ens-lyon.fr"}{"CPU_clock"} = "199.095";
-$machine{"popc0.ens-lyon.fr"}{"CPU_Mflops"} = "22.151";
-$machine{"popc0.ens-lyon.fr"}{"CPU_model"} = "Pentium Pro";
-$machine{"popc0.ens-lyon.fr"}{"CPU_num"} = "1";
-$machine{"popc0.ens-lyon.fr"}{"Machine_type"} = "i686";
-$machine{"popc0.ens-lyon.fr"}{"OS_version"} = "Linux 2.2.19";
-
-$machine{"sci0.ens-lyon.fr"}{"CPU_clock"} = "451.032446";
-$machine{"sci0.ens-lyon.fr"}{"CPU_Mflops"} = "48.492";
-$machine{"sci0.ens-lyon.fr"}{"CPU_model"} = "Pentium II (Deschutes)";
-$machine{"sci0.ens-lyon.fr"}{"CPU_num"} = "2";
-$machine{"sci0.ens-lyon.fr"}{"Machine_type"} = "i686";
-$machine{"sci0.ens-lyon.fr"}{"OS_version"} = "Linux 2.2.13";
-
-$machine{"lancelot.u-strasbg.fr"}{"OS_version"} = "Linux 2.2.17-21mdk";
-$machine{"lancelot.u-strasbg.fr"}{"CPU_clock"} = "400.916";
-$machine{"lancelot.u-strasbg.fr"}{"CPU_model"} = "Celeron (Mendocino)";
-$machine{"lancelot.u-strasbg.fr"}{"CPU_Mflops"} = "42.917000000000002";
-$machine{"lancelot.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"lancelot.u-strasbg.fr"}{"CPU_num"} = "1";
-
-$machine{"caseb.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.8-26mdk";
-$machine{"caseb.u-strasbg.fr"}{"CPU_clock"} = "1399.763";
-$machine{"caseb.u-strasbg.fr"}{"CPU_model"} = "AMD Athlon(tm) 4 Processor";
-$machine{"caseb.u-strasbg.fr"}{"CPU_Mflops"} = "137.333";
-$machine{"caseb.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"caseb.u-strasbg.fr"}{"CPU_num"} = "1";
-
-$machine{"pellinore.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.18-6mdksmp";
-$machine{"pellinore.u-strasbg.fr"}{"CPU_clock"} = "802.922";
-$machine{"pellinore.u-strasbg.fr"}{"CPU_model"} = "Pentium III (Coppermine)";
-$machine{"pellinore.u-strasbg.fr"}{"CPU_Mflops"} = "68.667000000000002";
-$machine{"pellinore.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"pellinore.u-strasbg.fr"}{"CPU_num"} = "2";
-
-$machine{"dinadan.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.19-686";
-$machine{"dinadan.u-strasbg.fr"}{"CPU_clock"} = "933.375";
-$machine{"dinadan.u-strasbg.fr"}{"CPU_model"} = "Pentium III (Coppermine)";
-$machine{"dinadan.u-strasbg.fr"}{"CPU_Mflops"} = "85.832999999999998";
-$machine{"dinadan.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"dinadan.u-strasbg.fr"}{"CPU_num"} = "1";
-
-$machine{"darjeeling.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.18-5";
-$machine{"darjeeling.u-strasbg.fr"}{"CPU_clock"} = "1793.371";
-$machine{"darjeeling.u-strasbg.fr"}{"CPU_model"} = "Intel(R) Pentium(R) 4 CPU 1.80GHz";
-$machine{"darjeeling.u-strasbg.fr"}{"CPU_Mflops"} = "98.094999999999999";
-$machine{"darjeeling.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"darjeeling.u-strasbg.fr"}{"CPU_num"} = "1";
-
-$machine{"gauvain.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.17";
-$machine{"gauvain.u-strasbg.fr"}{"CPU_clock"} = "1050.034";
-$machine{"gauvain.u-strasbg.fr"}{"CPU_model"} = "AMD Athlon(tm) Processor";
-$machine{"gauvain.u-strasbg.fr"}{"CPU_Mflops"} = "114.444";
-$machine{"gauvain.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"gauvain.u-strasbg.fr"}{"CPU_num"} = "1";
-
-$machine{"sekhmet.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.18-k7";
-$machine{"sekhmet.u-strasbg.fr"}{"CPU_clock"} = "1399.803";
-$machine{"sekhmet.u-strasbg.fr"}{"CPU_model"} = "AMD Athlon(tm) 4 Processor";
-$machine{"sekhmet.u-strasbg.fr"}{"CPU_Mflops"} = "171.667";
-$machine{"sekhmet.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"sekhmet.u-strasbg.fr"}{"CPU_num"} = "1";
-
-$machine{"shaitan.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.18-6mdk";
-$machine{"shaitan.u-strasbg.fr"}{"CPU_clock"} = "800.030";
-$machine{"shaitan.u-strasbg.fr"}{"CPU_model"} = "Pentium III (Coppermine)";
-$machine{"shaitan.u-strasbg.fr"}{"CPU_Mflops"} = "76.296000000000006";
-$machine{"shaitan.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"shaitan.u-strasbg.fr"}{"CPU_num"} = "1";
-
-my (%network);
-#0.587500,0.655,0.681
-
-$network{"bw"}{10} = [ [274285,0.514433], [330233,0.059904],
- [949460,0.136931], [1063823,0.131098],
- [2041829,7.413073] ];
-
-$network{"bw"}{100} = [ [64121,35.076518], [65264,0.270544],
- [67418,0.156056], [80797,0.479780], [82517,6.932556],
- [92951,0.189980], [94763,0.370788],
- [123015,35.083019], [171318,295.890617],
- [223570,0.278066], [274285,0.514433],
- [330233,0.059904] ];
-
-$network{"bw"}{1000} = [ [937,53.930106], [2013,4.455826],
- [2022,5.704550], [2025,5.652577], [2073,4.460898],
- [2179,5.922616], [2195,4.669142], [2321,4.522355],
- [2327,4.477270], [2427,4.062241], [2539,4.583831],
- [3777,5.161451], [4448,3.101854], [4629,5.473705],
- [4840,87.981858], [5773,0.006406], [6150,8.762440],
- [7413,0.601375], [7837,0.424305], [7867,2.885584],
- [7924,1.742977], [8394,9.647856], [9015,0.287840],
- [9612,0.468130], [9842,1.502106], [10069,1.340162],
- [10255,6.104672], [10609,1.402769], [11014,0.449267],
- [11724,0.863872], [11741,0.869727], [11753,1.114548],
- [12100,1.200141], [12122,0.844683], [12513,0.788956],
- [13022,0.278175], [14341,7.877863], [14864,0.820952],
- [15084,0.950938], [15111,1.081287], [15141,0.162735],
- [15449,0.951830], [15797,0.380044], [15868,0.848211],
- [17433,0.320114], [17819,0.907120], [17906,1.043314],
- [18382,1.087968], [18788,0.259761], [18944,9.547561],
- [20667,0.410463], [20864,0.637001], [22546,0.247605],
- [24227,0.677908], [24547,0.040300], [25404,0.472524],
- [26205,0.658142], [26382,0.595883], [26970,0.666676],
- [27441,0.536941], [28416,3.870785], [29714,3.866813],
- [31020,0.863123], [31452,1.913591], [31964,0.678645],
- [33067,9.693542], [33378,0.728103], [34162,0.672289],
- [34363,0.539000], [35178,0.677601], [35333,0.019773],
- [35689,0.106949], [35881,0.126045], [37202,0.705967],
- [37438,0.848712], [38536,0.117352], [38723,0.751810],
- [39826,7.164412], [41518,0.630529], [41827,0.039417],
- [42392,0.520693], [43729,0.272268], [44597,0.227430],
- [45776,0.789218], [46068,4.760145], [46531,0.164758],
- [52408,0.522878], [54216,0.533340], [57678,1.461517],
- [60272,0.125428] ];
-
-sub assign_host_speed{
- my($nodes,$edges) = @_;
-
- my($u);
-
- my(@label_list) = keys %machine;
- foreach $u (keys %$nodes) {
- my($mach_type_nb) = scalar(@label_list);
- my($mach_type) = int rand($mach_type_nb);
- $$nodes{$u}{Mflops} = $machine{$label_list[$mach_type]}{CPU_Mflops};
- }
-}
-
-sub assign_host_names{
- my($nodes,$edges) = @_;
-
- my(@name_list) = qw(Abbott Adoncourt Aikin Alain Alfred Amadeus
- Angie Anjou Anne_Marie Apple April Archibald
- Aubertin Auclair Audy AutoCAD Barry BASIC
- Beaudoin Beaulac Bellemarre Bellevue
- Bell_Northern Benoit Bentz Bernard Bescherelle
- Blais Boily Boivin Borduas Boston Boucherville
- Bourassa Bousquet Boyer Brian Brosseau Brown
- Browne Cadieux Cambridge Canada Carole
- Casavant Chambly Charles Charron Christian
- Claude Cloutier Colin Comeau Corp Coulombe
- Cousineau Croteau Daniel Decelles Denis Denise
- Desjardins Dick Dionne Disney Dodge Domey
- Dominique Doris Dorval Doyon Drouin Dumoulin
- EDF Emacs Ethernet Europe Fafard Fernand
- Fernet Flamand Florient Foisy Forget Fourier
- FrameMaker France Francine Frank Fraser
- Freedman Gagnon Gaston Gatien Gaudreault
- Gauthier Gavrel Gendron Gentilly Geoff
- Geoffray George Georges Gilles Ginette Girard
- Goodwin Gordon Gosselin Gratton Greg Gregory
- Guy Harry Harwell Hayward Hollerbach Horne
- Houde Hubert Hz Inc Inmos Intel Interleaf
- Internet iRMX iRMXII iRMXIII Isabelle ISPELL
- Jackson Jacobsen Jacquelin Jacques
- Jacques_Cartier Jamie Jean Jean_Claude
- Jean_Louis Jean_Maurice Jeannine Jean_Paul
- Jean_Pierre Jean_Yves Jill Jobin Jocelyne John
- Jones Joynes Jude Julian Julien Juneau Jupiter
- Kansas Kent Khan King Kuenning kV Lachapelle
- Laflamme Lafontaine Lamothe Lapointe Laroche
- LaSalle LaTeX Laugier Laurendeau Laval Lavoie
- Leblanc Lecavalier Leclerc Lepage Lessard
- Letarte Linda LISP Longueuil Louis Louise
- Louis_Marc Ltd Lucie Mahoney Maltais Manseau
- Marc Marcel Marcoux Marie Marielle Mark
- Marseille Martin Masson Mathematica Matlab
- McGee McGill Messier METAFONT Michel Mike
- Minneapolis Mireille Mongenot Monique
- Mont_Tremblant Morin Morissette Moshe Mulhouse
- mW Nagle Nelligan Nestor Nicole OHara Olivier
- Ontario Ottawa Ouellet Owen Ozias Papineau
- Paul Pellan Pelletier PERL Phaneuf Phil Pierre
- Pierrefonds Plante Pointe_Claire PostScript
- Poussart Pronovost Provost Raymond Re README
- Renato Ricard Richard Ringuet Riopelle Rioux
- Roberge Robert Rochefort Roger Romano Ronald
- Roy Rubin Sacramento Saint_Amand Sainte_Foy
- Sainte_Julie Saint_Marc_sur_Richelieu Seattle
- Shawinigan Sherbrooke Sirois Smith Sorel Soucy
- SPARC SPARCs SPICE St_Antoine St_Bruno
- Ste_Anne Steele Ste_Julie Stephen St_Jacques
- St_Jean St_Paul Strasbourg Sun SunOS Suzanne
- Tanguay Tessier TeX Texas Thibault Thierry
- Todd Tokyo Toronto Toulouse Tremblay Turcotte
- Uintas UniPress Unix UNIX Utah Vancouver
- Varennes Verville Victoria Victoriaville Viger
- Vincent VxWorks Wilfrid William Williams
- Wright Yolande Yvan Yves Zawinski);
-
- AlvinMisc::melange(\@name_list);
-
- my($u);
- foreach $u (keys %$nodes) {
- if($$nodes{$u}{host}==1) {
- $$nodes{$u}{name} = shift @name_list;
- }
- }
-}
-
-sub assign_link_speed{
- my($nodes,$edges) = @_;
-
- my($e);
-
- foreach $e (keys %$edges) {
- my($bw) = $$edges{$e}{bw};
-
- my(@choice) = @{$network{"bw"}{$bw}};
- my($choice_nb) = scalar(@choice);
- my($chosen_link) = $choice[(int rand($choice_nb))];
- $$edges{$e}{bw} = $$chosen_link[0]/8000;
- $$edges{$e}{delay} = $$chosen_link[1];
- }
-}
-
-
-sub affiche_graph{
- my($nodes,$edges,$filename) = @_;
- my($u,$v,$w,$e);
-
- my(%node_to_export);
- my(%edge_to_export);
-
- my(@host_list,@routeur_list,@link_list);
-
- foreach $u (keys %{$nodes}) {
- if (!((defined($$nodes{$u}{host}))&&($$nodes{$u}{host}==1))) { next; }
- if (!((defined($$nodes{$u}{Mflops}))&&($$nodes{$u}{host}==1))) {
- die "Lacking Mflops for $u\n";
- }
- push @host_list,$u;
- $node_to_export{$u}=$#host_list;
- }
-
- foreach $u (@host_list){
- foreach $v (@host_list){
- if($u ne $v) {
- $w = $u;
- if(!defined($node_to_export{$w})) {
- push @routeur_list,$w;
- $node_to_export{$w}=$#host_list + $#routeur_list + 1;
- }
- while ($w ne $v) {
- my($next) = $$nodes{$w}{shortest_route}{$v};
- my($e) = $$nodes{$w}{out}{$next};
- if(!defined($edge_to_export{$e})) {
- push @link_list,$e;
- $edge_to_export{$e}=$#link_list;
- }
- $w = $next;
- if(!defined($node_to_export{$w})) {
- push @routeur_list,$w;
- $node_to_export{$w}=$#host_list + $#routeur_list + 1;
- }
- }
- }
- }
- }
-
- open VIZ, "> $filename.dot";
- print VIZ "graph essai { \n";
- print VIZ " graph [overlap=scale]\n";
- #print VIZ " graph [overlap=false spline=true]\n";
- print VIZ " node [shape=box, style=filled]\n";
- print VIZ " node [width=.3, height=.3, style=filled]\n";
-
- foreach $u (@host_list) {
- print VIZ " \"$u\" [label=\"$$nodes{$u}{name}\",color=red,shape=box];\n";
- }
- foreach $u (@routeur_list) {
- print VIZ " \"$u\" [label=\"$$nodes{$u}{name}\",fontsize=2,color=skyblue,shape=circle];\n";
- }
- foreach $e (@link_list) {
- my($src)=$$edges{$e}{src};
- my($dst)=$$edges{$e}{dst};
- (defined($$edges{$e}{bw})) or die "Lacking bw for $u\n";
- (defined($$edges{$e}{delay})) or die "Lacking bw for $u\n";
- print VIZ " \"$src\" -- \"$dst\";\n";
- }
-
- print VIZ "}\n";
- close VIZ;
-
- system("neato -Tps $filename.dot > $filename.ps");
-# system("gv $filename.ps");
- system("pstoedit -f fig $filename.ps $filename.fig 2>/dev/null");
-# system("xfig -startg 0 $filename.fig ");
-}
-
-sub main {
- my($nodes,$edges,$interferences,$host_list,$count_interferences);
-
- $#ARGV>=0 or die "Need a tiers file!";
- my($filename)=$ARGV[0];
- $filename =~ s/\.[^\.]*$//g;
- if(1) {
- ($nodes,$edges) = parse_tiers_file $ARGV[0];
-
- print STDERR "Graph built\n";
- $host_list = generate_host_list($nodes,$edges,.7);
- assign_host_speed($nodes,$edges);
- assign_link_speed($nodes,$edges);
- assign_host_names($nodes,$edges);
- print STDERR "Host list built\n";
- shortest_paths($nodes,$edges);
- print STDERR "Shortest Paths built\n";
-# G_helene_export($nodes,$edges,"$filename.helene");
- G_surfxml_export($nodes,$edges,"$filename.xml");
- affiche_graph($nodes,$edges,"$filename");
- }
-}
-
-main;
+++ /dev/null
-#!/usr/bin/perl -w
-use strict;
-
-use AlvinMisc;
-use graph_viz;
-use graph_tbx;
-use tiers;
-
-my (%machine);
-$machine{"canaria.ens-lyon.fr"}{"CPU_clock"} = "347.669";
-$machine{"canaria.ens-lyon.fr"}{"CPU_Mflops"} = "34.333";
-$machine{"canaria.ens-lyon.fr"}{"CPU_model"} = "Pentium II (Deschutes)";
-$machine{"canaria.ens-lyon.fr"}{"CPU_num"} = "2";
-$machine{"canaria.ens-lyon.fr"}{"Machine_type"} = "i686";
-$machine{"canaria.ens-lyon.fr"}{"OS_version"} = "Linux 2.2.19pre17";
-
-$machine{"moby.ens-lyon.fr"}{"CPU_clock"} = "996.698";
-$machine{"moby.ens-lyon.fr"}{"CPU_Mflops"} = "114.444";
-$machine{"moby.ens-lyon.fr"}{"CPU_model"} = "Intel(R) Pentium(R) III Mobile CPU 1000MHz";
-$machine{"moby.ens-lyon.fr"}{"CPU_num"} = "1";
-$machine{"moby.ens-lyon.fr"}{"Machine_type"} = "i686";
-$machine{"moby.ens-lyon.fr"}{"OS_version"} = "Linux 2.4.18-accelerated";
-
-$machine{"popc0.ens-lyon.fr"}{"CPU_clock"} = "199.095";
-$machine{"popc0.ens-lyon.fr"}{"CPU_Mflops"} = "22.151";
-$machine{"popc0.ens-lyon.fr"}{"CPU_model"} = "Pentium Pro";
-$machine{"popc0.ens-lyon.fr"}{"CPU_num"} = "1";
-$machine{"popc0.ens-lyon.fr"}{"Machine_type"} = "i686";
-$machine{"popc0.ens-lyon.fr"}{"OS_version"} = "Linux 2.2.19";
-
-$machine{"sci0.ens-lyon.fr"}{"CPU_clock"} = "451.032446";
-$machine{"sci0.ens-lyon.fr"}{"CPU_Mflops"} = "48.492";
-$machine{"sci0.ens-lyon.fr"}{"CPU_model"} = "Pentium II (Deschutes)";
-$machine{"sci0.ens-lyon.fr"}{"CPU_num"} = "2";
-$machine{"sci0.ens-lyon.fr"}{"Machine_type"} = "i686";
-$machine{"sci0.ens-lyon.fr"}{"OS_version"} = "Linux 2.2.13";
-
-$machine{"lancelot.u-strasbg.fr"}{"OS_version"} = "Linux 2.2.17-21mdk";
-$machine{"lancelot.u-strasbg.fr"}{"CPU_clock"} = "400.916";
-$machine{"lancelot.u-strasbg.fr"}{"CPU_model"} = "Celeron (Mendocino)";
-$machine{"lancelot.u-strasbg.fr"}{"CPU_Mflops"} = "42.917000000000002";
-$machine{"lancelot.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"lancelot.u-strasbg.fr"}{"CPU_num"} = "1";
-
-$machine{"caseb.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.8-26mdk";
-$machine{"caseb.u-strasbg.fr"}{"CPU_clock"} = "1399.763";
-$machine{"caseb.u-strasbg.fr"}{"CPU_model"} = "AMD Athlon(tm) 4 Processor";
-$machine{"caseb.u-strasbg.fr"}{"CPU_Mflops"} = "137.333";
-$machine{"caseb.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"caseb.u-strasbg.fr"}{"CPU_num"} = "1";
-
-$machine{"pellinore.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.18-6mdksmp";
-$machine{"pellinore.u-strasbg.fr"}{"CPU_clock"} = "802.922";
-$machine{"pellinore.u-strasbg.fr"}{"CPU_model"} = "Pentium III (Coppermine)";
-$machine{"pellinore.u-strasbg.fr"}{"CPU_Mflops"} = "68.667000000000002";
-$machine{"pellinore.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"pellinore.u-strasbg.fr"}{"CPU_num"} = "2";
-
-$machine{"dinadan.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.19-686";
-$machine{"dinadan.u-strasbg.fr"}{"CPU_clock"} = "933.375";
-$machine{"dinadan.u-strasbg.fr"}{"CPU_model"} = "Pentium III (Coppermine)";
-$machine{"dinadan.u-strasbg.fr"}{"CPU_Mflops"} = "85.832999999999998";
-$machine{"dinadan.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"dinadan.u-strasbg.fr"}{"CPU_num"} = "1";
-
-$machine{"darjeeling.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.18-5";
-$machine{"darjeeling.u-strasbg.fr"}{"CPU_clock"} = "1793.371";
-$machine{"darjeeling.u-strasbg.fr"}{"CPU_model"} = "Intel(R) Pentium(R) 4 CPU 1.80GHz";
-$machine{"darjeeling.u-strasbg.fr"}{"CPU_Mflops"} = "98.094999999999999";
-$machine{"darjeeling.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"darjeeling.u-strasbg.fr"}{"CPU_num"} = "1";
-
-$machine{"gauvain.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.17";
-$machine{"gauvain.u-strasbg.fr"}{"CPU_clock"} = "1050.034";
-$machine{"gauvain.u-strasbg.fr"}{"CPU_model"} = "AMD Athlon(tm) Processor";
-$machine{"gauvain.u-strasbg.fr"}{"CPU_Mflops"} = "114.444";
-$machine{"gauvain.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"gauvain.u-strasbg.fr"}{"CPU_num"} = "1";
-
-$machine{"sekhmet.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.18-k7";
-$machine{"sekhmet.u-strasbg.fr"}{"CPU_clock"} = "1399.803";
-$machine{"sekhmet.u-strasbg.fr"}{"CPU_model"} = "AMD Athlon(tm) 4 Processor";
-$machine{"sekhmet.u-strasbg.fr"}{"CPU_Mflops"} = "171.667";
-$machine{"sekhmet.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"sekhmet.u-strasbg.fr"}{"CPU_num"} = "1";
-
-$machine{"shaitan.u-strasbg.fr"}{"OS_version"} = "Linux 2.4.18-6mdk";
-$machine{"shaitan.u-strasbg.fr"}{"CPU_clock"} = "800.030";
-$machine{"shaitan.u-strasbg.fr"}{"CPU_model"} = "Pentium III (Coppermine)";
-$machine{"shaitan.u-strasbg.fr"}{"CPU_Mflops"} = "76.296000000000006";
-$machine{"shaitan.u-strasbg.fr"}{"Machine_type"} = "i686";
-$machine{"shaitan.u-strasbg.fr"}{"CPU_num"} = "1";
-
-my (%network);
-#0.587500,0.655,0.681
-
-$network{"bw"}{10} = [ [274285,0.514433], [330233,0.059904],
- [949460,0.136931], [1063823,0.131098],
- [2041829,7.413073] ];
-
-$network{"bw"}{100} = [ [64121,35.076518], [65264,0.270544],
- [67418,0.156056], [80797,0.479780], [82517,6.932556],
- [92951,0.189980], [94763,0.370788],
- [123015,35.083019], [171318,295.890617],
- [223570,0.278066], [274285,0.514433],
- [330233,0.059904] ];
-
-$network{"bw"}{1000} = [ [937,53.930106], [2013,4.455826],
- [2022,5.704550], [2025,5.652577], [2073,4.460898],
- [2179,5.922616], [2195,4.669142], [2321,4.522355],
- [2327,4.477270], [2427,4.062241], [2539,4.583831],
- [3777,5.161451], [4448,3.101854], [4629,5.473705],
- [4840,87.981858], [5773,0.006406], [6150,8.762440],
- [7413,0.601375], [7837,0.424305], [7867,2.885584],
- [7924,1.742977], [8394,9.647856], [9015,0.287840],
- [9612,0.468130], [9842,1.502106], [10069,1.340162],
- [10255,6.104672], [10609,1.402769], [11014,0.449267],
- [11724,0.863872], [11741,0.869727], [11753,1.114548],
- [12100,1.200141], [12122,0.844683], [12513,0.788956],
- [13022,0.278175], [14341,7.877863], [14864,0.820952],
- [15084,0.950938], [15111,1.081287], [15141,0.162735],
- [15449,0.951830], [15797,0.380044], [15868,0.848211],
- [17433,0.320114], [17819,0.907120], [17906,1.043314],
- [18382,1.087968], [18788,0.259761], [18944,9.547561],
- [20667,0.410463], [20864,0.637001], [22546,0.247605],
- [24227,0.677908], [24547,0.040300], [25404,0.472524],
- [26205,0.658142], [26382,0.595883], [26970,0.666676],
- [27441,0.536941], [28416,3.870785], [29714,3.866813],
- [31020,0.863123], [31452,1.913591], [31964,0.678645],
- [33067,9.693542], [33378,0.728103], [34162,0.672289],
- [34363,0.539000], [35178,0.677601], [35333,0.019773],
- [35689,0.106949], [35881,0.126045], [37202,0.705967],
- [37438,0.848712], [38536,0.117352], [38723,0.751810],
- [39826,7.164412], [41518,0.630529], [41827,0.039417],
- [42392,0.520693], [43729,0.272268], [44597,0.227430],
- [45776,0.789218], [46068,4.760145], [46531,0.164758],
- [52408,0.522878], [54216,0.533340], [57678,1.461517],
- [60272,0.125428] ];
-
-sub assign_host_speed{
- my($nodes,$edges) = @_;
-
- my($u);
-
- my(@label_list) = keys %machine;
- foreach $u (keys %$nodes) {
- my($mach_type_nb) = scalar(@label_list);
- my($mach_type) = int rand($mach_type_nb);
- $$nodes{$u}{Mflops} = $machine{$label_list[$mach_type]}{CPU_Mflops};
- }
-}
-
-sub assign_host_names{
- my($nodes,$edges) = @_;
-
- my(@name_list) = qw(Abbott Adoncourt Aikin Alain Alfred Amadeus
- Angie Anjou Anne_Marie Apple April Archibald
- Aubertin Auclair Audy AutoCAD Barry BASIC
- Beaudoin Beaulac Bellemarre Bellevue
- Bell_Northern Benoit Bentz Bernard Bescherelle
- Blais Boily Boivin Borduas Boston Boucherville
- Bourassa Bousquet Boyer Brian Brosseau Brown
- Browne Cadieux Cambridge Canada Carole
- Casavant Chambly Charles Charron Christian
- Claude Cloutier Colin Comeau Corp Coulombe
- Cousineau Croteau Daniel Decelles Denis Denise
- Desjardins Dick Dionne Disney Dodge Domey
- Dominique Doris Dorval Doyon Drouin Dumoulin
- EDF Emacs Ethernet Europe Fafard Fernand
- Fernet Flamand Florient Foisy Forget Fourier
- FrameMaker France Francine Frank Fraser
- Freedman Gagnon Gaston Gatien Gaudreault
- Gauthier Gavrel Gendron Gentilly Geoff
- Geoffray George Georges Gilles Ginette Girard
- Goodwin Gordon Gosselin Gratton Greg Gregory
- Guy Harry Harwell Hayward Hollerbach Horne
- Houde Hubert Hz Inc Inmos Intel Interleaf
- Internet iRMX iRMXII iRMXIII Isabelle ISPELL
- Jackson Jacobsen Jacquelin Jacques
- Jacques_Cartier Jamie Jean Jean_Claude
- Jean_Louis Jean_Maurice Jeannine Jean_Paul
- Jean_Pierre Jean_Yves Jill Jobin Jocelyne John
- Jones Joynes Jude Julian Julien Juneau Jupiter
- Kansas Kent Khan King Kuenning kV Lachapelle
- Laflamme Lafontaine Lamothe Lapointe Laroche
- LaSalle LaTeX Laugier Laurendeau Laval Lavoie
- Leblanc Lecavalier Leclerc Lepage Lessard
- Letarte Linda LISP Longueuil Louis Louise
- Louis_Marc Ltd Lucie Mahoney Maltais Manseau
- Marc Marcel Marcoux Marie Marielle Mark
- Marseille Martin Masson Mathematica Matlab
- McGee McGill Messier METAFONT Michel Mike
- Minneapolis Mireille Mongenot Monique
- Mont_Tremblant Morin Morissette Moshe Mulhouse
- mW Nagle Nelligan Nestor Nicole OHara Olivier
- Ontario Ottawa Ouellet Owen Ozias Papineau
- Paul Pellan Pelletier PERL Phaneuf Phil Pierre
- Pierrefonds Plante Pointe_Claire PostScript
- Poussart Pronovost Provost Raymond Re README
- Renato Ricard Richard Ringuet Riopelle Rioux
- Roberge Robert Rochefort Roger Romano Ronald
- Roy Rubin Sacramento Saint_Amand Sainte_Foy
- Sainte_Julie Saint_Marc_sur_Richelieu Seattle
- Shawinigan Sherbrooke Sirois Smith Sorel Soucy
- SPARC SPARCs SPICE St_Antoine St_Bruno
- Ste_Anne Steele Ste_Julie Stephen St_Jacques
- St_Jean St_Paul Strasbourg Sun SunOS Suzanne
- Tanguay Tessier TeX Texas Thibault Thierry
- Todd Tokyo Toronto Toulouse Tremblay Turcotte
- Uintas UniPress Unix UNIX Utah Vancouver
- Varennes Verville Victoria Victoriaville Viger
- Vincent VxWorks Wilfrid William Williams
- Wright Yolande Yvan Yves Zawinski);
-
- AlvinMisc::melange(\@name_list);
-
- my($u);
- foreach $u (keys %$nodes) {
- if($$nodes{$u}{host}==1) {
- $$nodes{$u}{name} = shift @name_list;
- }
- }
-}
-
-sub assign_link_speed{
- my($nodes,$edges) = @_;
-
- my($e);
-
- foreach $e (keys %$edges) {
- my($bw) = $$edges{$e}{bw};
-
- my(@choice) = @{$network{"bw"}{$bw}};
- my($choice_nb) = scalar(@choice);
- my($chosen_link) = $choice[(int rand($choice_nb))];
- $$edges{$e}{bw} = $$chosen_link[0]/8000;
- $$edges{$e}{delay} = $$chosen_link[1];
- }
-}
-
-
-sub affiche_graph{
- my($nodes,$edges,$filename) = @_;
- my($u,$v,$w,$e);
-
- my(%node_to_export);
- my(%edge_to_export);
-
- my(@host_list,@routeur_list,@link_list);
-
- foreach $u (keys %{$nodes}) {
- if (!((defined($$nodes{$u}{host}))&&($$nodes{$u}{host}==1))) { next; }
- if (!((defined($$nodes{$u}{Mflops}))&&($$nodes{$u}{host}==1))) {
- die "Lacking Mflops for $u\n";
- }
- push @host_list,$u;
- $node_to_export{$u}=$#host_list;
- }
-
- foreach $u (@host_list){
- foreach $v (@host_list){
- if($u ne $v) {
- $w = $u;
- if(!defined($node_to_export{$w})) {
- push @routeur_list,$w;
- $node_to_export{$w}=$#host_list + $#routeur_list + 1;
- }
- while ($w ne $v) {
- my($next) = $$nodes{$w}{shortest_route}{$v};
- my($e) = $$nodes{$w}{out}{$next};
- if(!defined($edge_to_export{$e})) {
- push @link_list,$e;
- $edge_to_export{$e}=$#link_list;
- }
- $w = $next;
- if(!defined($node_to_export{$w})) {
- push @routeur_list,$w;
- $node_to_export{$w}=$#host_list + $#routeur_list + 1;
- }
- }
- }
- }
- }
-
- open VIZ, "> $filename.dot";
- print VIZ "graph essai { \n";
- print VIZ " graph [overlap=scale]\n";
- #print VIZ " graph [overlap=false spline=true]\n";
- print VIZ " node [shape=box, style=filled]\n";
- print VIZ " node [width=.3, height=.3, style=filled]\n";
-
- foreach $u (@host_list) {
- print VIZ " \"$u\" [label=\"$$nodes{$u}{name}\",color=red,shape=box];\n";
- }
- foreach $u (@routeur_list) {
- print VIZ " \"$u\" [label=\"$$nodes{$u}{name}\",fontsize=2,color=skyblue,shape=circle];\n";
- }
- foreach $e (@link_list) {
- my($src)=$$edges{$e}{src};
- my($dst)=$$edges{$e}{dst};
- (defined($$edges{$e}{bw})) or die "Lacking bw for $u\n";
- (defined($$edges{$e}{delay})) or die "Lacking bw for $u\n";
- print VIZ " \"$src\" -- \"$dst\";\n";
- }
-
- print VIZ "}\n";
- close VIZ;
-
- system("neato -Tps $filename.dot > $filename.ps");
-# system("gv $filename.ps");
- system("pstoedit -f fig $filename.ps $filename.fig 2>/dev/null");
-# system("xfig -startg 0 $filename.fig ");
-}
-
-sub graphxml_export {
- my($nodes,$edges,$filename) = @_;
- my($u,$v,$w,$e);
- my(@host_list)=();
-
- open OUTPUT, "> $filename";
-
- print OUTPUT "<?xml version='1.0'?>\n";
- print OUTPUT "<!DOCTYPE graph SYSTEM \"graphxml.dtd\">\n";
- print OUTPUT "<graph isDirected=\"false\">\n";
-
- foreach $u (keys %{$nodes}) {
- if (!((defined($$nodes{$u}{host}))&&($$nodes{$u}{host}==1))) { next; }
- if (!((defined($$nodes{$u}{Mflops}))&&($$nodes{$u}{host}==1))) {
- die "Lacking Mflops for $u\n";
- }
- print OUTPUT " <node name=\"$$nodes{$u}{name}\" label=\"$$nodes{$u}{name}\" data=\"$$nodes{$u}{Mflops}\" position_x=\"$$nodes{$u}{X}\" position_y=\"$$nodes{$u}{Y}\"/>\n";
- push @host_list,$u;
- }
- print OUTPUT "</graph>\n";
- close(OUTPUT);
-}
-
-sub get_layout{
- my($nodes,$edges,$filename) = @_;
-
- system("neato -Tfig $filename.dot > $filename.fig");
-
- my($u);
- foreach $u (sort (keys %$nodes)){
- if (((defined($$nodes{$u}{Mflops}))&&($$nodes{$u}{host}==1))) {
- my($val_u) = `grep ' $$nodes{$u}{name}\\\\001' $filename.fig`;
- if(defined($val_u)) {
- my(@tab) = split(/\s+/,$val_u);
- my($x1) = $tab[11];
- my($y1) = $tab[12];
- $$nodes{$u}{X}=$x1;
- $$nodes{$u}{Y}=$y1;
- }
- }
- }
-}
-
-sub main {
- my($nodes,$edges,$interferences,$host_list,$count_interferences);
-
- $#ARGV>=0 or die "Need a tiers file!";
- my($filename)=$ARGV[0];
- $filename =~ s/\.[^\.]*$//g;
- if(1) {
- print STDERR "Reading graph\n";
- ($nodes,$edges) = parse_tiers_file $ARGV[0];
-
- print STDERR "Generating host list\n";
- $host_list = generate_host_list($nodes,$edges,.7);
- assign_host_speed($nodes,$edges);
- assign_link_speed($nodes,$edges);
- assign_host_names($nodes,$edges);
- print STDERR "Computing Shortest Paths \n";
- shortest_paths($nodes,$edges);
- print STDERR "Exporting to surfxml\n";
- G_surfxml_export($nodes,$edges,"$filename.xml");
- print STDERR "Calling graphviz\n";
- affiche_graph($nodes,$edges,"$filename");
- print STDERR "Getting layout\n";
- get_layout($nodes,$edges,"$filename");
- print STDERR "Exporting layout to graphxml\n";
- graphxml_export($nodes,$edges,"$filename.graphxml");
- }
-}
-
-main;