Accepted Paper at DIDL 2018

Our paper “A Performance Evaluation of Federated Learning Algorithms” has been accepted at the Second Workshop on Distributed Infrastructures for Deep Learning (DIDL 2018), which is colocated with the 2018 ACM/IFIP International Middleware Conference (Middleware 2018). This conference will take place from December 10 to 14 in Rennes, France. The abstract is reproduced below.

Title:
A Performance Evaluation of Federated Learning Algorithms
Adrian Nilsson, Simon Smith, Gregor Ulm, Emil Gustavsson, Mats Jirstrand (Fraunhofer-Chalmers Centre & Fraunhofer Center for Machine Learning)

Abstract:
Federated learning proposes an environment for distributed machine learning where a global model is learned by aggregating models that have been trained locally on data generating clients. Contrary to centralized optimization, clients can be very large in number and are characterized by challenges of data and network heterogeneity. Examples of clients include smartphones and connected vehicles, which highlights the practical relevance of this approach to distributed machine learning. We compare three algorithms for federated learning and benchmark their performance against a centralized approach where data resides on the server. The algorithms covered are Federated Averaging (FedAvg), Federated Stochastic Variance Reduced Gradient, and CO-OP. They are evaluated on the MNIST dataset using both i.i.d. and non-i.i.d. partitionings of the data. Our results show that, among the three federated algorithms, FedAvg achieves the highest accuracy, regardless of how data was partitioned. Our comparison between FedAvg and centralized learning shows that they are practically equivalent when i.i.d. data is used, but the centralized approach outperforms FedAvg with non-i.i.d. data.

Upcoming Talk at the Singapore Elixir and Erlang Meetup Group

I will give a talk at the Singapore Elixir and Erlang Meetup Group on Monday, 15 October 2018. Zalora is hosting the event at their Singapore HQ. Their address is 298 Jalan Besar #03-01, Singapore 208959, Singapore. In order to attend, join the Meetup group and bring an ID document. There is a separate event page on Meetup.com.

Below you will find the full description of the event.

Introduction to OTP, Functional Federated Learning in Erlang

Agenda:
• 6:45 pm - 7:10 pm
Snacks - Pizzas, drinks, mingling
-----------------

• 7:10 pm
Topic: Introduction to OTP

Grzegorz is the Head Of Engineering at Kaligo.

Speaker: Grzegorz Witek
Linkedin: https://www.linkedin.com/in/grzegorzwitek/

---------------------

• 8:00 pm :
Topic: Functional Federated Learning in Erlang (ffl-erl)

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 de-centralized 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.

Speaker: Gregor Ulm
Gregor Ulm is a computer scientist, currently working as a research and development engineer in an industrial research lab in Gothenburg, Sweden.

Website: http://gregorulm.com
LinkedIn: https://www.linkedin.com/in/gregorulm/

---------------------

Thanks to the following volunteers:
Meetup Organizers, Zalora for venue & Yojee for getting us pizzas.

About Yojee: An agile startup in Singapore building logistics software utilizing Block-chain, AI and Machine Learning to optimize and manage fleets.

• What to bring
ID

Internship (Web Development) at the Fraunhofer-Chalmers Centre for Industrial Mathematics

The Systems and Data Analysis department at the Fraunhofer-Chalmers Centre for Industrial Mathematics intends to hire a student for an internship. You would be working under my supervision and contribute to the development of a platform for distributed data analytics by creating a web-based interface. The goal of this internship is to create a more intuitive alternative to the existing command-line interface.

Here is the job ad:

Internship (Web Development) at the Fraunhofer-Chalmers Centre for Industrial Mathematics

The Fraunhofer-Chalmers Research Centre for Industrial Mathematics (FCC)
offers software, services and contract research for a broad range of
industrial applications. Modelling, simulation and optimization of products
and processes can boost technical development, improve efficiency and cut
costs of both large and small businesses. Since 2001, our highly skilled team
of mathematicians and engineers has successfully solved problems for more than
170 clients. We combine consultancy services with innovative research and
development based on a wide spectrum of competences.

We are looking for an ambitious student with a background in computer science
or related fields to assist in an ongoing applied research project in the
Systems and Data Analysis department.

Your task:
We have been developing a prototype for distributed data analytics. Currently,
the end user interacts with it via a Python library that is accessed through
a terminal window. In order to improve usability, we would like to add a HTML5-
based front-end to this system.

Required background:
- Experience with HTML5 and JavaScript
- Understanding of concurrency and asynchronous execution

Meriting:
- Experience with Python
- Awareness of Erlang

