Parallelization of such algorithms generally involve the division of the problem into several \emph{blocks} that will
be solved in parallel on multiple processing units. The latter will communicate each intermediate results before a new
iteration starts and until the approximate solution is reached. These parallel computations can be performed either in
\emph{synchronous} mode where a new iteration begins only when all nodes communications are completed,
or in \emph{asynchronous} mode where processors can continue independently with few or no synchronization points. For
Parallelization of such algorithms generally involve the division of the problem into several \emph{blocks} that will
be solved in parallel on multiple processing units. The latter will communicate each intermediate results before a new
iteration starts and until the approximate solution is reached. These parallel computations can be performed either in
\emph{synchronous} mode where a new iteration begins only when all nodes communications are completed,
or in \emph{asynchronous} mode where processors can continue independently with few or no synchronization points. For