Online Machine Learning for Energy-Aware Multicore Real-Time Embedded Systems Database
Online Machine Learning for Energy-Aware Multicore Real-Time Embedded Systems Dataset is a Dataset composed of Hardware Performance Counters extracted from a Multicore Real-Time Embedded System. This Dataset encompasses every Monitorable Performance counters in a Cortex-A53 quad-core processor, totaling 54 performance counters, which are sampled periodically through a non-Intrusive Monitoring Framework implemented over Embedded Parallel Operating System (EPOS), a Real-Time Operating System. Moreover, the Dataset encompasses the parallel execution of three different tasks that explores memory and CPU bound behaviors; Thus, the dataset also accounts for the parallel impact of shared resource contention between tasks. Other than the Performance counters, the Tasks and CPU Utilization are also sampled every monitoring period. This data-set focuses on six performance counters, namely Bus Access for Memory write operations, Stalls due to Write Buffer Full, L2D Writeback, Immediate Branches, CPU Cycle Count, and L1 Cache Hits, which are sampled in different levels of CPU Frequency for the same task-set, where every sample is coupled with the average utilization of the same task in a lower frequency level. A full description of the task-set and monitoring methodology can be found in the paper of the same name, published in IEEE Transactions on Computers.
The dataset is subdivided into six files, where each performance counter is represented as the growth of the performance counter during a specific period. For the first five files, the period between each collection is set to 30 milliseconds and every counter available in the platform has been sampled over multiple executions and then temporally aligned into a single file. For the last dataset, the counters are sampled per task and accumulated during a whole hyper-period of the task set, which, in this scenario, is 500 milliseconds. Thus, the growth of the counters is related to the architectural usage of the task and its utilization. The utilization of the task is also sampled along with the counters.
- merged_all.csv: A dataset composed of every task and every counter. An extra column is present in this dataset to indicate which task was running when the sample was captured. The following files were obtained by splitting "merged_all.csv" per task:
- task_0.csv: Idle task - The data sampled when the CPU is in Idle state.
- task_1.csv to task_3.csv: The three types of tasks running meaningful computation. Task1 represents a Memory-bound task that runs read and write operations into a buffer with the size of the L2 shared cache. Task 2 represents a Task with Mid-Term behavior between CPU- and Memory-Boundness. Task 3 represents a CPU-bound task that runs a loop of float point mathematical operations.
- multi_frequency_data.csv: This data-set focuses on six performance counters, namely Bus Access for Memory write operations, Stalls due to Write Buffer Full, L2D Writeback, Immediate Branches, CPU Cycle Count, and L1 Cache Hits, which are sampled in different levels of CPU Frequency for the same task-set, where every sample is coupled with the average utilization of the same task in a lower frequency level.