sub usage {
print STDERR <<EOH
-Usage: all2all_make_deployment.pl platform_file.xml nb_host (bcast source?)
+Usage: all2all_make_deployment.pl platform_file.xml nb_host size_msg (bcast source?)
This script generates a deployment file for the all2all program. It takes
a SimGrid platform file as first argument and the number of wanted peers as
second argument. If the amount of peers exceeds the amount of available
hosts in the deployment file, several peers will be placed on the same host.
-
-If a third argument is passed, this is the source of the broadcast
+
+The third argument is a size of the message to send ( octets )
+
+If a fourth argument is passed, this is the source of the broadcast
(given as a number between 0 and nb_host-1).
EOH
;
my $input = shift @ARGV || usage();
my $nb_hosts = shift @ARGV || usage();
-my $source = shift;
+my $size_msg = shift @ARGV || usage();
+my $source = shift || "";
my @host;
$it_port++;
}
}
+$receivers .= " <argument value=\"$size_msg\"/>\n";
#
# and now, really generate the file. Receiver first.
for (my $i=0; $i<$nb_hosts; $i++) {
print " <process host=\"".$host[$it_host]."\" function=\"receiver\">\n";
- print " <argument value=\"$it_port\"/><argument value=\"".(undef($source)?$nb_hosts:1)."\"/>\n";
+ print " <argument value=\"$it_port\"/><argument value=\"".(length($source)?1:$nb_hosts)."\"/>\n";
print " </process>\n\n";
$it_host ++;
$it_host=0;
for (my $i=0; $i<$nb_hosts; $i++) {
- if (undef($source) || $source == $i) {
+ if (!length($source) || $source == $i) {
print " <process host=\"".$host[$it_host]."\" function=\"sender\">\n";
print $receivers;
print " </process>\n";
}
print "</platform_description>\n";
+
+# print "source='$source' nb_hosts=$nb_hosts\n";