1 | package test.thermal.recs.plugins.energy; |
---|
2 | |
---|
3 | public class ThermalConstants { |
---|
4 | |
---|
5 | /* |
---|
6 | * v1. Hongyang Sun, 21/03/2014. |
---|
7 | * |
---|
8 | * This package is created for the thermal-aware scheduling policies designed in CoolEmAll (www.cooemall.eu). |
---|
9 | * Details of these policies and experimental results can be found in deliverable D4.6 on the project website. |
---|
10 | * |
---|
11 | * The setting and the temperature estimation is for a CoolEmAll RECS with 18 nodes and the following layout: |
---|
12 | * | 10 01 | |
---|
13 | * | 11 02 | |
---|
14 | * | 12 03 | |
---|
15 | * | 13 04 | |
---|
16 | * | 14 05 | |
---|
17 | * | 15 06 | |
---|
18 | * | 16 07 | |
---|
19 | * | 17 08 | |
---|
20 | * | 18 09 | |
---|
21 | * where node i and i+9 share the same outlet and inlet for i = 1..9. |
---|
22 | * |
---|
23 | * The thermal-aware scheduling plugins (Coolest, MaxTempOpt and TempIncrOpt) are implemented in the version |
---|
24 | * of the simulator dated 2014 March. In this version, |
---|
25 | * (1). The power estimation of a node is guaranteed to be correct upon each invocation of the scheduler. |
---|
26 | * (2). The temperature, however, may not be up to date, so one should always derive temperature from power. |
---|
27 | * (3). If each invocation of the scheduler schedules several jobs, the power (and temperature) is not |
---|
28 | * updated between job assignments. So one should always keep track of the power (and temperature) |
---|
29 | * changes locally in this case. |
---|
30 | */ |
---|
31 | |
---|
32 | public static double tin = 25; |
---|
33 | public static double Q = 0.0056085; |
---|
34 | public static double C = 1004; |
---|
35 | public static double delta1 = 1.780594389/2; |
---|
36 | public static double delta2 = 2.162043729/2; |
---|
37 | public static double ro = 1.168; |
---|
38 | |
---|
39 | public static double fanPower = 6; |
---|
40 | |
---|
41 | // calculate the outlet temperature, given the power1 on the inlet node and power2 on the outlet node. |
---|
42 | public static double calculateOutletTemp(double power1, double power2){ |
---|
43 | double tout = tin + delta1 * (power1/(Q * C * ro)) + delta2 * (power2/(Q * C * ro)); |
---|
44 | return tout; |
---|
45 | } |
---|
46 | } |
---|