# Federated Learning for Edge Computing: A Survey
## 4 Frameworks
### Summary  
Developers are constantly improving their frameworks to provide users with as many benefits as possible. One of the most comprehensive is FATE, which supports many ML methods and algorithms in both horizontal and vertical settings and a large number of tools that make the programmers' work more accessible. Flower and TFF are open-source frameworks that are very simple to implement. The OpenFL framework from Intel, in cooperation with the University of Pennsylvania, provides users with high security against threats and data leaks, where they require different kinds of certificates for communication. Similarly, PySyft strives to provide users with maximum protection for their software. IBM Federated Learning is suitable when communicating with cloud platforms and in cases where there is a large amount of data to be processed. However, it also supports mobile and edge devices. The last mentioned NVIDIA Clara, suitable for IoT applications, is mainly used in medical and healthcare.  
Each of these frameworks has advantages and disadvantages. They may differ in the supported devices, operating systems, data security mechanisms, or communication speed among devices. Information about these frameworks is also summarized in Table 2. Some experiments have been carried out with some frameworks, where the accuracy of individual frameworks and their speed in training different ML methods were compared [40]. As was already mentioned during the literature survey, in this case too there were problems in supporting frameworks and ARM architecture in many cases, because the documentation did not always indicate whether the given device is supported or not. We also did not read this information in other articles and we did not find any relevant information about it. We also looked at the possibilities of deploying these frameworks at the network's edge and on edge devices. Since many edge devices can use the ARM architecture, it is important to note that not every framework supports this type of architecture. Of the above frameworks, only Flower and PySyft have official support for ARM architectures, according to the documentation.  
\begin{table}
\begin{tabular}{c c c c c c c} \hline \hline
**Framework Supported Features** & **FATE 1.5.0** & **Flower 1.0.0** & **PySyft 0.6.0** & **OpenFL 1.3** & **TFF 0.29.0** \\ \hline \multirow{4}{*}{OS} & Linux & \(\star\) & \(\star\) & \(\star\) & \(\star\) & \(\star\) \\  & MacOS & \(\star\) & \(\star\) & \(\star\) & \(\star\) & \(\star\) \\  & Windows & & \(\star\) & \(\star\) & \(\star\) & \\  & iOS & & \(\star\) & \(\star\) & & \\  & Android & & \(\star\) & \(\star\) & & \\ \hline \multirow{4}{*}{Models} & Neural network & \(\star\) & \(\star\) & \(\star\) & \(\star\) & \(\star\) \\  & Linear models & \(\star\) & \(\star\) & & & \\  & Decision tree & \(\star\) & \(\star\) & \(\star\) & & \(\star\) \\ \hline \multirow{2}{*}{Data partitioning} & Horizontal & \(\star\) & \(\star\) & \(\star\) & \(\star\) & \(\star\) \\  & Vertical & \(\star\) & & \(\star\) & \(\star\) & \(\star\) \\ \hline \multirow{2}{*}{Settings} & Cross-silo & \(\star\) & & \(\star\) & \(\star\) & \(\star\) \\  & Cross-device & \(\star\) & \(\star\) & \(\star\) & \(\star\) \\ \hline \multicolumn{6}{l}{Support ARM architecture of edge devices} & \(\star\) & \(\star\) \\ \hline \hline \end{tabular}
\end{table}
Table 2: Supported features of FL frameworks.