It seems well established that many factors influence overall system power consumption performance. Some of these factors, including CPU core frequencies, GPU characteristics, and memory having been considered in [
3,
4,
5,
6]. Other factors have also been identified, such as operating system build configuration options and kernel tintification [
7]; and factors associated with the servicing of network traffic across Ethernet and WiFi [
8,
9]. Furthermore, many studies have considered the early generations of Raspberry Pi models and their power consumption characteristics, in isolation or as the core components within homogeneous and heterogeneous clusters, for example, [
5,
10,
11]. In addition to this, the challenge of capturing accurate high precision and high-resolution power measurements without using expensive hardware has also been the topic of the research [
12]. Addressing the challenge concerning the storage and transmission of sampled power consumption measurements using low-cost hardware has also been the focus of several works [
12,
13,
14,
15]. Attempting to address the deficit between the resolution that hardware-based performance monitors offer, through their associated performance counters, with the resolution associated with software-based performance monitoring was considered by Fieni, Rouvoy, and Seinturier in [
16].
However, previous studies have failed to isolate from their results the effect of idle power and the broad distributional characteristics associated with those variables. More importantly, prior work has not considered power consumption distribution characteristics and their superposition from more well-behaved distributions. Furthermore, the Raspberry Pi 4 Model B, the latest single-board computer within the Raspberry Pi family, has seen little concentration concerning its power consumption characteristics.
Therefore, this study’s primary goal was to assess the idle power characteristics associated with the latest generation of Raspberry Pi, the Raspberry Pi4 Model B. More importantly, our goal was to assess the inner structure of the power consumption distributions associated with the Raspberry Pi4 Model B, stripped back and powered on bare-metal, as well as considering an out-of-box distribution of the Linux operating system. We aimed to model power consumption by considering sub-distributional structure alongside core CPU frequency effects, bare-metal effects, and the effects associated with an out-of-box operating system.
Related Work
Specifically focusing on the Raspberry Pi3 generation of single board computers, the work of Paniego et al. in [
17] considers architectural level performance counters in an attempt to identify a minimal set of counters that together explain a maximal proportion of the variance associated with power consumption on the Raspberry Pi3. Their models are linear regression-based with performance counter independent variables such as processor cycles, instructions completed, completed load/store instructions, branch prediction/misprediction, cache miss rates, and hardware interrupts, for example. Power consumption measurements are captured by integrating an INA219 current sense amplifier (Texas Instruments, Dallas, TX, USA), which is sampled using the Arduino UNO development board (Arduino, Somerville, MA, USA). Model building is dependent on the benchmark applications comprising the NAS [
18], RODINIA [
19], and LINPACK [
20] benchmark suites. Performance counter observations are captured using the performance application programming interface (PAPI) [
21]. Their results do not present any descriptive overview of the power consumption distributions associated with the benchmark applications analysed, although ranges of power consumption can be loosely estimated from inspection of inline bar charts. Their results would suggest that all applications analysed had power consumption magnitudes in the range of between 2 W and 3 W. Their main result is the communication of a linear regression model and the differences between real and model estimations.
Considering the effect of overclocking and underclocking on Raspberry Pi power consumption, the work of Astudillo-Salinas, Barrera-Salamea, Vázquez-Rodas, and Solano-Quinde in [
3] focus on those effects associated with CPU, GPU, and SDRAM. Their experimental platform consisting of a Raspberry Pi B, one of the first Raspberry Pi boards to be manufactured, and a MAX471 sensor module (Maxim Integrated, San Jose, CA, USA) [
22] for the capturing of power measurements. In addition to assessing underclocking, Astudillo-Salinas et al. assess the power consumption of the Raspberry Pi across multiple Linux operating system distributions, as well as the powering down of HDMI and Ethernet. Their results would suggest that irrespective of operating system, that idle power consumption of the Raspberry Pi B is approximately
W. The powering down of HDMI results in a decrease in power consumption in the order of
, while disconnecting the Ethernet cable reduces power consumption by approximately
relative to the idle power of
W. On inspection of their findings, negligible effects were observed in respect to underclocking of SDRAM. Their results also suggest that CPU underclocking results in a maximum reduction in the order of
W of of power irrespective of operating system. With respect to GPU power consumption, underclocking results in an average saving of approximately
W.
Leading on from work by Paniego et al. in [
17], Paniego et al. in [
23] expand on their previous findings and consider the power consumption characteristics of a Raspberry Pi3
generation of board. Their analysis details the differences in power consumption between the Raspberry Pi3 and Raspberry Pi3
, including the differences based on the number of threads executed. Their findings suggest increased power consumption trends for the Raspberry Pi3
compared to the Raspberry Pi3 board. Furthermore, the effect from parallelism, as measured by the number of threads, shows an increase in power consumption levels progressing from single-threaded execution, dual threaded, to quad threaded. Their work also considers the effect on power consumption associated with processor underclocking. Although the assessment of the effect of parallelism is considered at the application level, the effect of implicit application instruction-level parallelism is not assessed. No detailed descriptive overview of power consumption distribution characteristics are provided, and in respect to regression model parameter estimates, no detailed overview of standard errors of regression coefficients and their significance can be found. Interestingly though, the work of Paniego et al. in both [
17,
23] suggest that architectural level performance counters, and the degree of inherent parallelism, are parameters that account for a proportion of the variation in power consumption levels of applications running on Raspberry Pi generation boards.
More recently; Paniego et al. in [
24] build on their previous work communicated within [
17,
23], and consider alternative models to the typical multiple linear regression analysis. Their addition includes machine learning techniques such as support vector regression, Gaussian regression, and kernel ridge regression to build power consumption models. Their results indicate that support vector regression outperforms all other models regarding mean error reduction, although the time to train such a model is in the order of 56 times larger in contrast to multiple regression.
Interestingly, and although cited within [
17], Lee and Brooks in [
25] have suggested that modelling of power consumption should consider non-linearity within the specification. At this stage of the sequence of publications by Paniego et al., the assessment of non-linearity in their model parameters has not been communicated. More generally, no assessment of the Gauss–Markov assumptions regarding their models has been communicated within the literature.
Suciu et al. in [
8] focus on the challenge of optimisation regarding the collection of environmental data using the Pycom triple-bearer enabled microcontroller, with the Pysense expansion shield, assessing the integration of both a Raspberry Pi and Waspmote for data processing. Although actual system configuration is hard to discover from the paper, their results suggest that the Raspberry Pi outperforms the Waspmote concerning a task consisting of module configuration, network connection and data transmission. In relation to power consumption, their results indicate that power consumption due to Ethernet traffic peaks at 70 mW, with WiFi power consumption ranging between
W and
W. Their results do not communicate if Ethernet or WiFi power consumption is above and beyond idle power and the power associated with other background processes.
Focusing solely on the Raspberry Pi and measuring power. Kaup, Gottschling, and Hausheer in [
4] present an overview of PowerPi, a power consumption measuring platform based on shunt sensing. Their experimental setup integrates Measurement Computing’s USB-1608FS-Plus digital acquisition device [
26] for measuring the voltage drop across the shunt. Kaup et al. measure the strength of association between CPU utilisation, as measured by the operating system and read from the /proc/stat file and power consumption. Their results identified the presence of a linear relationship between power consumption and CPU utilisation. The primary focus of the work was to develop a power consumption model of the Raspberry Pi. Our analysis of their model findings would suggest that the Raspberry Pi with
CPU utilisation has a predictive baseline power consumption of approximately
W, the model would suggest that increasing CPU utilisation to
increases this baseline power consumption by approximately
W. Their findings also include the modelling of Ethernet and WiFi when powered up and down.
Bekaroo and Santokhee undertook the benchmarking of the Raspberry Pi’s power consumption characteristics against desktop computers, laptop computers, tablet devices, and smartphones in [
27]. Their Raspberry Pi experimental platform was a Raspberry Pi 2 Model B, using an Eco-Worthy electronic watt-meter to capture power measurements. As the systems compared and contrasted were heterogeneous, a like-for-like comparison is hard to ascertain. The results of Bekaroo et al. show that Raspberry Pi 2 power consumption ranges between
W and
W, depending on load. For example, boot-up, downloading a 1 GB file, copying a 2 GB file, playing a game and listening to audio, and watching a video and playing a game through a browser resulting in the largest observed power usage. Their results confirm, possibly as expected, that the Raspberry Pi outperforms a desktop and laptop computer regarding the tasks assessed. However, a tablet device outperformed the Raspberry Pi in all assessments.
The lightweight and flexible nature of the Raspberry Pi development board has seen it form the basis of homogeneous clusters. For example, the work of Cloutier, Paradis and Weaver in [
11] present a framework for the instrumentation of a Raspberry Pi cluster for fine-grained power measurements, consisting of 25 Raspberry Pi Model 2Bs. The system-wide power consumption was measured using a WattsUpPro power meter (RC Electronics, Inc., Scotts Valley, CA, USA) [
28]. In addition, the power consumption of each node was measured using a custom-built current sense amplifier, consisting of a MCP6044 op-amp (Microchip Technology Inc., Chandler, AZ, USA) [
29] with the analog output of four nodes being sampled by a MCP3008 SPI analog-to-digital converter (Microchip Technology Inc., Chandler, AZ, USA) [
30], the results of which are transferred to a fifth cluster Raspberry Pi. They assess the power consumption characteristics associated with loads from the execution of two High-Performance Computing (HPC) benchmarks, namely, High-Performance Linpak (HPL) [
31] and STREAM [
32] a memory performance benchmark.
The work of Hajji and Tso in [
10] consider the power consumption profiles associated with the clustering of Raspberry Pi 2 Model B boards and the performance of the system in respect to real-time data analytics, an implementation of the edge cloud paradigm. Their experimental methodology considers both native environment performance and performance associated with system virtualisation. They assess baseline characteristics through the consideration of single nodes, as well as a 12 node cluster. Their experimental setup includes a MAGEEC energy measurement board [
33] to capture energy consumption observations. The results of Hajji et al. show that power consumption increases as job size increases. An inspection of inline time-series power consumption figures ([
10], Figures 13 and 14) suggest contrasting performance behaviour between their native environment and their virtualisation. Specifically, in regards to the Sort benchmark ([
10], Figure 14), the native environment time-series exhibits relative stationarity across workloads, being centred on approximately
J. In contrast, virtualisation performance decreases as workload size increases, with power consumption increasing from
J through to
J. A somewhat similar trend is evident concerning their Wordcount benchmark.
Similar to the work of Cloutier et al., Filho, Burlamaqui, Aroca and Goncalves in [
9] assess the power characteristics of a high-performance cluster composed of Raspberry Pi boards. They analyse two independent clusters, each consisting of seven Raspberry Pi’s; the first cluster’s nodes being Raspberry Pi Model 1 development boards, and the second cluster’s nodes being Raspberry Pi Model 2 development boards. In contrast to Cloutier et al., their work was not focused on integrating fine-grained power measurement circuitry. Filho et al. primarily focused on the performance characteristics of their cluster design compared to other cluster architecture types. The two Raspberry Pi clusters indicate that for a load consisting of HTTP requests, both Raspberry Pi clusters exhibited similar power consumption characteristics. Their findings rank both clusters first and third regarding performance when ranked by the number of transactions per second per watt.
Focusing on power consumption model building for single board computers, specifically, a Raspberry PI 2 model B; Ardito, Torchiano, Torino, and Abruzzi in [
6] present their findings from regressing power consumption on operating system resource usage profile. Their independent variables are listed as CPU usage and Ethernet usage. Their model assumes that idle power consumption of their DUT remains constant and is, in fact, the intercept within the subsequent regression. They rely upon Sysbench [
34] for generating CPU workload, and iPerf [
35] for network performance measurements. Power measurements are captured using a shunt methodology utilising a National Instruments USB-6210 Multifunction I/O device (National Instruments, Austin, TX, USA) [
36]. The USB-6210 has a 16-bit analog-to-digital converter allowing a sampling frequency of up-to 256 kS/s, although; Ardito et al. limit their sampling frame to 1kS/s due to storage limitations. Their results suggest that Raspberry Pi 2 idle power consumption averages approximately
W. With that said, there was evidence that the CPU throttled down from its rated 800 MHz to 633 MHz. Furthermore, their model suggests that CPU utilisation contributes between
W and
W associated with CPU utilisation between
and
, respectively. With respect to Ethernet, their results suggest that a change in power consumption was observed between loads of less than 50 Mb/s compared to loads exceeding 50 Mb/s, although tests for statistical differences between regression coefficients were not presented. Finally, the results of Ardito et al. confirm that workload type exhibit different power consumption characteristics.
More recently, Somarribas, Meneses, and Olivas in [
5] also consider the power consumption characteristics associated with a cluster of 18 Raspberry Pi3 generation of board. Specifically, they present a model of cluster power consumption resulting from the linear regression of power consumption on parameters such as the number of cores, nodes, CPU frequency, network limit, all coefficients from the compute-intensive applications found in MiniMD [
37], a computation-intensive benchmark simulating the interaction of atomic structures. Power consumption is captured using the Yokogawa WT210 power meter (Yokogawa, Sugar Land, TX, USA) [
38]. Their results present overall model coefficients, although no coefficient standard errors or associated confidence levels had been presented.
In relation to embedded devices, their standard mode of deployment would suggest that at most, a small number of tailored procedures/programs/algorithms would ever be run on them, mainly focusing on servicing a particular task. It would be reasonable to assume that the extensive collection of software packages that come pre-built on modern operating system distributions would, for the most part, never be required and, in many cases, not be relevant to the task associated with the embedded system. The effect of the inclusion of software within an operating system build, not depended upon by the embedded application, has been considered by Shizukuishi and Matsubara in [
7]. Their work focuses on the deactivation of Linux build configuration options and the subsequent impact on memory usage and power consumption. Their analysis was undertaken on a Raspberry Pi 3B. Power measurements were captured using a similar setup to what was used in [
4]. Their findings show that the deactivation of the kernel build config options can have a statistically significant effect on overall system memory usage. However, no significant effect was observed concerning power consumption.
From an operating system perspective, the complex procedure that consists of a number of boot-up phases has been considered. Within IoT devices, this boot-up process can be costly from a time perspective as well as from the perspective of the energy consumed in the process. Amirtharaj, Groot, and Dezfouli in [
39] present their findings in relation to the boot-up procedure associated with a Linux operating system running on the Raspberry Pi 3 and Raspberry Pi Zero Wireless platform, in addition to the impact of SD card memory sizes. Like previous studies, their work utilizes the EMPIOT Energy Measurement Platform for the capturing and measurement of energy consumption. Their work specifically focuses on duty-cycle performance during boot-up and the effect of thinning the modules started in the boot-up phase, their results suggesting that unit configuration can have a significant impact on overall energy consumption across boot-up.