Nowadays, with the development of increasingly better computer hardware we can witness an ever-growing need for faster execution of algorithms. The basis of this thesis is an attempt to speed-up the evolutionary algorithm CMA-ES using various parallel approaches. Firstly we present the foundations of evolutionary algorithms and describe in detail each step of the algorithm CMA-ES. In the following chapters we present each parallel approach and describe the procedure of parallelizing the algorithm with their use. We outline the main particularities of each parallel approach and present various problems which we encountered in their application. In addition, we describe a variety of optimizations which can be used to improve the effectiveness of each parallel approach. In the last part of the thesis we present and analyze the results of our measurements in different contexts. We compare the execution times of individual parallelized algorithm steps while running the algorithm with different input parameters. Afterwards we compare the execution times of the serial and parallel implementations of the algorithm and highlight some general findings.
|