Show simple item record

Files in this item

Thumbnail

Item metadata

dc.contributor.advisorBrown, Christopher Mark
dc.contributor.advisorBrady, Edwin
dc.contributor.authorAlguwaifli, Yasir
dc.coverage.spatial368en_US
dc.date.accessioned2023-06-05T11:11:42Z
dc.date.available2023-06-05T11:11:42Z
dc.date.issued2023-06-14
dc.identifier.urihttps://hdl.handle.net/10023/27746
dc.description.abstractControlling energy consumption has always been a necessity in many computing contexts as the resources that provide said energy is limited, be it a battery supplying power to an SBC/SOC, an embedded system, a drone, a phone, or another low/limited energy device, or a large cluster of machines that process extensive computations requiring multiple resources, such as a NUMA system. The need to accurately predict the energy consumption of such devices is crucial in many fields. Furthermore, different types of languages, e.g. Haskell and C/C++, exhibit different behavioural properties, such as strict vs. lazy evaluation, garbage collection vs. manual memory management, and different parallel runtime behaviours. In addition most software developers do not write software with energy consumption as a goal, this is mostly due to the lack of generalised tooling to help them optimise and predict energy consumption of their software. Therefore, the need to predict energy consumption in a generalised way for different types of languages that do not rely on specific program properties is needed. We construct several statistical models based on parallel benchmarks using regression modelling such as Non-negative Least Squares (NNLS), Random Forests, and Lasso and Elastic-Net Regularized Generalized Linear Models (GLMNET) from two different programming paradigms, namely Haskell and C/C++. Furthermore, the assessment of the statistical models is made over a complete set of benchmarks that behave similarly in both Haskell and C/C++. In addition to assessing the statistical models, we develop meta-heuristic algorithms to predict the energy consumed in parallel benchmarks from Haskell's Nofib and C/C++'s PARSEC suites for a range of implementations in PThreads, OpenMP and Intel's Threading Building Blocks (TBB). The results show that benchmarks with high scalability and performance in parallel execution can have their energy consumption predicted and even optimised by selecting the best configuration for the desired results. We also observe that even in degraded performance benchmarks, high core count execution can still be predicted to the nearest configuration to produce the lowest energy sample. Additionally, the meta-heuristic technique can be employed using a language- and architecture-agnostic approach to energy consumption prediction rather than requiring hand-tuned models for specific architectures and/or benchmarks. Although meta-heuristic sampling provided acceptable levels of accuracy, the combination of the statistical model with the meta-heuristic algorithms proved to be challenging to optimise. Except for low to medium accuracy levels for the Genetic algorithm, combining meta-heuristics demonstrated limited to poor accuracy.en_US
dc.description.sponsorship"Also, I would like to thank my sponsor for the Saudi Arabian Ministry of Education represented by the Saudi Arabian Cultural Bureau and my employer, the University of Imam Abdulrahman Bin Faisal. The support I received from all parties in my journey finishing this thesis has been extraordinarily generous."--Acknowledgementsen
dc.language.isoenen_US
dc.rightsCreative Commons Attribution-ShareAlike 4.0 International*
dc.rights.urihttp://creativecommons.org/licenses/by-sa/4.0/*
dc.subjectProgramming languages energyen_US
dc.subjectProgramming languagesen_US
dc.subjectParallel energyen_US
dc.subjectParallelismen_US
dc.subjectFunctional programmingen_US
dc.subjectHaskellen_US
dc.subjectC/C++en_US
dc.subject.lccQA76.62A64
dc.subject.lcshFunctional programming (Computer science)en
dc.subject.lcshProgramming languages (Electronic computers)en
dc.subject.lcshHaskell (Computer program language)en
dc.titleModelling energy consumption in multi-core systems using meta-heuristics and statistical modellingen_US
dc.typeThesisen_US
dc.type.qualificationlevelDoctoralen_US
dc.type.qualificationnamePhD Doctor of Philosophyen_US
dc.publisher.institutionThe University of St Andrewsen_US
dc.identifier.doihttps://doi.org/10.17630/sta/494


The following licence files are associated with this item:

    This item appears in the following Collection(s)

    Show simple item record

    Creative Commons Attribution-ShareAlike 4.0 International
    Except where otherwise noted within the work, this item's licence for re-use is described as Creative Commons Attribution-ShareAlike 4.0 International