Speaker

Benjamin Philip

Benjamin Philip

Elixir and FP Enthusiast, Linux user, Highschooler

Bengaluru, India

Actions

Benjamin is an Elixir and Functional Programming enthusiast, and the maintainer of Erlang's Apache Arrow implementation. Though not a core contributor, he also frequently contributes to the Nx and Livebook projects with the occasional contributions to Hexpm and Hex. Being a 16 year old high schooler, he does not have any professional programming experience but he tries to contribute to Opensource whenever time permits.

In his free time he likes to read Non Fiction and Fantasy, listen to 70s and 80s music (and additionally grumble about how nobody at school shares his taste in music) and crack terrible jokes. Beware. He's bit of a Linux and Emacs zealot.

Optimizing Sequential Erlang

While implementing Apache Arrow for Erlang recently, I found handling the intensive parts in native code slow, so I wrote it in pure Erlang. It had to be performant because it would support Erlang's Telemetry implementation - vital to any BEAM web app.

With my initial code too slow, I had to learn a black art: optimizing sequential Erlang.

But it was easy to find optimizations to make, even easier to over optimize, and painfully easy to optimize the wrong thing completely. I realized that I had 2 aspects to learn:

First, making a single optimization: How do I choose the right knob to turn? By how much? Did I get the results I expected? Is it maintainable?

Second, optimizing the system as a whole: Which bottlenecks to focus on and by how much? How do I stay pragmatic?

Let me share what I learned:

- The processes of performance optimization.
- Applying CS theory to design optimizations.
- The specifics of profiling, optimizing and hypothesizing for the BEAM

Exploring the Performance Characteristics of Nx

The Nx project brings Elixir to the domain of AI & ML. It makes a very large promise: to leverage the BEAM in ML workflows, enabling us to run ML models concurrently, distributed over multiple nodes, as well as partitioned across
several GPUs.

Closer inspection reveals that Nx is walking a tightrope: its computations are powered by NIFs, whose scheduling is a tricky business, and GPUs, which support a very small number of parallel processes. This raises the question: how is Nx providing the high throughput that it boasts of?

Nx answers this question with "Servings" and "Batches", ways to batch requests together to reduce and distribute the calls to the NIF and GPU. But how exactly does that work? What trade-offs are we making by batching requests?

In this talk we will examine Nx's Servings, how it addresses the problem of scheduling, the trade-offs and the performance characteristics of its approach, as well as what are the other constraints when running an ML service.

Contributing to the Erlang Ecosystem: My Journey from Individual Contributor to Maintainer

Lately the Erlang Ecosystem has grown to address many new domains. But is its community growing enough to support it? My experience as a new contributor may shed light on this.

I'm a 16 year old student who started contributing to the Livebook, Hexpm and Nx projects at 14. Since then I've grown from being a raw newbie to receiving funding from The EEF to work on packages that will support Erlang's telemetry
implementation.

Join me as I talk about my challenging transition and see how I:

- overcame my fear of the opensource community
- learned to work with other members
- found more meaningful ways to contribute
- learned to balance my contributions with my other priorities

If you're new to the community, you'll learn how to get started and grow in the community - even if you have as little experience as i did.

Maintainers will see how the community helped me to make valuable contributions, how it got in my way, and how my experiences can help their projects.

Benjamin Philip

Elixir and FP Enthusiast, Linux user, Highschooler

Bengaluru, India

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top