# A Survey on Malleability Solutions for High-Performance Distributed Computing
## 7 Discussion  
This section summarizes and compares the previously described malleability solutions. Table 1 compiles the most interesting features of the described malleability solutions regarding the motivation of this manuscript and the importance of process malleability in the upcoming exascale systems. The table contains information about the programming paradigm (column 4) presented to users for the application implementation; how the data transfers are performed (column 5); in which RMS the solution is integrated, if any (column 6); if solutions support performance and power aware decisions, and fault tolerance (columns 7, 8, and 9, respectively). Notice that MPI (ad hoc) programming paradigm refers to modified implementations of MPI that fit the needs of the specific solutions. With regard to the data transfers, two categories have been defined:  
* Explicit: Users are expected to fully implement the data redistribution among processes. * Implicit: Data redistribution among processes is performed and is transparent to users. Thus, user applications are not expected to be modified. For instance, users can leverage data structure registers or data dependencies of the paradigm to enable \begin{table}
\begin{tabular}{c c c c c c c c c} \hline \hline
**Type** & **Solution** & **Sec.** & \begin{tabular}{c} **Prog.** \\ **Paradigm** \\ \end{tabular} & **Transers** & **RMS** & \begin{tabular}{c} **Perf.** \\ **Aware** \\ \end{tabular} & \
\begin{tabular}{c} **Power** \\ **Aware** \\ \end{tabular} &
\begin{tabular}{c} **Fault** \\ **tol.** \\ \end{tabular} \\ \hline \multirow{4}{*}{C / R} & SRS & Section 3.1 & MPI & Implicit & No & No & No & Yes \\  & PCM API & Section 3.2 & MPI (ad hoc) & Implicit \({}^{\dagger}\) & No & No & No & Yes \\  & SCR & Section 3.3 & MPI (ad hoc) & Explicit & Yes & No & No & Yes \\  & ULFM & Section 3.4 & MPI (ad hoc) & Explicit & No & No & No & Yes \\ \hline \multirow{4}{*}{Dynamic} & Elastic MPI & Section 4.1 & MPI (ad hoc) & Explicit & Slurm & Yes & Yes & Yes \\  & ReSHAPE & Section 4.2 & ad hoc & Implicit & ad hoc & Yes & No & No \\  & Flex-MPI & Section 4.3 & MPI (ad hoc) & Implicit & No & Yes & Yes & No \\  & DMR API & Section 4.4 & OmpSs & Implicit & Slurm & No & No & No \\  & DMRlib & Section 4.4 & MPI & Implicit \({}^{\dagger}\) & Slurm & No & No & No \\  & CHARM++ & Section 5.1 & CHARM++ & Implicit & Torque & Yes & No & Yes \\  & AMPI & Section 5.2 & MPI & Implicit \({}^{\dagger}\) & Torque & Yes & No & Yes \\ \hline \multirow{4}{*}{Invasive computing} & Section 6.1 & X10 & Explicit & ad hoc & Yes & No & No \\  & Easygrid AMS & Section 6.2 & LAM/MPI & Implicit & AMS (ad hoc) & Yes & No & Yes \\ \cline{1-1}  & Alya malleable & Section 6.3 & COMPSs & Implicit & Slurm & Yes & No & Yes \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Process malleability solution feature comparison. automatic data redistributions; however, several solutions are marked as _Implicit_4, which means that automatic data redistributions are performed in many cases, but not in any case. For instance, PCM API automatic data transfers are limited to 2D linear redistributions, or DMRlib does not provide an specific mechanism for non-standard redistribution patters. Nearly all of the solutions tend to provide an implicit data redistribution mechanism as this could be a starting barrier for users to use malleability. Simplifying data redistribution as much as possible makes malleability more attractive to incoming users, but it also proves a challenge for malleability developers. Many of the solutions provide fault tolerance capabilities as they were initially created with this intention in mind. In [4], nearly half of the projects use checkpoint techniques to provide fault tolerance, since they consider it a need for the potential increase in failures in Exascale systems. This describes the obligation of future malleability solutions to provide at least basic fault tolerance techniques in order to reach to a broader audience.