====== Flower ====== * https://flower.ai/docs/framework/how-to-install-flower.html ===== Installation ====== Conda is __not__ needed to install Flower and just loads additional complexity - it works quite happily with the standard ''pip'' command including in later versions of the Python 3 modules installed on our HPC facilities. The easiest approach is to load one of our Python software modules, and then create a new python venv area to hold it. In the example below we create the ''flowers'' folder with a new Python venv and use ''pip'' to install the latest Flowers package: $ module load Python/3.11 $ python -m venv flower $ cd flower $ source bin/activate $ pip install flwr Collecting flwr Downloading flwr-1.16.0-py3-none-any.whl (532 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 532.1/532.1 kB 6.1 MB/s eta 0:00:00 Collecting cryptography<45.0.0,>=44.0.1 Downloading cryptography-44.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.2/4.2 MB 28.4 MB/s eta 0:00:00 ... ... Installing collected packages: ... $ If you need to install the ''ray'' dependency, just substitute the ''pip'' command for the one which installs ''flwr[simulation]'' instead: $ module load Python/3.11 $ python -m venv flower $ cd flower $ source bin/activate $ pip install "flwr[simulation]" Collecting flwr Downloading flwr-1.16.0-py3-none-any.whl (532 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 532.1/532.1 kB 6.1 MB/s eta 0:00:00 Collecting cryptography<45.0.0,>=44.0.1 Downloading cryptography-44.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.2/4.2 MB 28.4 MB/s eta 0:00:00 Collecting ray==2.31.0 Downloading ray-2.31.0-cp311-cp311-manylinux2014_x86_64.whl (66.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.7/66.7 MB 19.3 MB/s eta 0:00:00 ... ... Installing collected packages: ... $ == Testing == $ module load Python/3.11 $ cd flower $ source bin/activate $ python -c "import flwr;print(flwr.__version__)" 1.16.0 $ ===== Using Flower ===== You will need to load the required Python software module, then activate the Flowers virtual environment: $ module load Python/3.11 $ cd flower $ source bin/activate $ bin/flower-simulation --help usage: flower-simulation [-h] --app APP --num-supernodes NUM_SUPERNODES [--run-config RUN_CONFIG] [--backend BACKEND] [--backend-config BACKEND_CONFIG] [--enable-tf-gpu-growth] [--verbose] [--flwr-dir FLWR_DIR] [--run-id RUN_ID] Start a Flower simulation options: -h, --help show this help message and exit --app APP Path to a directory containing a FAB-like structure with a pyproject.toml. --num-supernodes NUM_SUPERNODES Number of simulated SuperNodes. --run-config RUN_CONFIG Override configuration key-value pairs. --backend BACKEND Simulation backend that executes the ClientApp. --backend-config BACKEND_CONFIG A JSON formatted stream, e.g '{"":, "":}' to configure a backend. Values supported in are those included by `flwr.common.typing.ConfigsRecordValues`. --enable-tf-gpu-growth Enables GPU growth on the main thread. This is desirable if you make use of a TensorFlow model on your `ServerApp` while having your `ClientApp` running on the same GPU. Without enabling this, you might encounter an out-of-memory error because TensorFlow by default allocates all GPU memory.Read more about how `tf.config.experimental.set_memory_growth()` works in the TensorFlow documentation: https://www.tensorflow.org/api/stable. --verbose When unset, only INFO, WARNING and ERROR log messages will be shown. If set, DEBUG-level logs will be displayed. --flwr-dir FLWR_DIR The path containing installed Flower Apps. By default, this value is equal to: - `$FLWR_HOME/` if `$FLWR_HOME` is defined - `$XDG_DATA_HOME/.flwr/` if `$XDG_DATA_HOME` is defined - `$HOME/.flwr/` in all other cases --run-id RUN_ID Sets the ID of the run started by the Simulation Engine. $ ---- [[:faq:index|Back to FAQ]]