Note that there are some explanatory texts on larger screens.

plurals
  1. POIs there a name for the algorithm that finds a minimal set of resources that will allow for no resource contention on a dataflow graph/weighted DAG?
    primarykey
    data
    text
    <p>I'm not sure if this has a simple solution or is a "named" algorithm, so I thought I'd ask here.</p> <p>I have a dataflow graph (DFG) from a compiler. It's an arc-weighted DAG. The arc weights denote the latency of various operations, with the nodes representing the operations themselves (addition, subtraction, loads, etc). I'm trying to find the minimal set of resources that allow the computation to be run at it's critical path. </p> <p>I've already done this in the following way: </p> <pre><code>// Initialize ready_list &lt;- 0 clock = 0 resource[resource_types] &lt;- 0 resource_max[resource_types] &lt;- -1 source = SCHEDULED // Get ready instructions for each node n in V // The following means the predecessors of n have finished running based on their // latecies/arc weights, not just been labeled "scheduled". My apologies for the poor //pseudo-code if predessesors of n are scheduled ready_list &lt;- n // "schedule" instruction n = pop(ready_list) n = SCHEDULED resource[resource_type(n)]++ // Update maximum resource required if resource[resource_type(n)] &gt; resource_max[resource_type(n)] resource_max[resource_type(n)] = resource[resource_type(n)] if ready_list = empty clock++; </code></pre> <p>Then the resources array will have the minimal number of resources required to ensure no contention, and the final clock value will be the critical path (this is just to prove this isn't a homework problem =] )</p> <p>I'm just wondering if this has a "name" or if there's some other cute way of doing this. Thanks!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload