Liquid model can be compared to box filled with a homogeneous liquid. In the balanced state, the liquid has the same height at any place in the box. If one pours additional liquid into the box at an arbitrary location, the liquid equalizes itself such that the height is again the same everywhere. We assume a general cyclic mesh structure (torus) as the communication network of the processing units.
Notation:
- \(D\) - dimensions
- Cordinates given as D-dimensional vector \(i = (i_1,...,i_D)\)
- \(L_i\) - current load of processor i,
- \(P_{i_{D}}\) - Processor i in dimension D.
The change of load states is accomplished by shifting elementary load units between neighboring processors. The Boolean function \(C_{i,d}(t)\) controls the shift of load elements. If for
one processing unit i the condition \(C_{i,d}(t)\) holds true, then it shifts one load element to its neighbour in dimension d. The function \(C_{i,d}(t)\) represents one of the six conditions C0 to C5:
\(C0)L_i\gt0\), so \(P_i\) has load elements to be transferred
\(C1)L_i\gt1\), so \(P_i\) is not idle after giving away one load element
\(C2)C1 \lor [L_1 = 1 \land (L_{i-1_{d} } \gt 1)]\), so \(P_i\) is not idle after giving away one load element or receives one load element from \(P_{i-1_{d}}\)
\(C3) C1 \lor L_i \ge L_{i+1_{d}}\), so \(P_i\) is not idle after giving away one load element and \(P_{i+1_{d}}\) has not more load
\(C4) C2 \lor L_i \ge L_{i+1_{d}}\), so \(P_i\) is not idle after giving away one load element or receives one load element from \(P_{i-1_{d}}\) and \(P_{i+1_{d}}\) has not more load
\(C5) C0 \lor L_i \ge L_{i+1_{d}}\), so \(P_i\) has load elements to be transferred and \(P_{i+1_{d}}\) has not more load
A change of state \(L_i(t) \Rightarrow L_i(t+1) \), with \(i \in I\), is called Liquid model load balancing, if and only if in every dimension \(d =1,...,D\) the following equation is applied successively:
\(
L_i(t) :=
\begin{cases}
L_i(t) + 1, if\: C_{i-1_{d},d}(t) \land \lnot C_{i,d}(t) \\[.5em]
L_i(t) - 1, if\: \lnot C_{i-1_{d},d}(t) \land C_{i,d}(t) \\[.5em]
L_i(t), otherwise
\end{cases}
\)