Your ideal profile:
- Chalmers student at the Master's level, preferably in the penultimate year
- Pursue a degree in Computer Science or a similar field
- Able to work independently
- Previous work experience in the software industry or as a student research
assistant

If you maintain a private code repository (Github, Gitlab, Bitbucket etc.),
then please highlight this in your application. If you have other samples of
work to show, such as a portfolio of projects on a blog or private website,
we would be keen to have a look.

This internship is a paid part-time (4h/week) fixed-term position until the
end of December 2018, with the possibility of extending the contract. The
starting date is flexible.

Contact persons:

Mats Jirstrand, Head of Department
mats.jirstrand@fcc.chalmers.se, 031-772 42 50

Emil Gustavsson, Applied Researcher/Data Scientist
emil.gustavsson@fcc.chalmers.se, 031-772 42 92

Gregor Ulm, Research and Development Engineer
gregor.ulm@fcc.chalmers.se, 031-772 42 71

Please send your application, marked "Contracted Student / SYS (OODIDA
Front-End)", consisting of a cover letter, CV, and a current academic
transcript covering your entire university education, to
recruit@fcc.chalmers.se.

Interviews will be held continually. Please apply as soon as possible.

www.fcc.chalmers.se

Internship (Algorithm Development) at the Fraunhofer-Chalmers Centre for Industrial Mathematics

The Systems and Data Analysis department at the Fraunhofer-Chalmers Centre for Industrial Mathematics intends to hire a student for an internship. You would be working under my supervision and contribute to algorithm development in the realm of big data analytics. This internship is related to our work on Contraction Clustering (RASTER).

Here is the job ad:

Internship (Algorithm Development) at the Fraunhofer-Chalmers Centre for Industrial Mathematics

The Fraunhofer-Chalmers Research Centre for Industrial Mathematics (FCC)
offers software, services and contract research for a broad range of
industrial applications. Modelling, simulation and optimization of products
and processes can boost technical development, improve efficiency and cut
costs of both large and small businesses. Since 2001, our highly skilled team
of mathematicians and engineers has successfully solved problems for more than
170 clients. We combine consultancy services with innovative research and
development based on a wide spectrum of competences.

We are looking for an ambitious student with a background in computer science
or related fields to assist in an ongoing applied research project in the
Systems and Data Analysis department. You will contribute to research in data
stream processing that is conducted in the area of distributed data analytics.

Your task:
- Implement a stream-processing algorithm, which was developed in-house
- Benchmarking
- Visualization
- Compare the implementation with other existing algorithms on a variety
of metrics

Required background:
- Functional programming in Scala or Haskell

Meriting:
- Experience implementing algorithms based on a mathematical specification
or pseudocode
- Algorithms/Machine Learning, in particular clustering
- Stream processing, in particular Apache Spark - Structured Streaming
- Data visualization, in particular Matplotlib

Your ideal profile:
- Chalmers student at the Master's level, preferably in the penultimate year
- Pursuing a degree in Computer Science or a related field
- Previous work experience in the software industry or as a student research
assistant
- Ability to work independently

If you maintain a private code repository (Github, Gitlab, Bitbucket etc.),
then please highlight this in your application. If you have other samples of
work to show, such as a portfolio of projects on a blog or private website,
we would be keen to have a look.

This internship is a paid part-time (4h/week) fixed-term position until the
end of December 2018, with the possibility of extending the contract. The
starting date is flexible.

Contact persons:

Mats Jirstrand, Head of Department
mats.jirstrand@fcc.chalmers.se, 031-772 42 50

Emil Gustavsson, Applied Researcher/Data Scientist
emil.gustavsson@fcc.chalmers.se, 031-772 42 92

Gregor Ulm, Research and Development Engineer
gregor.ulm@fcc.chalmers.se, 031-772 42 71

Please send your application, marked "Contracted Student / SYS (RASTER)",
consisting of a cover letter, CV, and a current academic transcript
covering your entire university education, to recruit@fcc.chalmers.se.

Interviews will be held continually. Please apply as soon as possible.

www.fcc.chalmers.se

Preprint of “Functional Federated Learning in Erlang (ffl-erl)” available on arXiv

Our paper “Functional Federated Learning in Erlang (ffl-erl)” is now available as a pre-print on arXiv at https://arxiv.org/abs/1808.08143. The full tile as well as the abstract are below.


Title:
Functional Federated Learning in Erlang (ffl-erl)
Gregor Ulm, Emil Gustavsson and Mats Jirstrand

Abstract:
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.