Parallel Algorithms

After characterizing various sorting algorithms (see Sorting) I decided to pick an algorithm and use it to characterize how well Erlang performs distributed programming. Erlang provides a way to essentially fork and join a workload via rpc:pmap.

rpc:pmap()

Questions

  • Does Erlang follow Amdahl’s Law?
  • What are the constant time factors for Erlang?
  • How easy is it to use?

Analysis

Jupyter Notebook

Summary

Parallelization of an embarrassingly parallel problem is certainly easy to do in Erlang, though the benefits of spreading a calculation across processors diminishes after the 2nd or 3rd processor.

  • Does Erlang follow Amdahl’s Law? (Yes)
  • What are the constant time factors for Erlang? (I didn’t measure them but they are high)
  • How easy is it to use? (Yes, very easy to use)