:og:description: Guide for running Flower Apps on Flower SuperGrid Deployment and Simulation federations. .. meta:: :description: Guide for running Flower Apps on Flower SuperGrid Deployment and Simulation federations. ############################## Run Flower Apps on SuperGrid ############################## To run a Flower App on SuperGrid, you need a federation. The federation can be a Simulation federation or a Deployment federation. For Deployment federations, connected SuperNodes must also be added to the federation. If you still need to create a federation, see :doc:`how-to-create-and-manage-federations`. If you need to register and connect SuperNodes first, see :doc:`how-to-connect-supernodes-to-supergrid`. This guide shows two ways to run a Flower App on SuperGrid: directly from `Flower Hub `__, and from a Flower App project on your machine. It uses the `@flwrlabs/quickstart-numpy `__ app as an example, but the same workflow applies to other Flower Apps, whether or not they are listed on Flower Hub. The sections below show the SuperGrid UI workflow. At the end of this page, the same steps are shown in compact form with the Flower CLI. ********************************* Run Flower Apps from Flower Hub ********************************* Running directly from Flower Hub is the quickest way to get started. Open an app page, for example `@flwrlabs/quickstart-numpy `__, and click ``Run``. .. image:: ./_static/demo_app.png :alt: Flower App page on Flower Hub :align: center :target: ./_static/demo_app.png Select the federation to run the app on, then click ``Run app``. .. image:: ./_static/run_app_button.png :alt: Run app dialog in SuperGrid :align: center :target: ./_static/run_app_button.png After the run starts, open the federation in the `SuperGrid dashboard `__ to inspect the run status. .. image:: ./_static/run_started_dashboard.png :alt: Run details page showing the progress of the app execution :align: center :target: ./_static/run_started_dashboard.png Open the ``Logs`` tab to inspect the app logs. .. image:: ./_static/run_logs_dashboard.png :alt: Logs tab showing logs from the app execution :align: center :target: ./_static/run_logs_dashboard.png If you return to the federation page, the run appears in the list of runs for that federation. .. image:: ./_static/federation_dashboard_shows_run.png :alt: Federation details page showing the run that was launched :align: center :target: ./_static/federation_dashboard_shows_run.png *********************************** Run Flower apps from your machine *********************************** You can also run a Flower App on SuperGrid from your local machine. Use this workflow when you want to inspect or modify an app before submitting it to SuperGrid, or when you are developing a Flower App locally and do not want to list it on Flower Hub. This section assumes you have a Python environment set up. Install Flower with ``pip``: .. code-block:: shell $ pip install -U flwr Pull the app locally with ``flwr new``: .. code-block:: shell $ flwr new @flwrlabs/quickstart-numpy $ cd quickstart-numpy Then, log in to SuperGrid with ``flwr login``. This opens a browser window where you can authenticate with your SuperGrid account. Finally, run the app with ``flwr run`` and use ``--federation`` to choose the federation: .. note:: Replace ``@/`` with the unique name of your federation, for example ``@peter123/my-federation``. .. code-block:: shell # This opens a browser window where you can log in to SuperGrid. $ flwr login supergrid $ flwr run . --federation @/ The run appears in the same SuperGrid federation dashboard. .. image:: ./_static/second_run_started_dashboard.png :alt: SuperGrid dashboard showing the newly started run in the federation :align: center :target: ./_static/second_run_started_dashboard.png Customize the run configuration =============================== Flower Apps can define default runtime settings in the ``[tool.flwr.app.config]`` section of their ``pyproject.toml``. The ``quickstart-numpy`` app used in this guide defines ``num-server-rounds`` to control how many rounds its ``ServerApp`` runs: .. code-block:: toml [tool.flwr.app.config] num-server-rounds = 3 Apps can define additional settings in this section and read them from the app code, for example learning rates, model sizes, batch sizes, or dataset-specific options. You can override app-defined values for a single run with the ``--run-config`` flag. The following command runs ``quickstart-numpy`` on SuperGrid with ``num-server-rounds`` set to ``5``: .. code-block:: shell $ flwr run . supergrid --federation @/ \ --run-config "num-server-rounds=5" .. note:: For more details on Flower App configuration in ``pyproject.toml``, see :doc:`how-to-configure-pyproject-toml`. ********** Advanced ********** Everything shown above in the SuperGrid UI can also be done with the :doc:`Flower CLI `. Log in to SuperGrid: .. code-block:: shell $ flwr login supergrid Run an app directly from Flower Hub: .. code-block:: shell $ flwr run @flwrlabs/quickstart-numpy supergrid \ --federation @/ \ --stream Inspect runs and logs from the terminal: .. code-block:: shell # List all your runs (across federations) $ flwr list supergrid # Show additional details of a run $ flwr list --run-id supergrid # Show federation details (including runs) for a specific federation $ flwr federation list supergrid --federation @/ # Show logs of a run $ flwr log supergrid