Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Second commit for cmake in an other directory.
[simgrid.git] / examples / simdag / dax / generate_forkjoin.pl
1 #! /usr/bin/perl
2
3 use strict;
4
5 my $node_count = int($ARGV[0]) || die "Usage: $0 node_count level_count\n";
6 my $level_count = int($ARGV[1]) || die "Usage: $0 node_count level_count\n";
7
8 print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
9 print "<!-- generated: ".(localtime())." -->\n";
10 print "<adag xmlns=\"http://pegasus.isi.edu/schema/DAX\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://pegasus.isi.edu/schema/DAX http://pegasus.isi.edu/schema/dax-2.1.xsd\" version=\"2.1\" count=\"1\" index=\"0\" name=\"test\" jobCount=\"25\" fileCount=\"0\" childCount=\"20\">\n";
11
12 for (my $level=1;$level<=$level_count;$level++) {
13     for (my $i=1;$i<=$node_count;$i++) {
14         print "<job id=\"node$i\" namespace=\"ForkJoin\" name=\"level$level\" version=\"1.0\" runtime=\"10\">\n";
15         print "  <uses file=\"n${i}_l${level}_in\" link=\"input\" register=\"true\" transfer=\"true\" optional=\"false\" type=\"data\" size=\"1000\"/>\n";
16         print "  <uses file=\"n${i}_l${level}_out\" link=\"output\" register=\"true\" transfer=\"true\" optional=\"false\" type=\"data\" size=\"1000\"/>\n";
17         print "</job>\n";
18     }
19
20     if ($level<$level_count) {
21         print "<job id=\"join$level\" namespace=\"ForkJoin\" name=\"join\" version=\"1.0\" runtime=\"10\">\n";
22         for (my $i=1;$i<=$node_count;$i++) {
23             print "  <uses file=\"n${i}_l${level}_out\" link=\"input\" register=\"true\" transfer=\"true\" optional=\"false\" type=\"data\" size=\"1000\"/>\n";
24             print "  <uses file=\"n${i}_l".(${level}+1)."_in\" link=\"output\" register=\"true\" transfer=\"true\" optional=\"false\" type=\"data\" size=\"1000\"/>\n";
25         }
26         print "</job>\n";
27     }
28 }
29
30 print "</adag>\n";