|
Lightweight Parallel Foundations 1.0.1-alpha 2023-06-26T11:02:34Z
A high performance and model-compliant communication layer
|
The wall-clock time taken by all LPF communication primitives (i.e., lpf_put(), lpf_get(), and lpf_sync()) of a single LPF program is bounded by \( \sum_{i=0}^n \left( h_ig+l \right), \) with \( h_i = \max\{ r_i, t_i \}, \) \( r_i = \max_{k\in\{0,1,\ldots,p-1\}} r_i^{(k)}, \) \( t_i = \max_{k\in\{0,1,\ldots,p-1\}} t_i^{(k)}, \) and n the total number of supersteps the LPF program consists of. The calculation of the cost relies on the series of parameters \( r_i^{(k)}, t_i^{(k)} \) with \( i \) a superstep number and \( k \) an LPF process ID. These parameters are assumed to be initialised with value 0 at the start of every superstep.
When allowing for communication slack, this specification of the LPF wall-clock communication costs may be adapted as follows. Let \( N=\{0,1,\ldots,n-1\} \) be the set of program superstep IDs. For any integer k for which there exists a partition of N with \( \cup_{i=0}^{k-1} N_k = N, \) \( \forall i,j\in\{0,1,\ldots,k-1\}, i\neq j: N_i\cap N_j=\emptyset, \) and \( \forall i\in\{0,1,\ldots,k-1\}: (\max N_i)-(\min N_i)+1 = |N_i| \) such that for all \( i \in N_j \) the maximum delay given to lpf_put() and lpf_get() during the i-th superstep is \( |N_j| - i \). Then, the wall-clock time taken for all communication primitives called during each of the \( k \) groups of supersteps is bounded by \( \sum_{i=\min{N_k}}^{\max{N_k}} \left( h_kg+l \right). \)
Note that when delay is set to 0 always, this reduces to the standard BSP cost model where time spent in communication during the i-th superstep takes \( \left( h_ig + l \right) \) time. Unless running on specially designed predictable hardware, these costs are probabilistic in nature.