Energy efficiency in computing has emerged as a critical concern due to escalating environmental and financial costs, particularly in the context of cluster computing, where there is an ever-increasing software workload. Achieving meaningful improvements in energy efficiency requires a comprehensive understanding of the interplay between hardware and software. This research investigates how algorithmic optimisations, language choice, and parallelisation strategies influence energy efficiency and how hardware-level strategies such as underclocking, overclocking, cooling, and on-demand computing can further impact energy usage. A set of measures that can be used generally to show the impact trade-off of power and performance are defined, including the Energy Factor (EF) and a new Efficiency–Performance Score (EPS). Validation experiments on a custom-built Raspberry Pi Bramble cluster used workloads like Monte Carlo Pi simulations in Python and C. Energy and performance trade-offs were evaluated using the Energy Factor and Efficiency–Performance Score on a small example cluster to validate the approach. Results show parallelisation greatly improves energy efficiency over serial execution. Cooling slightly boosts speed under heavy loads but increases total energy use. Perhaps counter-intuitively, underclocking actually raises total energy consumption, while overclocking reduces it. Language choice also impacts efficiency, with C offering notable energy savings over Python. The findings support the hypothesis that software optimisation alone can improve energy efficiency, but the most impactful results are achieved when both software and hardware strategies are jointly considered. These insights contribute to the design of future energy-aware computing systems and provide a foundation for sustainable, high-performance computing architectures.
McStay et al. (Tue,) studied this question.