Piotr studied Computer Science at AGH UST and now works there as a software developer working on parallel evolutionary computations in Erlang. As a continuous learner, he likes to discover new things and concepts, often in the areas of programming languages and new technologies. In his free time he learns about AI and robotics from MOOCs.
Erlang is widely recognized for its scalability characteristics, both horizontal i.e. by adding more machines, and vertical i.e. by increasing the computational capabilities of a single machine.
Many believe that an average Erlang program should just run N times faster on an N core processor. From our experience, it holds true but only as long as N <= ~16.
In this talk, we would like to tell you about the efforts, problems and challenges we encountered while trying to speed up our program on a 64-core machine. As a case study, we will introduce a sequential agent-based evolutionary algorithm and present several computation models used in its parallelization.