github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/client/fingerprint/env_aws_cpu.go (about) 1 // Code generated from hashicorp/nomad/tools/ec2info; DO NOT EDIT. 2 3 package fingerprint 4 5 // CPU contains virtual core count and processor baseline performance. 6 type CPU struct { 7 // use small units to reduce size of the embedded table 8 Cores uint32 // good for 4 billion cores 9 MHz uint32 // good for 4 billion MHz 10 } 11 12 // Ticks computes the total number of cycles available across the virtual 13 // cores of a CPU. 14 func (c CPU) Ticks() int { 15 return int(c.MHz) * int(c.Cores) 16 } 17 18 // GHz returns the speed of CPU in ghz. 19 func (c CPU) GHz() float64 { 20 return float64(c.MHz) / 1000.0 21 } 22 23 // newCPU create a CPUSpecs from the given virtual core count and core speed. 24 func newCPU(cores uint32, ghz float64) CPU { 25 return CPU{ 26 Cores: cores, 27 MHz: uint32(ghz * 1000), 28 } 29 } 30 31 // LookupEC2CPU returns the virtual core count and core speed information from a 32 // lookup table generated from the Amazon EC2 API. 33 // 34 // If the instance type does not exist, nil is returned. 35 func LookupEC2CPU(instanceType string) *CPU { 36 specs, exists := instanceTypeCPU[instanceType] 37 if !exists { 38 return nil 39 } 40 return &specs 41 } 42 43 var instanceTypeCPU = map[string]CPU{ 44 45 "a1.2xlarge": newCPU(8, 2.3), 46 "a1.4xlarge": newCPU(16, 2.3), 47 "a1.large": newCPU(2, 2.3), 48 "a1.medium": newCPU(1, 2.3), 49 "a1.metal": newCPU(16, 2.3), 50 "a1.xlarge": newCPU(4, 2.3), 51 "c3.2xlarge": newCPU(8, 2.8), 52 "c3.4xlarge": newCPU(16, 2.8), 53 "c3.8xlarge": newCPU(32, 2.8), 54 "c3.large": newCPU(2, 2.8), 55 "c3.xlarge": newCPU(4, 2.8), 56 "c4.2xlarge": newCPU(8, 2.9), 57 "c4.4xlarge": newCPU(16, 2.9), 58 "c4.8xlarge": newCPU(36, 2.9), 59 "c4.large": newCPU(2, 2.9), 60 "c4.xlarge": newCPU(4, 2.9), 61 "c5.12xlarge": newCPU(48, 3.6), 62 "c5.18xlarge": newCPU(72, 3.4), 63 "c5.24xlarge": newCPU(96, 3.6), 64 "c5.2xlarge": newCPU(8, 3.4), 65 "c5.4xlarge": newCPU(16, 3.4), 66 "c5.9xlarge": newCPU(36, 3.4), 67 "c5.large": newCPU(2, 3.4), 68 "c5.metal": newCPU(96, 3.6), 69 "c5.xlarge": newCPU(4, 3.4), 70 "c5a.12xlarge": newCPU(48, 3.3), 71 "c5a.16xlarge": newCPU(64, 3.3), 72 "c5a.24xlarge": newCPU(96, 3.3), 73 "c5a.2xlarge": newCPU(8, 3.3), 74 "c5a.4xlarge": newCPU(16, 3.3), 75 "c5a.8xlarge": newCPU(32, 3.3), 76 "c5a.large": newCPU(2, 3.3), 77 "c5a.xlarge": newCPU(4, 3.3), 78 "c5ad.12xlarge": newCPU(48, 3.3), 79 "c5ad.16xlarge": newCPU(64, 3.3), 80 "c5ad.24xlarge": newCPU(96, 3.3), 81 "c5ad.2xlarge": newCPU(8, 3.3), 82 "c5ad.4xlarge": newCPU(16, 3.3), 83 "c5ad.8xlarge": newCPU(32, 3.3), 84 "c5ad.large": newCPU(2, 3.3), 85 "c5ad.xlarge": newCPU(4, 3.3), 86 "c5d.12xlarge": newCPU(48, 3.6), 87 "c5d.18xlarge": newCPU(72, 3.4), 88 "c5d.24xlarge": newCPU(96, 3.6), 89 "c5d.2xlarge": newCPU(8, 3.4), 90 "c5d.4xlarge": newCPU(16, 3.4), 91 "c5d.9xlarge": newCPU(36, 3.4), 92 "c5d.large": newCPU(2, 3.4), 93 "c5d.metal": newCPU(96, 3.6), 94 "c5d.xlarge": newCPU(4, 3.4), 95 "c5n.18xlarge": newCPU(72, 3.4), 96 "c5n.2xlarge": newCPU(8, 3.4), 97 "c5n.4xlarge": newCPU(16, 3.4), 98 "c5n.9xlarge": newCPU(36, 3.4), 99 "c5n.large": newCPU(2, 3.4), 100 "c5n.metal": newCPU(72, 3.4), 101 "c5n.xlarge": newCPU(4, 3.4), 102 "c6g.12xlarge": newCPU(48, 2.5), 103 "c6g.16xlarge": newCPU(64, 2.5), 104 "c6g.2xlarge": newCPU(8, 2.5), 105 "c6g.4xlarge": newCPU(16, 2.5), 106 "c6g.8xlarge": newCPU(32, 2.5), 107 "c6g.large": newCPU(2, 2.5), 108 "c6g.medium": newCPU(1, 2.5), 109 "c6g.metal": newCPU(64, 2.5), 110 "c6g.xlarge": newCPU(4, 2.5), 111 "c6gd.12xlarge": newCPU(48, 2.5), 112 "c6gd.16xlarge": newCPU(64, 2.5), 113 "c6gd.2xlarge": newCPU(8, 2.5), 114 "c6gd.4xlarge": newCPU(16, 2.5), 115 "c6gd.8xlarge": newCPU(32, 2.5), 116 "c6gd.large": newCPU(2, 2.5), 117 "c6gd.medium": newCPU(1, 2.5), 118 "c6gd.metal": newCPU(64, 2.5), 119 "c6gd.xlarge": newCPU(4, 2.5), 120 "cc2.8xlarge": newCPU(32, 2.6), 121 "d2.2xlarge": newCPU(8, 2.4), 122 "d2.4xlarge": newCPU(16, 2.4), 123 "d2.8xlarge": newCPU(36, 2.4), 124 "d2.xlarge": newCPU(4, 2.4), 125 "d3.2xlarge": newCPU(8, 3.1), 126 "d3.4xlarge": newCPU(16, 3.1), 127 "d3.8xlarge": newCPU(32, 3.1), 128 "d3.xlarge": newCPU(4, 3.1), 129 "d3en.12xlarge": newCPU(48, 3.1), 130 "d3en.2xlarge": newCPU(8, 3.1), 131 "d3en.4xlarge": newCPU(16, 3.1), 132 "d3en.6xlarge": newCPU(24, 3.1), 133 "d3en.8xlarge": newCPU(32, 3.1), 134 "d3en.xlarge": newCPU(4, 3.1), 135 "f1.16xlarge": newCPU(64, 2.3), 136 "f1.2xlarge": newCPU(8, 2.3), 137 "f1.4xlarge": newCPU(16, 2.3), 138 "g2.2xlarge": newCPU(8, 2.6), 139 "g2.8xlarge": newCPU(32, 2.6), 140 "g3.16xlarge": newCPU(64, 2.3), 141 "g3.4xlarge": newCPU(16, 2.7), 142 "g3.8xlarge": newCPU(32, 2.7), 143 "g3s.xlarge": newCPU(4, 2.7), 144 "g4dn.12xlarge": newCPU(48, 2.5), 145 "g4dn.16xlarge": newCPU(64, 2.5), 146 "g4dn.2xlarge": newCPU(8, 2.5), 147 "g4dn.4xlarge": newCPU(16, 2.5), 148 "g4dn.8xlarge": newCPU(32, 2.5), 149 "g4dn.metal": newCPU(96, 2.5), 150 "g4dn.xlarge": newCPU(4, 2.5), 151 "h1.16xlarge": newCPU(64, 2.3), 152 "h1.2xlarge": newCPU(8, 2.3), 153 "h1.4xlarge": newCPU(16, 2.3), 154 "h1.8xlarge": newCPU(32, 2.3), 155 "i2.2xlarge": newCPU(8, 2.5), 156 "i2.4xlarge": newCPU(16, 2.5), 157 "i2.8xlarge": newCPU(32, 2.5), 158 "i2.xlarge": newCPU(4, 2.5), 159 "i3.16xlarge": newCPU(64, 2.3), 160 "i3.2xlarge": newCPU(8, 2.3), 161 "i3.4xlarge": newCPU(16, 2.3), 162 "i3.8xlarge": newCPU(32, 2.3), 163 "i3.large": newCPU(2, 2.3), 164 "i3.metal": newCPU(72, 2.3), 165 "i3.xlarge": newCPU(4, 2.3), 166 "i3en.12xlarge": newCPU(48, 3.1), 167 "i3en.24xlarge": newCPU(96, 3.1), 168 "i3en.2xlarge": newCPU(8, 3.1), 169 "i3en.3xlarge": newCPU(12, 3.1), 170 "i3en.6xlarge": newCPU(24, 3.1), 171 "i3en.large": newCPU(2, 3.1), 172 "i3en.metal": newCPU(96, 3.1), 173 "i3en.xlarge": newCPU(4, 3.1), 174 "inf1.24xlarge": newCPU(96, 2.5), 175 "inf1.2xlarge": newCPU(8, 2.5), 176 "inf1.6xlarge": newCPU(24, 2.5), 177 "inf1.xlarge": newCPU(4, 2.5), 178 "m3.2xlarge": newCPU(8, 2.5), 179 "m3.large": newCPU(2, 2.5), 180 "m3.medium": newCPU(1, 2.5), 181 "m3.xlarge": newCPU(4, 2.5), 182 "m4.10xlarge": newCPU(40, 2.4), 183 "m4.16xlarge": newCPU(64, 2.3), 184 "m4.2xlarge": newCPU(8, 2.4), 185 "m4.4xlarge": newCPU(16, 2.4), 186 "m4.large": newCPU(2, 2.4), 187 "m4.xlarge": newCPU(4, 2.4), 188 "m5.12xlarge": newCPU(48, 3.1), 189 "m5.16xlarge": newCPU(64, 3.1), 190 "m5.24xlarge": newCPU(96, 3.1), 191 "m5.2xlarge": newCPU(8, 3.1), 192 "m5.4xlarge": newCPU(16, 3.1), 193 "m5.8xlarge": newCPU(32, 3.1), 194 "m5.large": newCPU(2, 3.1), 195 "m5.metal": newCPU(96, 3.1), 196 "m5.xlarge": newCPU(4, 3.1), 197 "m5a.12xlarge": newCPU(48, 2.5), 198 "m5a.16xlarge": newCPU(64, 2.5), 199 "m5a.24xlarge": newCPU(96, 2.5), 200 "m5a.2xlarge": newCPU(8, 2.5), 201 "m5a.4xlarge": newCPU(16, 2.5), 202 "m5a.8xlarge": newCPU(32, 2.5), 203 "m5a.large": newCPU(2, 2.5), 204 "m5a.xlarge": newCPU(4, 2.5), 205 "m5ad.12xlarge": newCPU(48, 2.2), 206 "m5ad.16xlarge": newCPU(64, 2.5), 207 "m5ad.24xlarge": newCPU(96, 2.2), 208 "m5ad.2xlarge": newCPU(8, 2.2), 209 "m5ad.4xlarge": newCPU(16, 2.2), 210 "m5ad.8xlarge": newCPU(32, 2.5), 211 "m5ad.large": newCPU(2, 2.2), 212 "m5ad.xlarge": newCPU(4, 2.2), 213 "m5d.12xlarge": newCPU(48, 3.1), 214 "m5d.16xlarge": newCPU(64, 3.1), 215 "m5d.24xlarge": newCPU(96, 3.1), 216 "m5d.2xlarge": newCPU(8, 3.1), 217 "m5d.4xlarge": newCPU(16, 3.1), 218 "m5d.8xlarge": newCPU(32, 3.1), 219 "m5d.large": newCPU(2, 3.1), 220 "m5d.metal": newCPU(96, 3.1), 221 "m5d.xlarge": newCPU(4, 3.1), 222 "m5dn.12xlarge": newCPU(48, 3.1), 223 "m5dn.16xlarge": newCPU(64, 3.1), 224 "m5dn.24xlarge": newCPU(96, 3.1), 225 "m5dn.2xlarge": newCPU(8, 3.1), 226 "m5dn.4xlarge": newCPU(16, 3.1), 227 "m5dn.8xlarge": newCPU(32, 3.1), 228 "m5dn.large": newCPU(2, 3.1), 229 "m5dn.metal": newCPU(96, 3.1), 230 "m5dn.xlarge": newCPU(4, 3.1), 231 "m5n.12xlarge": newCPU(48, 3.1), 232 "m5n.16xlarge": newCPU(64, 3.1), 233 "m5n.24xlarge": newCPU(96, 3.1), 234 "m5n.2xlarge": newCPU(8, 3.1), 235 "m5n.4xlarge": newCPU(16, 3.1), 236 "m5n.8xlarge": newCPU(32, 3.1), 237 "m5n.large": newCPU(2, 3.1), 238 "m5n.metal": newCPU(96, 3.1), 239 "m5n.xlarge": newCPU(4, 3.1), 240 "m5zn.12xlarge": newCPU(48, 4.5), 241 "m5zn.2xlarge": newCPU(8, 4.5), 242 "m5zn.3xlarge": newCPU(16, 4.5), 243 "m5zn.6xlarge": newCPU(32, 4.5), 244 "m5zn.large": newCPU(2, 4.5), 245 "m5zn.metal": newCPU(48, 4.5), 246 "m5zn.xlarge": newCPU(4, 4.5), 247 "m6g.12xlarge": newCPU(48, 2.5), 248 "m6g.16xlarge": newCPU(64, 2.5), 249 "m6g.2xlarge": newCPU(8, 2.5), 250 "m6g.4xlarge": newCPU(16, 2.5), 251 "m6g.8xlarge": newCPU(32, 2.5), 252 "m6g.large": newCPU(2, 2.5), 253 "m6g.medium": newCPU(1, 2.5), 254 "m6g.metal": newCPU(64, 2.5), 255 "m6g.xlarge": newCPU(4, 2.5), 256 "m6gd.12xlarge": newCPU(48, 2.5), 257 "m6gd.16xlarge": newCPU(64, 2.5), 258 "m6gd.2xlarge": newCPU(8, 2.5), 259 "m6gd.4xlarge": newCPU(16, 2.5), 260 "m6gd.8xlarge": newCPU(32, 2.5), 261 "m6gd.large": newCPU(2, 2.5), 262 "m6gd.medium": newCPU(1, 2.5), 263 "m6gd.metal": newCPU(64, 2.5), 264 "m6gd.xlarge": newCPU(4, 2.5), 265 "mac1.metal": newCPU(12, 3.2), 266 "p2.16xlarge": newCPU(64, 2.3), 267 "p2.8xlarge": newCPU(32, 2.7), 268 "p2.xlarge": newCPU(4, 2.7), 269 "p3.16xlarge": newCPU(64, 2.7), 270 "p3.2xlarge": newCPU(8, 2.7), 271 "p3.8xlarge": newCPU(32, 2.7), 272 "p3dn.24xlarge": newCPU(96, 2.5), 273 "p4d.24xlarge": newCPU(96, 3), 274 "r3.2xlarge": newCPU(8, 2.5), 275 "r3.4xlarge": newCPU(16, 2.5), 276 "r3.8xlarge": newCPU(32, 2.5), 277 "r3.large": newCPU(2, 2.5), 278 "r3.xlarge": newCPU(4, 2.5), 279 "r4.16xlarge": newCPU(64, 2.3), 280 "r4.2xlarge": newCPU(8, 2.3), 281 "r4.4xlarge": newCPU(16, 2.3), 282 "r4.8xlarge": newCPU(32, 2.3), 283 "r4.large": newCPU(2, 2.3), 284 "r4.xlarge": newCPU(4, 2.3), 285 "r5.12xlarge": newCPU(48, 3.1), 286 "r5.16xlarge": newCPU(64, 3.1), 287 "r5.24xlarge": newCPU(96, 3.1), 288 "r5.2xlarge": newCPU(8, 3.1), 289 "r5.4xlarge": newCPU(16, 3.1), 290 "r5.8xlarge": newCPU(32, 3.1), 291 "r5.large": newCPU(2, 3.1), 292 "r5.metal": newCPU(96, 3.1), 293 "r5.xlarge": newCPU(4, 3.1), 294 "r5a.12xlarge": newCPU(48, 2.5), 295 "r5a.16xlarge": newCPU(64, 2.5), 296 "r5a.24xlarge": newCPU(96, 2.5), 297 "r5a.2xlarge": newCPU(8, 2.5), 298 "r5a.4xlarge": newCPU(16, 2.5), 299 "r5a.8xlarge": newCPU(32, 2.5), 300 "r5a.large": newCPU(2, 2.5), 301 "r5a.xlarge": newCPU(4, 2.5), 302 "r5ad.12xlarge": newCPU(48, 2.2), 303 "r5ad.16xlarge": newCPU(64, 2.5), 304 "r5ad.24xlarge": newCPU(96, 2.2), 305 "r5ad.2xlarge": newCPU(8, 2.2), 306 "r5ad.4xlarge": newCPU(16, 2.2), 307 "r5ad.8xlarge": newCPU(32, 2.5), 308 "r5ad.large": newCPU(2, 2.2), 309 "r5ad.xlarge": newCPU(4, 2.2), 310 "r5b.12xlarge": newCPU(48, 3.1), 311 "r5b.16xlarge": newCPU(64, 3.1), 312 "r5b.24xlarge": newCPU(96, 3.1), 313 "r5b.2xlarge": newCPU(8, 3.1), 314 "r5b.4xlarge": newCPU(16, 3.1), 315 "r5b.8xlarge": newCPU(32, 3.1), 316 "r5b.large": newCPU(2, 3.1), 317 "r5b.metal": newCPU(96, 3.1), 318 "r5b.xlarge": newCPU(4, 3.1), 319 "r5d.12xlarge": newCPU(48, 3.1), 320 "r5d.16xlarge": newCPU(64, 3.1), 321 "r5d.24xlarge": newCPU(96, 3.1), 322 "r5d.2xlarge": newCPU(8, 3.1), 323 "r5d.4xlarge": newCPU(16, 3.1), 324 "r5d.8xlarge": newCPU(32, 3.1), 325 "r5d.large": newCPU(2, 3.1), 326 "r5d.metal": newCPU(96, 3.1), 327 "r5d.xlarge": newCPU(4, 3.1), 328 "r5dn.12xlarge": newCPU(48, 3.1), 329 "r5dn.16xlarge": newCPU(64, 3.1), 330 "r5dn.24xlarge": newCPU(96, 3.1), 331 "r5dn.2xlarge": newCPU(8, 3.1), 332 "r5dn.4xlarge": newCPU(16, 3.1), 333 "r5dn.8xlarge": newCPU(32, 3.1), 334 "r5dn.large": newCPU(2, 3.1), 335 "r5dn.metal": newCPU(96, 3.1), 336 "r5dn.xlarge": newCPU(4, 3.1), 337 "r5n.12xlarge": newCPU(48, 3.1), 338 "r5n.16xlarge": newCPU(64, 3.1), 339 "r5n.24xlarge": newCPU(96, 3.1), 340 "r5n.2xlarge": newCPU(8, 3.1), 341 "r5n.4xlarge": newCPU(16, 3.1), 342 "r5n.8xlarge": newCPU(32, 3.1), 343 "r5n.large": newCPU(2, 3.1), 344 "r5n.metal": newCPU(96, 3.1), 345 "r5n.xlarge": newCPU(4, 3.1), 346 "r6g.12xlarge": newCPU(48, 2.5), 347 "r6g.16xlarge": newCPU(64, 2.5), 348 "r6g.2xlarge": newCPU(8, 2.5), 349 "r6g.4xlarge": newCPU(16, 2.5), 350 "r6g.8xlarge": newCPU(32, 2.5), 351 "r6g.large": newCPU(2, 2.5), 352 "r6g.medium": newCPU(1, 2.5), 353 "r6g.metal": newCPU(64, 2.5), 354 "r6g.xlarge": newCPU(4, 2.5), 355 "r6gd.12xlarge": newCPU(48, 2.5), 356 "r6gd.16xlarge": newCPU(64, 2.5), 357 "r6gd.2xlarge": newCPU(8, 2.5), 358 "r6gd.4xlarge": newCPU(16, 2.5), 359 "r6gd.8xlarge": newCPU(32, 2.5), 360 "r6gd.large": newCPU(2, 2.5), 361 "r6gd.medium": newCPU(1, 2.5), 362 "r6gd.metal": newCPU(64, 2.5), 363 "r6gd.xlarge": newCPU(4, 2.5), 364 "t2.2xlarge": newCPU(8, 2.3), 365 "t2.large": newCPU(2, 2.3), 366 "t2.medium": newCPU(2, 2.3), 367 "t2.micro": newCPU(1, 2.5), 368 "t2.nano": newCPU(1, 2.4), 369 "t2.small": newCPU(1, 2.5), 370 "t2.xlarge": newCPU(4, 2.3), 371 "t3.2xlarge": newCPU(8, 2.5), 372 "t3.large": newCPU(2, 2.5), 373 "t3.medium": newCPU(2, 2.5), 374 "t3.micro": newCPU(2, 2.5), 375 "t3.nano": newCPU(2, 2.5), 376 "t3.small": newCPU(2, 2.5), 377 "t3.xlarge": newCPU(4, 2.5), 378 "t3a.2xlarge": newCPU(8, 2.2), 379 "t3a.large": newCPU(2, 2.2), 380 "t3a.medium": newCPU(2, 2.2), 381 "t3a.micro": newCPU(2, 2.2), 382 "t3a.nano": newCPU(2, 2.2), 383 "t3a.small": newCPU(2, 2.2), 384 "t3a.xlarge": newCPU(4, 2.2), 385 "t4g.2xlarge": newCPU(8, 2.5), 386 "t4g.large": newCPU(2, 2.5), 387 "t4g.medium": newCPU(2, 2.5), 388 "t4g.micro": newCPU(2, 2.5), 389 "t4g.nano": newCPU(2, 2.5), 390 "t4g.small": newCPU(2, 2.5), 391 "t4g.xlarge": newCPU(4, 2.5), 392 "x1.16xlarge": newCPU(64, 2.3), 393 "x1.32xlarge": newCPU(128, 2.3), 394 "x1e.16xlarge": newCPU(64, 2.3), 395 "x1e.2xlarge": newCPU(8, 2.3), 396 "x1e.32xlarge": newCPU(128, 2.3), 397 "x1e.4xlarge": newCPU(16, 2.3), 398 "x1e.8xlarge": newCPU(32, 2.3), 399 "x1e.xlarge": newCPU(4, 2.3), 400 "z1d.12xlarge": newCPU(48, 4), 401 "z1d.2xlarge": newCPU(8, 4), 402 "z1d.3xlarge": newCPU(12, 4), 403 "z1d.6xlarge": newCPU(24, 4), 404 "z1d.large": newCPU(2, 4), 405 "z1d.metal": newCPU(48, 4), 406 "z1d.xlarge": newCPU(4, 4), 407 }