Scaling and distribution of Particle Swarm Optimization Algorithms on Microsoft Azure

University essay from Blekinge Tekniska Högskola/Institutionen för programvaruteknik

Abstract: Introduction. Particle Swarm Optimization (PSO) is a heavy-duty algorithm that is used to identify the optimum (maximum or minimum) solution of a formula with multiple unknown factors. PSO algorithms are used widely for various optimization problems, and all face the same challenge. Being iterative algorithms that in each iteration perform a mathematical formula, PSO algorithms demand a high capacity of physical resources and are often time consuming. This combination is even more challenging when executing a PSO algorithm on the cloud since expensive resources used over a long time come at a high cost and cheaper resources struggle to perform the task. To avoid high costs and achieve the best possible performance, one needs to choose the correct computational resources and configure them accordingly. Objectives. The goal of this study is to identify the optimum tools and configurations to execute a PSO algorithm on Microsoft’s cloud platform, Azure. To achieve that, we choose the Azure resources that are designed to perform deterministic tasks and to be distributed and scaled automatically by Azure. Those are Azure Functions and Azure Durable Functions. We experiment with various configurations, and we collect and compare the results to draw conclusions about which combination performs best. Methods. To identify which combination of Azure resources and configuration performs best in the cloud (Microsoft Azure), we perform experiments and collect metrics which we then aggregate and compare with each other, as well as with the metrics collected by executing the same combination on-premises. During those experiments, we execute the same PSO algorithm using the same variables, the values of which were calculated before performing the experiments. Results. Upon performing the experiments, we collected the results of each experiment, which consist of the time it took to execute, the number of zeros (beyond the decimal point) found in the result, as well as the Global Priority percentage which lead to that result. The results indicate differences both between the on-premises and on-cloud execution and between the various configurations and Azure resources. Conclusion. We succeeded in finding a combination using Azure Durable Functions with the appropriate configuration, which vastly outperforms all others. Concluding, the outcome of this study is that heavy-duty algorithms, such as PSO, can indeed be executed on Azure, with significantly improved performance, when using the right configuration and exploiting the resources to their whole extent. Additionally, we learned that an appropriately configured Azure resource can even outperform an identical execution on-premises (using equal resources).

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)