Workshop Erlang 2022 – Author Index |
Contents -
Abstracts -
Authors
|
Ballesteros, Ignacio |
Erlang '22: "Executable Contracts for Elixir ..."
Executable Contracts for Elixir
Sergio Pérez, Luis Eduardo Bueso de Barrio, Ignacio Ballesteros, Ángel Herranz, Julio Mariño, Clara Benac Earle, and Lars-Åke Fredlund (Universitat Politècnica de València, Spain; Universidad Politécnica de Madrid, Spain) This paper introduces a new library for implementing executable contracts in Elixir. In addition to classical contract constructs such as preconditions and postconditions, the library permits e.g. to specify exceptional behaviour (i.e. which exceptions are thrown and under which conditions), and to associate timers with function calls to detect non-terminating or too slow computations. @InProceedings{Erlang22p40, author = {Sergio Pérez and Luis Eduardo Bueso de Barrio and Ignacio Ballesteros and Ángel Herranz and Julio Mariño and Clara Benac Earle and Lars-Åke Fredlund}, title = {Executable Contracts for Elixir}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {40--46}, doi = {10.1145/3546186.3549930}, year = {2022}, } Publisher's Version |
|
De Barrio, Luis Eduardo Bueso |
Erlang '22: "Executable Contracts for Elixir ..."
Executable Contracts for Elixir
Sergio Pérez, Luis Eduardo Bueso de Barrio, Ignacio Ballesteros, Ángel Herranz, Julio Mariño, Clara Benac Earle, and Lars-Åke Fredlund (Universitat Politècnica de València, Spain; Universidad Politécnica de Madrid, Spain) This paper introduces a new library for implementing executable contracts in Elixir. In addition to classical contract constructs such as preconditions and postconditions, the library permits e.g. to specify exceptional behaviour (i.e. which exceptions are thrown and under which conditions), and to associate timers with function calls to detect non-terminating or too slow computations. @InProceedings{Erlang22p40, author = {Sergio Pérez and Luis Eduardo Bueso de Barrio and Ignacio Ballesteros and Ángel Herranz and Julio Mariño and Clara Benac Earle and Lars-Åke Fredlund}, title = {Executable Contracts for Elixir}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {40--46}, doi = {10.1145/3546186.3549930}, year = {2022}, } Publisher's Version |
|
Distefano, Dino |
Erlang '22: "InfERL: Scalable and Extensible ..."
InfERL: Scalable and Extensible Erlang Static Analysis
Ákos Hajdu, Matteo Marescotti, Thibault Suzanne, Ke Mao, Radu Grigore, Per Gustafsson, and Dino Distefano (Meta, UK) In this paper we introduce InfERL, an open source, scalable, and extensible static analyzer for Erlang, based on Meta’s Infer tool. InfERL has been developed at WhatsApp and it is deployed to regularly scan WhatsApp server’s Erlang code- base, detecting reliability issues and checking user-defined properties. The paper describes the Erlang specific technical challenges we had to address and our design choices. We also report on our experience in running InfERL on Erlang code at scale, supporting the messaging app used everyday by over 2 billion people. @InProceedings{Erlang22p33, author = {Ákos Hajdu and Matteo Marescotti and Thibault Suzanne and Ke Mao and Radu Grigore and Per Gustafsson and Dino Distefano}, title = {InfERL: Scalable and Extensible Erlang Static Analysis}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {33--39}, doi = {10.1145/3546186.3549929}, year = {2022}, } Publisher's Version |
|
Earle, Clara Benac |
Erlang '22: "Executable Contracts for Elixir ..."
Executable Contracts for Elixir
Sergio Pérez, Luis Eduardo Bueso de Barrio, Ignacio Ballesteros, Ángel Herranz, Julio Mariño, Clara Benac Earle, and Lars-Åke Fredlund (Universitat Politècnica de València, Spain; Universidad Politécnica de Madrid, Spain) This paper introduces a new library for implementing executable contracts in Elixir. In addition to classical contract constructs such as preconditions and postconditions, the library permits e.g. to specify exceptional behaviour (i.e. which exceptions are thrown and under which conditions), and to associate timers with function calls to detect non-terminating or too slow computations. @InProceedings{Erlang22p40, author = {Sergio Pérez and Luis Eduardo Bueso de Barrio and Ignacio Ballesteros and Ángel Herranz and Julio Mariño and Clara Benac Earle and Lars-Åke Fredlund}, title = {Executable Contracts for Elixir}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {40--46}, doi = {10.1145/3546186.3549930}, year = {2022}, } Publisher's Version |
|
Fredlund, Lars-Åke |
Erlang '22: "Executable Contracts for Elixir ..."
Executable Contracts for Elixir
Sergio Pérez, Luis Eduardo Bueso de Barrio, Ignacio Ballesteros, Ángel Herranz, Julio Mariño, Clara Benac Earle, and Lars-Åke Fredlund (Universitat Politècnica de València, Spain; Universidad Politécnica de Madrid, Spain) This paper introduces a new library for implementing executable contracts in Elixir. In addition to classical contract constructs such as preconditions and postconditions, the library permits e.g. to specify exceptional behaviour (i.e. which exceptions are thrown and under which conditions), and to associate timers with function calls to detect non-terminating or too slow computations. @InProceedings{Erlang22p40, author = {Sergio Pérez and Luis Eduardo Bueso de Barrio and Ignacio Ballesteros and Ángel Herranz and Julio Mariño and Clara Benac Earle and Lars-Åke Fredlund}, title = {Executable Contracts for Elixir}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {40--46}, doi = {10.1145/3546186.3549930}, year = {2022}, } Publisher's Version |
|
Grigore, Radu |
Erlang '22: "InfERL: Scalable and Extensible ..."
InfERL: Scalable and Extensible Erlang Static Analysis
Ákos Hajdu, Matteo Marescotti, Thibault Suzanne, Ke Mao, Radu Grigore, Per Gustafsson, and Dino Distefano (Meta, UK) In this paper we introduce InfERL, an open source, scalable, and extensible static analyzer for Erlang, based on Meta’s Infer tool. InfERL has been developed at WhatsApp and it is deployed to regularly scan WhatsApp server’s Erlang code- base, detecting reliability issues and checking user-defined properties. The paper describes the Erlang specific technical challenges we had to address and our design choices. We also report on our experience in running InfERL on Erlang code at scale, supporting the messaging app used everyday by over 2 billion people. @InProceedings{Erlang22p33, author = {Ákos Hajdu and Matteo Marescotti and Thibault Suzanne and Ke Mao and Radu Grigore and Per Gustafsson and Dino Distefano}, title = {InfERL: Scalable and Extensible Erlang Static Analysis}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {33--39}, doi = {10.1145/3546186.3549929}, year = {2022}, } Publisher's Version |
|
Gustafsson, Per |
Erlang '22: "InfERL: Scalable and Extensible ..."
InfERL: Scalable and Extensible Erlang Static Analysis
Ákos Hajdu, Matteo Marescotti, Thibault Suzanne, Ke Mao, Radu Grigore, Per Gustafsson, and Dino Distefano (Meta, UK) In this paper we introduce InfERL, an open source, scalable, and extensible static analyzer for Erlang, based on Meta’s Infer tool. InfERL has been developed at WhatsApp and it is deployed to regularly scan WhatsApp server’s Erlang code- base, detecting reliability issues and checking user-defined properties. The paper describes the Erlang specific technical challenges we had to address and our design choices. We also report on our experience in running InfERL on Erlang code at scale, supporting the messaging app used everyday by over 2 billion people. @InProceedings{Erlang22p33, author = {Ákos Hajdu and Matteo Marescotti and Thibault Suzanne and Ke Mao and Radu Grigore and Per Gustafsson and Dino Distefano}, title = {InfERL: Scalable and Extensible Erlang Static Analysis}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {33--39}, doi = {10.1145/3546186.3549929}, year = {2022}, } Publisher's Version |
|
Hajdu, Ákos |
Erlang '22: "InfERL: Scalable and Extensible ..."
InfERL: Scalable and Extensible Erlang Static Analysis
Ákos Hajdu, Matteo Marescotti, Thibault Suzanne, Ke Mao, Radu Grigore, Per Gustafsson, and Dino Distefano (Meta, UK) In this paper we introduce InfERL, an open source, scalable, and extensible static analyzer for Erlang, based on Meta’s Infer tool. InfERL has been developed at WhatsApp and it is deployed to regularly scan WhatsApp server’s Erlang code- base, detecting reliability issues and checking user-defined properties. The paper describes the Erlang specific technical challenges we had to address and our design choices. We also report on our experience in running InfERL on Erlang code at scale, supporting the messaging app used everyday by over 2 billion people. @InProceedings{Erlang22p33, author = {Ákos Hajdu and Matteo Marescotti and Thibault Suzanne and Ke Mao and Radu Grigore and Per Gustafsson and Dino Distefano}, title = {InfERL: Scalable and Extensible Erlang Static Analysis}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {33--39}, doi = {10.1145/3546186.3549929}, year = {2022}, } Publisher's Version |
|
Herranz, Ángel |
Erlang '22: "Executable Contracts for Elixir ..."
Executable Contracts for Elixir
Sergio Pérez, Luis Eduardo Bueso de Barrio, Ignacio Ballesteros, Ángel Herranz, Julio Mariño, Clara Benac Earle, and Lars-Åke Fredlund (Universitat Politècnica de València, Spain; Universidad Politécnica de Madrid, Spain) This paper introduces a new library for implementing executable contracts in Elixir. In addition to classical contract constructs such as preconditions and postconditions, the library permits e.g. to specify exceptional behaviour (i.e. which exceptions are thrown and under which conditions), and to associate timers with function calls to detect non-terminating or too slow computations. @InProceedings{Erlang22p40, author = {Sergio Pérez and Luis Eduardo Bueso de Barrio and Ignacio Ballesteros and Ángel Herranz and Julio Mariño and Clara Benac Earle and Lars-Åke Fredlund}, title = {Executable Contracts for Elixir}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {40--46}, doi = {10.1145/3546186.3549930}, year = {2022}, } Publisher's Version |
|
Klyuchnikov, Ilya |
Erlang '22: "eqWAlizer: Scaling Erlang ..."
eqWAlizer: Scaling Erlang Development at WhatsApp with Static Typing (Keynote)
Ilya Klyuchnikov (Meta Platforms, USA) In the last two years at WhatsApp we have developed eqWAlizer - a type-checker for Erlang AS IS - in style of Flow, Pyre, Hack. It’s already used in a significant part of our codebase. In this talk we overview the key eqWAlizer's design choices we made and explain the reasons behind them. Moreover, we'll report about the challenges of using Erlang in large code bases and how static typing has allowed us to scale development through providing fast signal to developers. Finally, we'll also present the lessons learned from enabling static typing for the code underpinning the largest messaging app in the world. @InProceedings{Erlang22p1, author = {Ilya Klyuchnikov}, title = {eqWAlizer: Scaling Erlang Development at WhatsApp with Static Typing (Keynote)}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {1--1}, doi = {10.1145/3546186.3552537}, year = {2022}, } Publisher's Version |
|
Mao, Ke |
Erlang '22: "InfERL: Scalable and Extensible ..."
InfERL: Scalable and Extensible Erlang Static Analysis
Ákos Hajdu, Matteo Marescotti, Thibault Suzanne, Ke Mao, Radu Grigore, Per Gustafsson, and Dino Distefano (Meta, UK) In this paper we introduce InfERL, an open source, scalable, and extensible static analyzer for Erlang, based on Meta’s Infer tool. InfERL has been developed at WhatsApp and it is deployed to regularly scan WhatsApp server’s Erlang code- base, detecting reliability issues and checking user-defined properties. The paper describes the Erlang specific technical challenges we had to address and our design choices. We also report on our experience in running InfERL on Erlang code at scale, supporting the messaging app used everyday by over 2 billion people. @InProceedings{Erlang22p33, author = {Ákos Hajdu and Matteo Marescotti and Thibault Suzanne and Ke Mao and Radu Grigore and Per Gustafsson and Dino Distefano}, title = {InfERL: Scalable and Extensible Erlang Static Analysis}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {33--39}, doi = {10.1145/3546186.3549929}, year = {2022}, } Publisher's Version |
|
Marescotti, Matteo |
Erlang '22: "InfERL: Scalable and Extensible ..."
InfERL: Scalable and Extensible Erlang Static Analysis
Ákos Hajdu, Matteo Marescotti, Thibault Suzanne, Ke Mao, Radu Grigore, Per Gustafsson, and Dino Distefano (Meta, UK) In this paper we introduce InfERL, an open source, scalable, and extensible static analyzer for Erlang, based on Meta’s Infer tool. InfERL has been developed at WhatsApp and it is deployed to regularly scan WhatsApp server’s Erlang code- base, detecting reliability issues and checking user-defined properties. The paper describes the Erlang specific technical challenges we had to address and our design choices. We also report on our experience in running InfERL on Erlang code at scale, supporting the messaging app used everyday by over 2 billion people. @InProceedings{Erlang22p33, author = {Ákos Hajdu and Matteo Marescotti and Thibault Suzanne and Ke Mao and Radu Grigore and Per Gustafsson and Dino Distefano}, title = {InfERL: Scalable and Extensible Erlang Static Analysis}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {33--39}, doi = {10.1145/3546186.3549929}, year = {2022}, } Publisher's Version |
|
Mariño, Julio |
Erlang '22: "Executable Contracts for Elixir ..."
Executable Contracts for Elixir
Sergio Pérez, Luis Eduardo Bueso de Barrio, Ignacio Ballesteros, Ángel Herranz, Julio Mariño, Clara Benac Earle, and Lars-Åke Fredlund (Universitat Politècnica de València, Spain; Universidad Politécnica de Madrid, Spain) This paper introduces a new library for implementing executable contracts in Elixir. In addition to classical contract constructs such as preconditions and postconditions, the library permits e.g. to specify exceptional behaviour (i.e. which exceptions are thrown and under which conditions), and to associate timers with function calls to detect non-terminating or too slow computations. @InProceedings{Erlang22p40, author = {Sergio Pérez and Luis Eduardo Bueso de Barrio and Ignacio Ballesteros and Ángel Herranz and Julio Mariño and Clara Benac Earle and Lars-Åke Fredlund}, title = {Executable Contracts for Elixir}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {40--46}, doi = {10.1145/3546186.3549930}, year = {2022}, } Publisher's Version |
|
Michala, Anna Lito |
Erlang '22: "CAEFL: Composable and Environment ..."
CAEFL: Composable and Environment Aware Federated Learning Models
Ruomeng (Cocoa) Xu, Anna Lito Michala, and Phil Trinder (University of Glasgow, UK) Federated Learning allows multiple distributed agents to contribute to a global machine learning model. Each agent trains locally and contributes to a global model by sending gradients to a central parameter server. The approach has some limitations: 1) some events may only occur in the local environment, so a global model may not perform as well as a specialized model; 2) changes in the local environment may require an agent to use some dedicated model, that is not available in a single global model; 3) a single global model approach is unable to derive new models from dealing with complex environments. This paper proposes a novel federated learning approach, CAEFL, that is local environment aware and composes new dedicated models for new complex environments. CAEFL is implemented in Elixir to exploit transparent distribution, pattern matching, and hot-code-swapping. Pattern matching is used to transform environment sensors data to corresponding tags and aggregate data with the same environment tags on agents. It is also used on parameter server to match client’s push/pull request for these tagged models. It enables a declarative way for environment aware federated learning approach. CAEFL outperforms state of the art federated learning by 7-10% for the MNIST dataset and 2% for the FashionMNIST dataset in specific and complex environments. @InProceedings{Erlang22p9, author = {Ruomeng (Cocoa) Xu and Anna Lito Michala and Phil Trinder}, title = {CAEFL: Composable and Environment Aware Federated Learning Models}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {9--20}, doi = {10.1145/3546186.3549927}, year = {2022}, } Publisher's Version |
|
Pérez, Sergio |
Erlang '22: "Executable Contracts for Elixir ..."
Executable Contracts for Elixir
Sergio Pérez, Luis Eduardo Bueso de Barrio, Ignacio Ballesteros, Ángel Herranz, Julio Mariño, Clara Benac Earle, and Lars-Åke Fredlund (Universitat Politècnica de València, Spain; Universidad Politécnica de Madrid, Spain) This paper introduces a new library for implementing executable contracts in Elixir. In addition to classical contract constructs such as preconditions and postconditions, the library permits e.g. to specify exceptional behaviour (i.e. which exceptions are thrown and under which conditions), and to associate timers with function calls to detect non-terminating or too slow computations. @InProceedings{Erlang22p40, author = {Sergio Pérez and Luis Eduardo Bueso de Barrio and Ignacio Ballesteros and Ángel Herranz and Julio Mariño and Clara Benac Earle and Lars-Åke Fredlund}, title = {Executable Contracts for Elixir}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {40--46}, doi = {10.1145/3546186.3549930}, year = {2022}, } Publisher's Version |
|
Randtoul, Aidan |
Erlang '22: "A Reliability Benchmark for ..."
A Reliability Benchmark for Actor-Based Server Languages
Aidan Randtoul and Phil Trinder (University of Glasgow, UK) Servers are a key element of current IT infrastructures, and must often deal with large numbers of concurrent requests. Reliability is crucial as any disruption is extremely costly. Some important reliable servers are implemented in actor languages/libraries that provide process isolation and supervision. Reliability benchmarks model fault scenarios to measure the reliability characteristics of systems. The paper presents the design and implementation of a new reliability benchmark for actor-based server languages: Supervised Communicating Processes (SCP). SCP extends an existing server concurrency benchmark by supervising server actors/processes. We outline Erlang and Scala/Akka SCP implementations, and an associated fault injector. We compare the reliability characteristics of Erlang and Scala/Akka for server-style computations using SCP in the following four main experiments. (1) Progressive permanent failures, where a percentage of server processes fail permanently. (2) Recovery from different percentages (0% .. 20%) of failures occurring uniformly, randomly, or in bursts, and with a range of supervisor/supervisee ratios. (3) Comparing how the Erlang and Scala/Akka SCPs handle burst, random and uniform failure patterns. (4) Comparing how Erlang and Scala/Akka handle server actor/process faults with different fault patterns and failure rates. @InProceedings{Erlang22p21, author = {Aidan Randtoul and Phil Trinder}, title = {A Reliability Benchmark for Actor-Based Server Languages}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {21--32}, doi = {10.1145/3546186.3549928}, year = {2022}, } Publisher's Version |
|
Sugiyama, Marc |
Erlang '22: "Troubleshooting the Performance ..."
Troubleshooting the Performance of a Large Erlang System
Nikos Tsikoudis and Marc Sugiyama (Datometry, USA; Nova Labs, USA) This paper discusses our experiences troubleshooting and optimizing Hyper-Q, an enterprise software written in Erlang. Hyper-Q implements database virtualization that translates the SQL queries of an existing application to a new database system and converts the data returned by the database system to the data representation expected by the existing application. Using a real world example, we present effective troubleshooting techniques to identify poor-performing code and general refactorings and optimizations that can improve the performance of other Erlang systems. @InProceedings{Erlang22p2, author = {Nikos Tsikoudis and Marc Sugiyama}, title = {Troubleshooting the Performance of a Large Erlang System}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {2--8}, doi = {10.1145/3546186.3549926}, year = {2022}, } Publisher's Version |
|
Suzanne, Thibault |
Erlang '22: "InfERL: Scalable and Extensible ..."
InfERL: Scalable and Extensible Erlang Static Analysis
Ákos Hajdu, Matteo Marescotti, Thibault Suzanne, Ke Mao, Radu Grigore, Per Gustafsson, and Dino Distefano (Meta, UK) In this paper we introduce InfERL, an open source, scalable, and extensible static analyzer for Erlang, based on Meta’s Infer tool. InfERL has been developed at WhatsApp and it is deployed to regularly scan WhatsApp server’s Erlang code- base, detecting reliability issues and checking user-defined properties. The paper describes the Erlang specific technical challenges we had to address and our design choices. We also report on our experience in running InfERL on Erlang code at scale, supporting the messaging app used everyday by over 2 billion people. @InProceedings{Erlang22p33, author = {Ákos Hajdu and Matteo Marescotti and Thibault Suzanne and Ke Mao and Radu Grigore and Per Gustafsson and Dino Distefano}, title = {InfERL: Scalable and Extensible Erlang Static Analysis}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {33--39}, doi = {10.1145/3546186.3549929}, year = {2022}, } Publisher's Version |
|
Trinder, Phil |
Erlang '22: "A Reliability Benchmark for ..."
A Reliability Benchmark for Actor-Based Server Languages
Aidan Randtoul and Phil Trinder (University of Glasgow, UK) Servers are a key element of current IT infrastructures, and must often deal with large numbers of concurrent requests. Reliability is crucial as any disruption is extremely costly. Some important reliable servers are implemented in actor languages/libraries that provide process isolation and supervision. Reliability benchmarks model fault scenarios to measure the reliability characteristics of systems. The paper presents the design and implementation of a new reliability benchmark for actor-based server languages: Supervised Communicating Processes (SCP). SCP extends an existing server concurrency benchmark by supervising server actors/processes. We outline Erlang and Scala/Akka SCP implementations, and an associated fault injector. We compare the reliability characteristics of Erlang and Scala/Akka for server-style computations using SCP in the following four main experiments. (1) Progressive permanent failures, where a percentage of server processes fail permanently. (2) Recovery from different percentages (0% .. 20%) of failures occurring uniformly, randomly, or in bursts, and with a range of supervisor/supervisee ratios. (3) Comparing how the Erlang and Scala/Akka SCPs handle burst, random and uniform failure patterns. (4) Comparing how Erlang and Scala/Akka handle server actor/process faults with different fault patterns and failure rates. @InProceedings{Erlang22p21, author = {Aidan Randtoul and Phil Trinder}, title = {A Reliability Benchmark for Actor-Based Server Languages}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {21--32}, doi = {10.1145/3546186.3549928}, year = {2022}, } Publisher's Version Erlang '22: "CAEFL: Composable and Environment ..." CAEFL: Composable and Environment Aware Federated Learning Models Ruomeng (Cocoa) Xu, Anna Lito Michala, and Phil Trinder (University of Glasgow, UK) Federated Learning allows multiple distributed agents to contribute to a global machine learning model. Each agent trains locally and contributes to a global model by sending gradients to a central parameter server. The approach has some limitations: 1) some events may only occur in the local environment, so a global model may not perform as well as a specialized model; 2) changes in the local environment may require an agent to use some dedicated model, that is not available in a single global model; 3) a single global model approach is unable to derive new models from dealing with complex environments. This paper proposes a novel federated learning approach, CAEFL, that is local environment aware and composes new dedicated models for new complex environments. CAEFL is implemented in Elixir to exploit transparent distribution, pattern matching, and hot-code-swapping. Pattern matching is used to transform environment sensors data to corresponding tags and aggregate data with the same environment tags on agents. It is also used on parameter server to match client’s push/pull request for these tagged models. It enables a declarative way for environment aware federated learning approach. CAEFL outperforms state of the art federated learning by 7-10% for the MNIST dataset and 2% for the FashionMNIST dataset in specific and complex environments. @InProceedings{Erlang22p9, author = {Ruomeng (Cocoa) Xu and Anna Lito Michala and Phil Trinder}, title = {CAEFL: Composable and Environment Aware Federated Learning Models}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {9--20}, doi = {10.1145/3546186.3549927}, year = {2022}, } Publisher's Version |
|
Tsikoudis, Nikos |
Erlang '22: "Troubleshooting the Performance ..."
Troubleshooting the Performance of a Large Erlang System
Nikos Tsikoudis and Marc Sugiyama (Datometry, USA; Nova Labs, USA) This paper discusses our experiences troubleshooting and optimizing Hyper-Q, an enterprise software written in Erlang. Hyper-Q implements database virtualization that translates the SQL queries of an existing application to a new database system and converts the data returned by the database system to the data representation expected by the existing application. Using a real world example, we present effective troubleshooting techniques to identify poor-performing code and general refactorings and optimizations that can improve the performance of other Erlang systems. @InProceedings{Erlang22p2, author = {Nikos Tsikoudis and Marc Sugiyama}, title = {Troubleshooting the Performance of a Large Erlang System}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {2--8}, doi = {10.1145/3546186.3549926}, year = {2022}, } Publisher's Version |
|
Xu, Ruomeng (Cocoa) |
Erlang '22: "CAEFL: Composable and Environment ..."
CAEFL: Composable and Environment Aware Federated Learning Models
Ruomeng (Cocoa) Xu, Anna Lito Michala, and Phil Trinder (University of Glasgow, UK) Federated Learning allows multiple distributed agents to contribute to a global machine learning model. Each agent trains locally and contributes to a global model by sending gradients to a central parameter server. The approach has some limitations: 1) some events may only occur in the local environment, so a global model may not perform as well as a specialized model; 2) changes in the local environment may require an agent to use some dedicated model, that is not available in a single global model; 3) a single global model approach is unable to derive new models from dealing with complex environments. This paper proposes a novel federated learning approach, CAEFL, that is local environment aware and composes new dedicated models for new complex environments. CAEFL is implemented in Elixir to exploit transparent distribution, pattern matching, and hot-code-swapping. Pattern matching is used to transform environment sensors data to corresponding tags and aggregate data with the same environment tags on agents. It is also used on parameter server to match client’s push/pull request for these tagged models. It enables a declarative way for environment aware federated learning approach. CAEFL outperforms state of the art federated learning by 7-10% for the MNIST dataset and 2% for the FashionMNIST dataset in specific and complex environments. @InProceedings{Erlang22p9, author = {Ruomeng (Cocoa) Xu and Anna Lito Michala and Phil Trinder}, title = {CAEFL: Composable and Environment Aware Federated Learning Models}, booktitle = {Proc.\ Erlang}, publisher = {ACM}, pages = {9--20}, doi = {10.1145/3546186.3549927}, year = {2022}, } Publisher's Version |
21 authors
proc time: 4.28