# 1. Preparation

In the following sections, we'll guide you through the process of setting up and using FedLearn, from installation to advanced features. Whether you're a data scientist, machine learning engineer, or decision-maker in a data-driven organization, FedLearn provides the tools and framework to advance your AI initiatives while prioritizing data privacy and security.

This introduction provides a comprehensive overview of FedLearn, its workings, features, benefits, and potential applications. It sets the stage for the more detailed technical sections that follow in the documentation.

## System Requirements

To run FedLearn effectively, your system should meet the following requirements:

* **Operating System:**
  * Linux (Ubuntu 18.04 or later)
  * MacOS (10.14 or later)
  * Windows 10
* **Python:** Version 3.9
* **RAM:** Minimum 8GB, 16GB or more recommended for larger models
* **Storage:** At least 30GB of free disk space
* **Network:** Stable internet connection for collaboration mode

### GPU Requirements (Optional)&#x20;

FedLearn supports two main types of GPU acceleration: **NVIDIA CUDA** and **Google's Tensor Processing Units** (TPUs). Choose the option that best fits your hardware and requirements.

### NVIDIA CUDA

If you're using NVIDIA GPUs:

* **CUDA-capable GPU:** NVIDIA GPU with compute capability 3.5 or higher
* **CUDA Toolkit:** Version 10.1 or later (11.8 recommended for optimal performance)
* **cuDNN:** Version 7.6 or later
* **NVIDIA GPU Drivers:** Compatible with your CUDA Toolkit version

To verify your GPU is CUDA-capable:

{% code title="bash" overflow="wrap" %}

```bash
lspci | grep -i nvidia
```

{% endcode %}

To check CUDA version:

{% code title="bash" %}

```bash
nvcc --version
```

{% endcode %}

### Tensor Processing Units (TPUs)

If you're using Google Cloud TPUs:

* **TPU Hardware:** Access to a TPU device or TPU Pod
* **TensorFlow:** Version 2.3.0 or later with TPU support
* **Google Cloud Account:** Active account with TPU quota
* **Cloud Storage Bucket:** For storing model checkpoints and data

To check TPU availability in TensorFlow:

{% code title="python" %}

```python
import tensorflow as tf
print(tf.config.list_physical_devices('TPU'))
```

{% endcode %}
