diff --git a/docs/flare_overview.rst b/docs/flare_overview.rst index c2f6ecfb91..15eaafa8d3 100644 --- a/docs/flare_overview.rst +++ b/docs/flare_overview.rst @@ -26,7 +26,7 @@ Built for productivity FLARE is designed for maximum productivity, providing a range of tools to enhance user experience and research efficiency at different stages of the development process: - **FLARE Client API:** Enables users to transition seamlessly from ML/DL to FL with just a few lines of code changes. -- **Simulator CLI:** Allows users to simulate federated learning or computing jobs in multi-thread settings within a single computer, offering quick response and debugging. The same job can be deployed directly to production. +- **Simulator CLI:** Allows users to simulate federated learning or computing jobs in multi-process settings within a single computer, offering quick response and debugging. The same job can be deployed directly to production. - **POC CLI:** Facilitates the simulation of federated learning or computing jobs in multi-process settings within one computer. Different processes represent server, clients, and an admin console, providing users with a realistic sense of the federated network. It also allows users to simulate project deployment on a single host. - **Job CLI:** Permits users to create and submit jobs directly in POC or production environments. - **FLARE API:** Enables users to run jobs directly from Python code or notebooks. diff --git a/docs/user_guide/nvflare_cli/fl_simulator.rst b/docs/user_guide/nvflare_cli/fl_simulator.rst index 3d3958f7d0..c350805f3c 100644 --- a/docs/user_guide/nvflare_cli/fl_simulator.rst +++ b/docs/user_guide/nvflare_cli/fl_simulator.rst @@ -49,7 +49,7 @@ Command examples Run a single NVFlare app ======================== -This command will run the same ``hello-numpy-sag`` app on the server and 8 clients using 1 thread. The client names will be site-1, site-2, ... , site-8: +This command will run the same ``hello-numpy-sag`` app on the server and 8 clients using 1 process. The client names will be site-1, site-2, ... , site-8: .. code-block:: python @@ -829,26 +829,26 @@ application run. status = run_simulator(args) sys.exit(status) -**************************** -Threads, Clients, and Events -**************************** +****************************** +Processes, Clients, and Events +****************************** -Specifying threads -================== -The simulator ``-t`` option provides the ability to specify how many threads to run the simulator with. +Specifying number of processes +============================== +The simulator ``-t`` option provides the ability to specify how many processes to run the simulator with. .. note:: - We use the term threads for simplicity, however technically each client actually runs in a separate process. - This difference will not affect the user experience. + The ``-t`` and ``--threads`` option for simulator was originally due to clients running in separate threads. + However each client now actually runs in a separate process. This distinction will not affect the user experience. When you run the simulator with ``-t 1``, there is only one client active and running at a time, and the clients will be running in turn. This is to enable the simulation of large number of clients using a single machine with limited resources. -Note that if you have fewer threads than the number of clients, ClientRunner/learner object will go thorugh setup and +Note that if you have fewer processes than the number of clients, ClientRunner/learner object will go through setup and teardown in every round. -With ``-t=num_client``, the simulator will run the number of clients in separate threads at the same time. Each +With ``-t=num_client``, the simulator will run the number of clients in separate processes at the same time. Each client will always be running in memory with no swap_in / swap_out, but it will require more resources available. For the dataset / tensorboard initialization, you could make use of EventType.SWAP_IN and EventType.SWAP_OUT