Useful things to know about mapping assignments:
Note: If using the actual device names in the mapping list, the
devices must be spelled exactly as listed in the netinfo file, -
they must begin with a forward slash (/). The above assumes macros
PExx for the actual names were used. (Often a good idea.)
Alternately, the Scheduler can be used without a netinfo file by
giving the total number of processors to consider on the
Scheduler's command-line with the -n option, and without giving a
netinfo file. In this case, (as well as with a netinfo file), the
processor logical ID numbers can be used in mapping assignment
lists, beginning with 0.
- You can specify parallel assignments. For example, suppose
you want a specific task to be mapped in parallel to three
computers. Simply name them in the list, for example: PE1 PE2 PE3.
And making the Produce amount three times the Threshold amount
implies three parallel tasks will be ready to run when the previous
- You can specify sequences of parallel mappings. Suppose you
want a specific task to be mapped in parallel first to three
computers, next to three others, and then back again to the first
three, and so on. Simply name them in the list: PE1 PE2 P3 PE4
PE5 PE6 PE7 PE8 PE9. The list will repeat in a round-robin
fashion, each time the sequence is exhausted.
- You can specify First-Available-From-a-Group mappings. That
is, you can designate a group of processors that a set of tasks
will map to. But not any specific order. To do this, set the task
node type to be GetAny, then list the processors.
- You can specify groups of processors as macros. This is
especially handy when mapping large sections of DFG's (many nodes)
to various groups. This way, you need only change one definition
to alter the mapping of many tasks.
- Task groupings can be heirarchical. This provides very rapid
remapping of your DFG's. For example, you can define subgroup1 =
PE1 PE2, and subgroup2 = PE3 PE4, through subgroup40, etc.. If you
define GroupA to be the subgroups from 1-9, and GroupB to be the
subgroups from 10-19, then you can conveniently map a highly
parallel task to many processors by simply mapping it to GroupA