← All articles & guides
Federated learning · Evaluation

Federated Learning with 100,000 Geographically Distributed Clients Using Scaleout Edge

A geographically distributed evaluation targeting 100,000 simulated clients across ten regions, exploring training continuity, participation, and infrastructure requirements.

Ten-region simulated-client deployment connected to the hub in Hamina, Finland

Introduction

Much of the world's most valuable data is created at the edge: on phones, vehicles, industrial machines and hospital systems. Often that data cannot be moved to a central place to train a model. It may be too sensitive, as with medical or personal data. It may be restricted by regulation such as GDPR. Or it may simply be too large or too costly to transfer. Federated learning solves this by bringing the training to the data instead. Each device trains on its own data and shares only a model update, and the updates are combined into a shared global model. The raw data never leaves the device.

Federated learning is easy to demonstrate with a handful of clients but much harder to run at real-world scale. A production cross-device deployment may involve tens or hundreds of thousands of devices. These devices are spread across countries and continents, connect over networks of varying quality, and are only available some of the time. The infrastructure has to handle all of this: onboarding and tracking a very large fleet of clients, keeping long-distance traffic manageable, and continuing to make progress when individual clients or servers drop out. A platform that works for a hundred clients in a single data centre gives no guarantee that it will hold up under these conditions.

This post shows how Scaleout Edge handles these conditions. We evaluated the platform with a target of 100,000 simulated clients across ten global regions. Although extreme initial load kept the active pool slightly below 100,000, the system successfully maintained continuous training. We first outline the architecture, deployment, and experimental setup, before sharing the final results and hardware requirements to guide future large-scale deployments.

Scaleout Edge Architecture

The Scaleout Edge architecture follows a three-tier design

Scaleout Edge three-tier architecture
Figure 1: Scaleout Edge three-tier architecture. Combiners act as model aggregation servers, each having responsibility to combine model updates from N clients. A reducer then combines models from all combiners. This tiered architecture ensures horizontal scalability and resilience of the federated network. In addition to the core federated learning functionality (Tier 1 and Tier 2), Scaleout Edge has a control plane where a global controller lays out the overall federated learning strategy (Tier 3), and deploys services for model management, databases, object storage, and dashboards.

Tier 1 consists of the clients, anything from drones, trucks to smartphones, factory PLCs, or hospital servers, each training on local data (which never leaves the clients) and producing a model update for the current round. The client side SDKs are the main entry point for developers. They specify machine learning code for computing model updates, integrate with their own application (as needed), and specify model validation and telemetry routines. They also have the possibility to specify custom server-side model aggregation schemes.

Tier 2 consists of combiner/s and a reducer. Every client is assigned to a single combiner. During each round each combiner waits until it has received all of its clients’ updates, or until the round timeout elapses. It then proceeds to aggregate its updates into a partial model. When every combiner has produced its partial model (or the round timeout is reached), the reducer merges the partial models into a new global model. That global model is then sent to the clients for validation, and the process is iterated until the desired number of rounds have been executed.

Tier 3 houses the control plane. The controller orchestrates each training round, tracks the lineage of global models, and maintains a global state. Alongside it, a discovery service detects inbound client connections and routes each new client to an available combiner.

Scaleout Edge is built for fault tolerance and scalability

The three-tier architecture makes horizontal scaling straightforward. When 100 000 clients were started, 20 combiners were deployed, each handling 5000 clients. Because the combiners never speak to one another and are solely responsible for its designated clients, Scaleout Edge provides a high fault-tolerance. An unresponsive combiner only affects its respective clients and the remaining combiners can continue to aggregate their partial models, which allows the reducer to produce a new global model and keep the training session moving forward.

Fault tolerance and scalability also extend to the control plane. Because Scaleout Edge is deployed on Kubernetes, components can be scaled out on demand. During the startup of the 100,000 clients, heavy load caused timeouts in the API server, and the run began to crash. Scaling the API server to 4 replicas and the NGINX ingress to 3 replicas successfully mitigated this; the load was distributed, allowing the run to recover and the clients to connect successfully.

Geographically Distributed Deployment

To resemble a real cross-device deployment, the clients and combiners were spread over ten regions on five continents: Finland, Belgium, Poland, three locations in the US, Brazil, India, Japan and Australia (Figure 2).

The control plane runs in a single hub in Finland, a Kubernetes cluster that holds the controller, API server, database, model storage and server functions. Every other region holds only the parts that need to be close to the clients: two combiners and three client machines, which together host 10,000 clients. The hub runs its own two combiners, which gives 20 combiners in total, each serving 5,000 clients.

Clients connect only to the combiners in their own region, so the bulk of the traffic, model downloads and uploads, never leaves the region. Only the combiners communicate with the hub across continents, to fetch the global model, report their clients and send their partial models for reduction. This is what lets the system scale: adding a region adds local capacity without adding long-distance traffic from the clients.

Ten-region deployment connected to a hub in Hamina, Finland
Figure 2: 10 regions, 20 combiners, 30 client VMs and 100,000 clients, all connected to the hub in Hamina, Finland.

Experimental Setup

Task and model

