The input to the algorithm contains:
The algorithm computes, for each communication channel from \( x_i \) to \( x_j \), the optimal scaling factor \( k[i,j] \), such that scaling down the communication rate of the channels by the by the corresponding scaling factors does not increase the overall execution time more than \( (1+\delta) \) times.
The first phase of the algorithm computes the values of \( t_{\alpha}[i,j] \), \(q\), \(Q\), and \(T\), where:
More formally, each \( t_{\alpha}[i,j] \) is the minimal value that satisfies the following expressions:
where
The pseudo code of phase 1:
The second phase of the algorithm is devoted to computing the worst-case time of the representative iterations. First we compute each \( t_{\beta}[i,j] \) that is minimum value that satisfies the following conditions:
The worst-case time of the representative iterations of loop \(v_i\in H\) is \(t_{\beta}[i,Q]-t_{\beta}[i,q]\).
The pseudo code of phase 2:
For power efficiency, we want to scale down the bit-rates of the communication channels. In the third phase of the algorithm, we try to find, for each connection channel between the connected loops \(x_i\) and \(x_j \), a maximal scaling factor \( k[i,j] \), under the constraint that the time of the representative iterations, for each \( x_i\in H \), does not exceed \( \max\{ (1+\delta)\cdot T, t_{\beta}[i,Q]-t_{\beta}[i,q] \} \). It is assumed that scaling factor can be selected from a discrete set of possible scaling levels. After each modification of scaling factor of any single channel, we recompute the variables \( t[i,j] \) in such a way that, for each \( v_i\in H \), the value \( t[i,Q]-t[i,q] \) is time estimation of the representative iterations of the loop \( v_i \) under the current configuration of scaling factors.
The pseudo code of phase 3: