-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathworkloads.h
77 lines (65 loc) · 3.35 KB
/
workloads.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*
* Workloads header
*/
#ifndef WORKLOADS_H
#define WORKLOADS_H
#include "htsim.h"
#include <map>
class Workloads
{
public:
/* Types of flow size distributions. */
enum FlowDist {
UNIFORM, // All flows are of the same size
PARETO, // Pareto distributed with shape (alpha) 1.2
ENTERPRISE, // Enterprise workload from CONGA paper.
DATAMINING, // Datamining workload from CONGA paper.
ERASURE_CODING //not implemented, same as uniform
};
Workloads(uint32_t avgFlowSize, FlowDist flowSizeDist);
// Returns a flow size according to some distribution.
uint64_t generateFlowSize();
uint32_t _avgFlowSize; // Average flowsize in bytes.
uint32_t _flowSizeDist; // Distribution of flow size [0/1/2] - Uniform/Exp/Pareto.
// Custom flow size distribution.
std::map<double,uint64_t> _flowSizeCDF;
};
/* Distribution of Enterprise workload from CONGA paper. */
const uint64_t enterprise_size[] = {
250, 270, 286, 297, 312, 327, 342, 356, 368, 383, 404, 427, 447,
469, 490, 512, 536, 561, 587, 612, 636, 651, 674, 696, 708, 729,
753, 782, 820, 857, 900, 945, 990, 1036, 1086, 1140, 1200, 1260,
1311, 1353, 1393, 1452, 1485, 1510, 1540, 1597, 1658, 1721, 1784,
1873, 1978, 2079, 2160, 2267, 2395, 2536, 2688, 2862, 2960, 3040,
3163, 3390, 3603, 3836, 4124, 4406, 4540, 4673, 4952, 5260, 5625,
5938, 6088, 6506, 6976, 7430, 7800, 8332, 8849, 9477, 10344, 11256,
12396, 13766, 15370, 17417, 19884, 22822, 26285, 30973, 37152, 45274,
55796, 70997, 94050, 131474, 189792, 344538, 898190, 2221957, 2624209,
3114668, 3849851, 4904979, 6438497, 8608848, 13392072, 23110447,
40607470, 44466961, 48564256, 53520618, 59661017, 67292218, 76720988,
92984411, 121274824, 168707183, 176569410, 184086600, 195504461,
211698244, 230332119, 249070260, 293849828, 361127656, 440186178,
442950536, 449947224, 466035021, 482515012, 510665738, 561765744,
669621992, 738727896, 1022256099, 1773379248};
const double enterprise_prob[] = {
0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1,
0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21,
0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32,
0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43,
0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54,
0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65,
0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76,
0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87,
0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98,
0.99, 0.991, 0.992, 0.993, 0.994, 0.995, 0.996, 0.997, 0.998,
0.999, 0.9991, 0.9992, 0.9993, 0.9994, 0.9995, 0.9996, 0.9997,
0.9998, 0.9999, 0.99991, 0.99992, 0.99993, 0.99994, 0.99995,
0.99996, 0.99997, 0.99998, 0.99999, 0.999991, 0.999992, 0.999993,
0.999994, 0.999995, 0.999996, 0.999997, 0.999998, 0.999999, 1.0};
/* Distribution of Datamining workload from CONGA paper. */
const uint64_t datamining_size[] = {
150, 180, 216, 560, 900, 1100, 1870, 3160, 10000, 400000, 3160000,
100000000, 1000000000};
const double datamining_prob[] = {
0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95, 0.98, 1.0};
#endif /* WORKLOADS_H */