Functional Federated Learning in Erlang (ffl-erl)

G. Ulm, E. Gustavsson, M. Jirstrand. Silva J. (eds) Functional and Constraint Logic Programming. WFLP 2018. Lecture Notes in Computer Science, vol 11285. Springer, Cham. Online 16 March, 2019.


The functional programming language Erlang is well-suited for concurrent and distributed applications, but numerical computing is not seen as one of its strengths. Yet, the recent introduction of Federated Learning, which leverages client devices for decentralized machine learning tasks, while a central server updates and distributes a global model, motivated us to explore how well Erlang is suited to that problem. We present the Federated Learning framework ffl-erl and evaluate it in two scenarios: one in which the entire system has been written in Erlang, and another in which Erlang is relegated to coordinating client processes that rely on performing numerical computations in the programming language C. There is a concurrent as well as a distributed implementation of each case. We show that Erlang incurs a performance penalty, but for certain use cases this may not be detrimental, considering the trade-off between speed of development (Erlang) versus performance (C). Thus, Erlang may be a viable alternative to C for some practical machine learning tasks.

Photo credits: Nic McPhee