Elixir distributed programming - measuring scalability

Hi guys.

I want to test scalability of Elixir. I have 2-3 computers in one network and I want to run same program in these computers and measure scalability. (I also need some load balancer right ?)

e.g.:
One computer make “test” in 60 seconds, but if I add another pc, it will take only 35sec, with 3 computers it will take only 25sec)
or
One computer can “make” 1000 calculation in one minute. Two computer can make 1800 calculation in one minute.

Can somebody write some readme me to this ? Or, is something on web ?

thanks

1 Like

FYI: "Our goal is that applications run 0.75 x N times faster on an N-core computer. "

How we program multicores - Joe Armstrong

i.e. your expectations should cap out at

Once you replace core with computer the network overhead will start to take its toll.

1 Like

And I want to measure that.

1 Like

I would start here: Distributed tasks and configuration.

AFAIK the BEAM VM does some “load balancing”.

See also: ExMessenger Exercise: Understanding Nodes in Elixir.

1 Like

Do keep in mind the things that Elixir is good at. If you’re trying to predict the weather, there are languages that will get you the most out of your CPU power better. If you’re trying to do something IO heavy, Elixir can be a good choice.

What kind of work are you trying to have distributed?

2 Likes

It doesn’t matter. I just need to make some benchmarks (for one work project), to show, how good Elixir is

1 Like

Tools are built for purposes. What purpose are you trying to use Elixir? It matters.

2 Likes

I can be some matematical calculation. Something, what can be easily distributed.

1 Like

If your goal is to show that Elixir is an excellent language for writing distributed mathematical calculations, you’re going to fail at that goal. It is not. This isn’t because it’s bad at being distributed, but because it’s bad at doing high performance numerical calculations.

It can be GREAT at coordinating high performance numerical calculations, and the work and data necessary to make that happen. So for example at Cargosense we run a lot of machine learning stuff in which all the heavy lifting is done in C libraries wrapped by Python. But we use Elixir to coordinate those jobs, get the jobs their data, and manage their lifecycle.

4 Likes