erlangscalabilityerlang-portserlang-driverjinterface

What is the best way of doing computationally intensive tasks in Erlang w/o scalability sacrifices?


Erlang Interoperability guide discusses different interoperability mechanisms. Here are my conclusions:

Some advocate the use of OpenCL basically delegating resource hungry computations to GPU while letting the Erlang emulator to own the CPU. This sounds fantastic but then you have a requirement on your servers having a suitable GPU.

Using JInterface and communicating with a Java process that spawns a thread for every request might be an option.

So has anyone come across a solution that has been tested in practise and turned out to work well?


Solution

  • Actually all solutions take place. As I've been working tightly with some of them I could say the following:

    Bearing in mind above considerations you decide the way that fits your task best.