Each client trains a small fully connected neural network, with two hidden layers of 64 and 32 units, to classify handwritten digits from MNIST. Each client draws its own random local dataset of 600 training and 100 test images. In each round a selected client first evaluates the incoming global model on its local test set and reports loss and accuracy. It then trains for one epoch and returns its updated model. The updates are combined with FedAvg, weighted by each client's number of training examples. Each round has a timeout of 400 seconds, after which the combiners aggregate whatever updates they have received, so slow or unresponsive clients cannot stall the round.

Running 100,000 clients

Each client is a separate process with its own connection, identity and data, so from the platform's point of view it behaves like an independent device. Each client machine runs about 3,300 clients. To prevent the control plane from being overwhelmed, the deployment was designed to bring clients online gradually, one region at a time. Additionally, communication across the entire deployment, including all clients, was strictly constrained to limit network overhead.

Experimental Results

Convergence

MNIST with randomly sampled local data is a toy task, so the accuracy itself is not the point. The model is there to give the clients real training work and to show that the updates from 100,000 clients are aggregated correctly. The global model converged as expected (Figures 3 and 4), and the run was stopped after 30 rounds once accuracy had levelled off.

Global model test accuracy over 30 rounds
Figure 3: Global model test accuracy, evaluated by the clients on their local test data.
Global model test loss over 30 rounds
Figure 4: Global model test loss.

Simulating Realistic participation through server functions

In real cross-device deployments only a small fraction of devices are available at any moment, because they are charging, offline or in use. This was simulated with a server function, a small piece of custom Python code that runs on the server and overrides which clients are selected for each round. The client code is unchanged. Each client is available with a probability of 10%, and its availability is re-drawn every 10–60 seconds. A client therefore moves in and out of availability over the course of the run, as a real device would. Each round selects only the clients that are available at that moment.

Participation per round

About 8% of the 100,000 clients, roughly 8,300, contributed an update in each round. The rate stayed flat from the first round to the last, so neither the number of rounds nor the accumulated load degraded participation. Every region contributed in every round. The European and US regions each contributed close to 1,000 updates per round, while the regions furthest from the hub contributed fewer, with Sydney the lowest at about 480 (Figure 5). This is because fewer of their clients managed to connect during start-up. In future deployments, this bottleneck could be avoided by onboarding distant regions more slowly.

Participating clients per round in each region
Figure 5: Participating clients per round in each region (10,000 clients per region).

Coverage of the client population

Because a different subset is selected each round, the global model learns from a growing share of the population over time. After 30 rounds, 89% of all clients had contributed at least once (Figure 6). Coverage ranges from about 95% in the best-connected regions down to 62% in Sydney. The typical client took part in only 2–3 of the 30 rounds, so the training was spread across the whole population and not dominated by a few clients.

Share of clients that have contributed at least once
Figure 6: Share of clients that have contributed at least once, overall and per region.

Reference Deployment

The whole experiment ran on standard cloud virtual machines, with no specialised hardware and no GPUs.

Component Machine size Count
Control plane (Kubernetes nodes) 8 vCPU, 32 GB RAM 3–5
Regional combiners 2 vCPU, 8 GB RAM 20
Client machines 32 vCPU, 128 GB RAM 30

Table 1: Hardware used for the 100,000-client run.

The control plane was installed on Kubernetes with the Scaleout Edge Helm chart. To handle 100,000 clients connecting at once, the API server was scaled to 4 replicas and the ingress to 3. Each regional combiner is a single small 2-vCPU machine serving 5,000 clients.

Scaling horizontally with multiple lightweight VMs is more cost-effective than provisioning large, high-compute instances, while simultaneously reducing the impact of any single node failure. Deploying multiple combiners per region provides this necessary redundancy: if a combiner were to fail, its clients are designed to reconnect to another available combiner. This architecture ensures that local hardware failures do not delay global model updates.

Finally, the client machines in this experiment exist only to simulate the workload; in a real deployment, these would be the actual edge devices.

How each combiner spends its round time
Figure 7: Share of round time spent by each combiner on client communication, local aggregation, and remaining idle.

As shown in the analysis of how each combiner spends a round, combiners spend the vast majority of their time either waiting for clients to complete local training and communication or sitting idle while waiting for other combiners and the central control plane to finish aggregation. In regions closest to the hub, such as Hamina, Belgium, and Warsaw, combiners finish client updates quickly and spend most of their time idle. Conversely, in regions furthest from the hub like Sydney and Tokyo, combiners spend most of the round time waiting for client communications and local execution within the round timeout window.

Conclusions

This evaluation demonstrates how Scaleout Edge manages large-scale, distributed federated learning. It illustrates that the platform can scale to 100,000 clients by leveraging a decentralized three-tier architecture. By offloading workload to regional combiners and keeping communication thresholds to a minimum, the system limits network overhead and mitigates control-plane bottlenecks. Additionally, the inherent redundancy in the architecture helps prevent intermittent client availability from stalling global model updates, while the regional combiners decouple local network disruptions from the global training process.

Ultimately, this deployment validates the platform's architectural design for handling large-scale machine learning workloads at the edge.

Acknowledgements

This work was made possible by funding from Vinnova under the project “Validating a System Development Kit for edge federated learning” (2023-01890).

About the author

Noah Wassberg

Research Engineer at Scaleout

Continue exploring

From the detail to the system.

Explore Scaleout EdgeBrowse Articles & guidesBack to Resources