Linux shell script for advanced DVFS technique.
Set a maximum temperature, # of cores, maximum frequency of your devices.
It predicts the higest temperature of cores at different frequencies.
The highest one is adopted for CPU frequency.
We use linear-regression model.
The model was established using the following:
EXEC, IPC, FREQ, AFREQ, L3MPI, READ, WRITE,
INST, PhysIPC, INSTnom, Proc_Energy_(Joules), Total_Util, frequency
"Total_Util" is total utilization of cores.
"frequency" is current CPU frequency.
Other details are in PCM (Processor Counter Monitor) - https://github.com/opcm/pcm.
This model is based on Intel i7-7700.
Thus, different types of servers may show slightly different prediction results.
This script must be run with sudo privileges.
- Install PCM (Processor Counter Monitor)
git clone https://github.com/opcm/pcm.git
- Download this project
git clone https://github.com/JeongIn/advanced_DVFS.git
-
Move "pcm-pred_model.cpp" and "advanced_DVFS" to "pcm" folder
-
Modify "Makefile"
EXE = pcm-pred_model.x
- Make
make
- super user mode
su
- Start "pcm-pred_model"
cd pcm/
./pcm-pred_model.x
- Start "advanced_DVFS" with new terminal.
[This example will limit system temperature to 50 Celsius (8 cores, Maximum frequency: 4.2GHz]
cd pcm/
./advanced_DVFS.sh 50 8 4200000