  The functional programming language Erlang is well-suited for concurrent and
distributed applications. Numerical computing, however, is not seen as one of
its strengths. The recent introduction of Federated Learning, a concept
according to which client devices are leveraged for decentralized machine
learning tasks, while a central server updates and distributes a global model,
provided the motivation for exploring how well Erlang is suited to that
problem. We present ffl-erl, a framework for Federated Learning, written in
Erlang, and explore how well it performs 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. Erlang incurs a performance penalty,
but for certain use cases this may not be detrimental, considering the
trade-off between conciseness of the language and speed of development (Erlang)
versus performance (C). Thus, Erlang may be a viable alternative to C for some
practical machine learning tasks.
