
We witnessed this exact allocation attempt in a live cluster and witnessed the algorithm fail with an accounting error. This test was added to verify that this case is now handled by the updates to the algorithm and that we don't regress from it in the future. "test" description="ensure previous failure encountered on live machine has been fixed (1/1)" "combo remainderSet balance" combo=[2 4 6] remainderSet=[2 4 6] distribution=9 remainder=1 available=[14 2 4 4 0 3 4 1] balance=4.031 "combo remainderSet balance" combo=[2 4 6] remainderSet=[2 4] distribution=9 remainder=1 available=[0 3 4 1 14 2 4 4] balance=4.031 "combo remainderSet balance" combo=[2 4 6] remainderSet=[2 6] distribution=9 remainder=1 available=[1 14 2 4 4 0 3 4] balance=4.031 "combo remainderSet balance" combo=[2 4 6] remainderSet=[4 6] distribution=9 remainder=1 available=[1 3 4 0 14 2 4 4] balance=4.031 "combo remainderSet balance" combo=[2 4 6] remainderSet=[2] distribution=9 remainder=1 available=[4 0 3 4 1 14 2 4] balance=4.031 "combo remainderSet balance" combo=[2 4 6] remainderSet=[4] distribution=9 remainder=1 available=[3 4 0 14 2 4 4 1] balance=4.031 "combo remainderSet balance" combo=[2 4 6] remainderSet=[6] distribution=9 remainder=1 available=[1 13 2 4 4 1 3 4] balance=3.606 "bestCombo found" distribution=9 bestCombo=[2 4 6] bestRemainder=[6] Signed-off-by: Kevin Klues <kklues@nvidia.com>
896 lines
41 KiB
Go
896 lines
41 KiB
Go
/*
|
|
Copyright 2017 The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package cpumanager
|
|
|
|
import (
|
|
"k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/topology"
|
|
)
|
|
|
|
var (
|
|
topoSingleSocketHT = &topology.CPUTopology{
|
|
NumCPUs: 8,
|
|
NumSockets: 1,
|
|
NumCores: 4,
|
|
CPUDetails: map[int]topology.CPUInfo{
|
|
0: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
1: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
2: {CoreID: 2, SocketID: 0, NUMANodeID: 0},
|
|
3: {CoreID: 3, SocketID: 0, NUMANodeID: 0},
|
|
4: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
5: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
6: {CoreID: 2, SocketID: 0, NUMANodeID: 0},
|
|
7: {CoreID: 3, SocketID: 0, NUMANodeID: 0},
|
|
},
|
|
}
|
|
|
|
topoDualSocketHT = &topology.CPUTopology{
|
|
NumCPUs: 12,
|
|
NumSockets: 2,
|
|
NumCores: 6,
|
|
CPUDetails: map[int]topology.CPUInfo{
|
|
0: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
1: {CoreID: 1, SocketID: 1, NUMANodeID: 1},
|
|
2: {CoreID: 2, SocketID: 0, NUMANodeID: 0},
|
|
3: {CoreID: 3, SocketID: 1, NUMANodeID: 1},
|
|
4: {CoreID: 4, SocketID: 0, NUMANodeID: 0},
|
|
5: {CoreID: 5, SocketID: 1, NUMANodeID: 1},
|
|
6: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
7: {CoreID: 1, SocketID: 1, NUMANodeID: 1},
|
|
8: {CoreID: 2, SocketID: 0, NUMANodeID: 0},
|
|
9: {CoreID: 3, SocketID: 1, NUMANodeID: 1},
|
|
10: {CoreID: 4, SocketID: 0, NUMANodeID: 0},
|
|
11: {CoreID: 5, SocketID: 1, NUMANodeID: 1},
|
|
},
|
|
}
|
|
|
|
topoDualSocketNoHT = &topology.CPUTopology{
|
|
NumCPUs: 8,
|
|
NumSockets: 2,
|
|
NumCores: 8,
|
|
CPUDetails: map[int]topology.CPUInfo{
|
|
0: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
1: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
2: {CoreID: 2, SocketID: 0, NUMANodeID: 0},
|
|
3: {CoreID: 3, SocketID: 0, NUMANodeID: 0},
|
|
4: {CoreID: 4, SocketID: 1, NUMANodeID: 1},
|
|
5: {CoreID: 5, SocketID: 1, NUMANodeID: 1},
|
|
6: {CoreID: 6, SocketID: 1, NUMANodeID: 1},
|
|
7: {CoreID: 7, SocketID: 1, NUMANodeID: 1},
|
|
},
|
|
}
|
|
|
|
// fake topology for testing purposes only
|
|
topoTripleSocketHT = &topology.CPUTopology{
|
|
NumCPUs: 18,
|
|
NumSockets: 3,
|
|
NumCores: 9,
|
|
CPUDetails: map[int]topology.CPUInfo{
|
|
0: {CoreID: 0, SocketID: 1, NUMANodeID: 1},
|
|
1: {CoreID: 0, SocketID: 1, NUMANodeID: 1},
|
|
2: {CoreID: 1, SocketID: 1, NUMANodeID: 1},
|
|
3: {CoreID: 1, SocketID: 1, NUMANodeID: 1},
|
|
4: {CoreID: 2, SocketID: 1, NUMANodeID: 1},
|
|
5: {CoreID: 2, SocketID: 1, NUMANodeID: 1},
|
|
6: {CoreID: 3, SocketID: 0, NUMANodeID: 0},
|
|
7: {CoreID: 3, SocketID: 0, NUMANodeID: 0},
|
|
8: {CoreID: 4, SocketID: 0, NUMANodeID: 0},
|
|
9: {CoreID: 4, SocketID: 0, NUMANodeID: 0},
|
|
10: {CoreID: 5, SocketID: 0, NUMANodeID: 0},
|
|
11: {CoreID: 5, SocketID: 0, NUMANodeID: 0},
|
|
12: {CoreID: 6, SocketID: 2, NUMANodeID: 2},
|
|
13: {CoreID: 6, SocketID: 2, NUMANodeID: 2},
|
|
14: {CoreID: 7, SocketID: 2, NUMANodeID: 2},
|
|
15: {CoreID: 7, SocketID: 2, NUMANodeID: 2},
|
|
16: {CoreID: 8, SocketID: 2, NUMANodeID: 2},
|
|
17: {CoreID: 8, SocketID: 2, NUMANodeID: 2},
|
|
},
|
|
}
|
|
|
|
/*
|
|
Topology from https://www.open-mpi.org/projects/hwloc/lstopo/images/KNL.SNC4.H50.v1.11.png.
|
|
Socket0:
|
|
0-2,9-10,13-14,21-22,25-26,33-34,38-39,46-47,50,57-58,71-72,79-80,87-88,95-96,103-104,109-110,117-118,
|
|
131-132,139-140,147-148,155-156,163-164,169-170,177-178,191-192,199-200,207-208,215-216,223-224,229-230,
|
|
237-238,251-252,259-260,267-268,275-276,283-284
|
|
Socket1:
|
|
3-4,11-12,15-16,23-24,27-28,35-36,40-41,48-49,51-52,59-60,65-66,73-74,81-82,89-90,97-98,111-112,119-120,125-126,
|
|
133-134,141-142,149-150,157-158,171-172,179-180,185-186,193-194,201-202,209-210,217-218,231-232,239-240,245-246,
|
|
253-254,261-262,269-270,277-278
|
|
Socket2:
|
|
5-6,17-18,29-30,42-43,53-54,61-62,67-68,75-76,83-84,91-92,99-100,105-106,113-114,121-122,127-128,135-136,
|
|
143-144,151-152,159-160,165-166,173-174,181-182,187-188,195-196,203-204,211-212,219-220,225-226,233-234,241-242,
|
|
247-248,255-256,263-264,271-272,279-280,285-286
|
|
Socket3:
|
|
7-8,19-20,31-32,37,44-45,55-56,63-64,69-70,77-78,85-86,93-94,101-102,107-108,115-116,123-124,129-130,137-138,
|
|
145-146,153-154,161-162,167-168,175-176,183-184,189-190,197-198,205-206,213-214,221-222,227-228,235-236,243-244,
|
|
249-250,257-258,265-266,273-274,281-282,287
|
|
*/
|
|
topoQuadSocketFourWayHT = &topology.CPUTopology{
|
|
NumCPUs: 288,
|
|
NumSockets: 4,
|
|
NumCores: 72,
|
|
CPUDetails: map[int]topology.CPUInfo{
|
|
0: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
169: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
109: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
229: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
50: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
170: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
110: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
230: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
1: {CoreID: 64, SocketID: 0, NUMANodeID: 0},
|
|
25: {CoreID: 64, SocketID: 0, NUMANodeID: 0},
|
|
13: {CoreID: 64, SocketID: 0, NUMANodeID: 0},
|
|
38: {CoreID: 64, SocketID: 0, NUMANodeID: 0},
|
|
2: {CoreID: 65, SocketID: 0, NUMANodeID: 0},
|
|
26: {CoreID: 65, SocketID: 0, NUMANodeID: 0},
|
|
14: {CoreID: 65, SocketID: 0, NUMANodeID: 0},
|
|
39: {CoreID: 65, SocketID: 0, NUMANodeID: 0},
|
|
9: {CoreID: 72, SocketID: 0, NUMANodeID: 0},
|
|
33: {CoreID: 72, SocketID: 0, NUMANodeID: 0},
|
|
21: {CoreID: 72, SocketID: 0, NUMANodeID: 0},
|
|
46: {CoreID: 72, SocketID: 0, NUMANodeID: 0},
|
|
10: {CoreID: 73, SocketID: 0, NUMANodeID: 0},
|
|
34: {CoreID: 73, SocketID: 0, NUMANodeID: 0},
|
|
22: {CoreID: 73, SocketID: 0, NUMANodeID: 0},
|
|
47: {CoreID: 73, SocketID: 0, NUMANodeID: 0},
|
|
57: {CoreID: 8, SocketID: 0, NUMANodeID: 0},
|
|
177: {CoreID: 8, SocketID: 0, NUMANodeID: 0},
|
|
117: {CoreID: 8, SocketID: 0, NUMANodeID: 0},
|
|
237: {CoreID: 8, SocketID: 0, NUMANodeID: 0},
|
|
58: {CoreID: 9, SocketID: 0, NUMANodeID: 0},
|
|
178: {CoreID: 9, SocketID: 0, NUMANodeID: 0},
|
|
118: {CoreID: 9, SocketID: 0, NUMANodeID: 0},
|
|
238: {CoreID: 9, SocketID: 0, NUMANodeID: 0},
|
|
71: {CoreID: 24, SocketID: 0, NUMANodeID: 0},
|
|
191: {CoreID: 24, SocketID: 0, NUMANodeID: 0},
|
|
131: {CoreID: 24, SocketID: 0, NUMANodeID: 0},
|
|
251: {CoreID: 24, SocketID: 0, NUMANodeID: 0},
|
|
72: {CoreID: 25, SocketID: 0, NUMANodeID: 0},
|
|
192: {CoreID: 25, SocketID: 0, NUMANodeID: 0},
|
|
132: {CoreID: 25, SocketID: 0, NUMANodeID: 0},
|
|
252: {CoreID: 25, SocketID: 0, NUMANodeID: 0},
|
|
79: {CoreID: 32, SocketID: 0, NUMANodeID: 0},
|
|
199: {CoreID: 32, SocketID: 0, NUMANodeID: 0},
|
|
139: {CoreID: 32, SocketID: 0, NUMANodeID: 0},
|
|
259: {CoreID: 32, SocketID: 0, NUMANodeID: 0},
|
|
80: {CoreID: 33, SocketID: 0, NUMANodeID: 0},
|
|
200: {CoreID: 33, SocketID: 0, NUMANodeID: 0},
|
|
140: {CoreID: 33, SocketID: 0, NUMANodeID: 0},
|
|
260: {CoreID: 33, SocketID: 0, NUMANodeID: 0},
|
|
87: {CoreID: 40, SocketID: 0, NUMANodeID: 0},
|
|
207: {CoreID: 40, SocketID: 0, NUMANodeID: 0},
|
|
147: {CoreID: 40, SocketID: 0, NUMANodeID: 0},
|
|
267: {CoreID: 40, SocketID: 0, NUMANodeID: 0},
|
|
88: {CoreID: 41, SocketID: 0, NUMANodeID: 0},
|
|
208: {CoreID: 41, SocketID: 0, NUMANodeID: 0},
|
|
148: {CoreID: 41, SocketID: 0, NUMANodeID: 0},
|
|
268: {CoreID: 41, SocketID: 0, NUMANodeID: 0},
|
|
95: {CoreID: 48, SocketID: 0, NUMANodeID: 0},
|
|
215: {CoreID: 48, SocketID: 0, NUMANodeID: 0},
|
|
155: {CoreID: 48, SocketID: 0, NUMANodeID: 0},
|
|
275: {CoreID: 48, SocketID: 0, NUMANodeID: 0},
|
|
96: {CoreID: 49, SocketID: 0, NUMANodeID: 0},
|
|
216: {CoreID: 49, SocketID: 0, NUMANodeID: 0},
|
|
156: {CoreID: 49, SocketID: 0, NUMANodeID: 0},
|
|
276: {CoreID: 49, SocketID: 0, NUMANodeID: 0},
|
|
103: {CoreID: 56, SocketID: 0, NUMANodeID: 0},
|
|
223: {CoreID: 56, SocketID: 0, NUMANodeID: 0},
|
|
163: {CoreID: 56, SocketID: 0, NUMANodeID: 0},
|
|
283: {CoreID: 56, SocketID: 0, NUMANodeID: 0},
|
|
104: {CoreID: 57, SocketID: 0, NUMANodeID: 0},
|
|
224: {CoreID: 57, SocketID: 0, NUMANodeID: 0},
|
|
164: {CoreID: 57, SocketID: 0, NUMANodeID: 0},
|
|
284: {CoreID: 57, SocketID: 0, NUMANodeID: 0},
|
|
3: {CoreID: 66, SocketID: 1, NUMANodeID: 1},
|
|
27: {CoreID: 66, SocketID: 1, NUMANodeID: 1},
|
|
15: {CoreID: 66, SocketID: 1, NUMANodeID: 1},
|
|
40: {CoreID: 66, SocketID: 1, NUMANodeID: 1},
|
|
4: {CoreID: 67, SocketID: 1, NUMANodeID: 1},
|
|
28: {CoreID: 67, SocketID: 1, NUMANodeID: 1},
|
|
16: {CoreID: 67, SocketID: 1, NUMANodeID: 1},
|
|
41: {CoreID: 67, SocketID: 1, NUMANodeID: 1},
|
|
11: {CoreID: 74, SocketID: 1, NUMANodeID: 1},
|
|
35: {CoreID: 74, SocketID: 1, NUMANodeID: 1},
|
|
23: {CoreID: 74, SocketID: 1, NUMANodeID: 1},
|
|
48: {CoreID: 74, SocketID: 1, NUMANodeID: 1},
|
|
12: {CoreID: 75, SocketID: 1, NUMANodeID: 1},
|
|
36: {CoreID: 75, SocketID: 1, NUMANodeID: 1},
|
|
24: {CoreID: 75, SocketID: 1, NUMANodeID: 1},
|
|
49: {CoreID: 75, SocketID: 1, NUMANodeID: 1},
|
|
51: {CoreID: 2, SocketID: 1, NUMANodeID: 1},
|
|
171: {CoreID: 2, SocketID: 1, NUMANodeID: 1},
|
|
111: {CoreID: 2, SocketID: 1, NUMANodeID: 1},
|
|
231: {CoreID: 2, SocketID: 1, NUMANodeID: 1},
|
|
52: {CoreID: 3, SocketID: 1, NUMANodeID: 1},
|
|
172: {CoreID: 3, SocketID: 1, NUMANodeID: 1},
|
|
112: {CoreID: 3, SocketID: 1, NUMANodeID: 1},
|
|
232: {CoreID: 3, SocketID: 1, NUMANodeID: 1},
|
|
59: {CoreID: 10, SocketID: 1, NUMANodeID: 1},
|
|
179: {CoreID: 10, SocketID: 1, NUMANodeID: 1},
|
|
119: {CoreID: 10, SocketID: 1, NUMANodeID: 1},
|
|
239: {CoreID: 10, SocketID: 1, NUMANodeID: 1},
|
|
60: {CoreID: 11, SocketID: 1, NUMANodeID: 1},
|
|
180: {CoreID: 11, SocketID: 1, NUMANodeID: 1},
|
|
120: {CoreID: 11, SocketID: 1, NUMANodeID: 1},
|
|
240: {CoreID: 11, SocketID: 1, NUMANodeID: 1},
|
|
65: {CoreID: 18, SocketID: 1, NUMANodeID: 1},
|
|
185: {CoreID: 18, SocketID: 1, NUMANodeID: 1},
|
|
125: {CoreID: 18, SocketID: 1, NUMANodeID: 1},
|
|
245: {CoreID: 18, SocketID: 1, NUMANodeID: 1},
|
|
66: {CoreID: 19, SocketID: 1, NUMANodeID: 1},
|
|
186: {CoreID: 19, SocketID: 1, NUMANodeID: 1},
|
|
126: {CoreID: 19, SocketID: 1, NUMANodeID: 1},
|
|
246: {CoreID: 19, SocketID: 1, NUMANodeID: 1},
|
|
73: {CoreID: 26, SocketID: 1, NUMANodeID: 1},
|
|
193: {CoreID: 26, SocketID: 1, NUMANodeID: 1},
|
|
133: {CoreID: 26, SocketID: 1, NUMANodeID: 1},
|
|
253: {CoreID: 26, SocketID: 1, NUMANodeID: 1},
|
|
74: {CoreID: 27, SocketID: 1, NUMANodeID: 1},
|
|
194: {CoreID: 27, SocketID: 1, NUMANodeID: 1},
|
|
134: {CoreID: 27, SocketID: 1, NUMANodeID: 1},
|
|
254: {CoreID: 27, SocketID: 1, NUMANodeID: 1},
|
|
81: {CoreID: 34, SocketID: 1, NUMANodeID: 1},
|
|
201: {CoreID: 34, SocketID: 1, NUMANodeID: 1},
|
|
141: {CoreID: 34, SocketID: 1, NUMANodeID: 1},
|
|
261: {CoreID: 34, SocketID: 1, NUMANodeID: 1},
|
|
82: {CoreID: 35, SocketID: 1, NUMANodeID: 1},
|
|
202: {CoreID: 35, SocketID: 1, NUMANodeID: 1},
|
|
142: {CoreID: 35, SocketID: 1, NUMANodeID: 1},
|
|
262: {CoreID: 35, SocketID: 1, NUMANodeID: 1},
|
|
89: {CoreID: 42, SocketID: 1, NUMANodeID: 1},
|
|
209: {CoreID: 42, SocketID: 1, NUMANodeID: 1},
|
|
149: {CoreID: 42, SocketID: 1, NUMANodeID: 1},
|
|
269: {CoreID: 42, SocketID: 1, NUMANodeID: 1},
|
|
90: {CoreID: 43, SocketID: 1, NUMANodeID: 1},
|
|
210: {CoreID: 43, SocketID: 1, NUMANodeID: 1},
|
|
150: {CoreID: 43, SocketID: 1, NUMANodeID: 1},
|
|
270: {CoreID: 43, SocketID: 1, NUMANodeID: 1},
|
|
97: {CoreID: 50, SocketID: 1, NUMANodeID: 1},
|
|
217: {CoreID: 50, SocketID: 1, NUMANodeID: 1},
|
|
157: {CoreID: 50, SocketID: 1, NUMANodeID: 1},
|
|
277: {CoreID: 50, SocketID: 1, NUMANodeID: 1},
|
|
98: {CoreID: 51, SocketID: 1, NUMANodeID: 1},
|
|
218: {CoreID: 51, SocketID: 1, NUMANodeID: 1},
|
|
158: {CoreID: 51, SocketID: 1, NUMANodeID: 1},
|
|
278: {CoreID: 51, SocketID: 1, NUMANodeID: 1},
|
|
5: {CoreID: 68, SocketID: 2, NUMANodeID: 2},
|
|
29: {CoreID: 68, SocketID: 2, NUMANodeID: 2},
|
|
17: {CoreID: 68, SocketID: 2, NUMANodeID: 2},
|
|
42: {CoreID: 68, SocketID: 2, NUMANodeID: 2},
|
|
6: {CoreID: 69, SocketID: 2, NUMANodeID: 2},
|
|
30: {CoreID: 69, SocketID: 2, NUMANodeID: 2},
|
|
18: {CoreID: 69, SocketID: 2, NUMANodeID: 2},
|
|
43: {CoreID: 69, SocketID: 2, NUMANodeID: 2},
|
|
53: {CoreID: 4, SocketID: 2, NUMANodeID: 2},
|
|
173: {CoreID: 4, SocketID: 2, NUMANodeID: 2},
|
|
113: {CoreID: 4, SocketID: 2, NUMANodeID: 2},
|
|
233: {CoreID: 4, SocketID: 2, NUMANodeID: 2},
|
|
54: {CoreID: 5, SocketID: 2, NUMANodeID: 2},
|
|
174: {CoreID: 5, SocketID: 2, NUMANodeID: 2},
|
|
114: {CoreID: 5, SocketID: 2, NUMANodeID: 2},
|
|
234: {CoreID: 5, SocketID: 2, NUMANodeID: 2},
|
|
61: {CoreID: 12, SocketID: 2, NUMANodeID: 2},
|
|
181: {CoreID: 12, SocketID: 2, NUMANodeID: 2},
|
|
121: {CoreID: 12, SocketID: 2, NUMANodeID: 2},
|
|
241: {CoreID: 12, SocketID: 2, NUMANodeID: 2},
|
|
62: {CoreID: 13, SocketID: 2, NUMANodeID: 2},
|
|
182: {CoreID: 13, SocketID: 2, NUMANodeID: 2},
|
|
122: {CoreID: 13, SocketID: 2, NUMANodeID: 2},
|
|
242: {CoreID: 13, SocketID: 2, NUMANodeID: 2},
|
|
67: {CoreID: 20, SocketID: 2, NUMANodeID: 2},
|
|
187: {CoreID: 20, SocketID: 2, NUMANodeID: 2},
|
|
127: {CoreID: 20, SocketID: 2, NUMANodeID: 2},
|
|
247: {CoreID: 20, SocketID: 2, NUMANodeID: 2},
|
|
68: {CoreID: 21, SocketID: 2, NUMANodeID: 2},
|
|
188: {CoreID: 21, SocketID: 2, NUMANodeID: 2},
|
|
128: {CoreID: 21, SocketID: 2, NUMANodeID: 2},
|
|
248: {CoreID: 21, SocketID: 2, NUMANodeID: 2},
|
|
75: {CoreID: 28, SocketID: 2, NUMANodeID: 2},
|
|
195: {CoreID: 28, SocketID: 2, NUMANodeID: 2},
|
|
135: {CoreID: 28, SocketID: 2, NUMANodeID: 2},
|
|
255: {CoreID: 28, SocketID: 2, NUMANodeID: 2},
|
|
76: {CoreID: 29, SocketID: 2, NUMANodeID: 2},
|
|
196: {CoreID: 29, SocketID: 2, NUMANodeID: 2},
|
|
136: {CoreID: 29, SocketID: 2, NUMANodeID: 2},
|
|
256: {CoreID: 29, SocketID: 2, NUMANodeID: 2},
|
|
83: {CoreID: 36, SocketID: 2, NUMANodeID: 2},
|
|
203: {CoreID: 36, SocketID: 2, NUMANodeID: 2},
|
|
143: {CoreID: 36, SocketID: 2, NUMANodeID: 2},
|
|
263: {CoreID: 36, SocketID: 2, NUMANodeID: 2},
|
|
84: {CoreID: 37, SocketID: 2, NUMANodeID: 2},
|
|
204: {CoreID: 37, SocketID: 2, NUMANodeID: 2},
|
|
144: {CoreID: 37, SocketID: 2, NUMANodeID: 2},
|
|
264: {CoreID: 37, SocketID: 2, NUMANodeID: 2},
|
|
91: {CoreID: 44, SocketID: 2, NUMANodeID: 2},
|
|
211: {CoreID: 44, SocketID: 2, NUMANodeID: 2},
|
|
151: {CoreID: 44, SocketID: 2, NUMANodeID: 2},
|
|
271: {CoreID: 44, SocketID: 2, NUMANodeID: 2},
|
|
92: {CoreID: 45, SocketID: 2, NUMANodeID: 2},
|
|
212: {CoreID: 45, SocketID: 2, NUMANodeID: 2},
|
|
152: {CoreID: 45, SocketID: 2, NUMANodeID: 2},
|
|
272: {CoreID: 45, SocketID: 2, NUMANodeID: 2},
|
|
99: {CoreID: 52, SocketID: 2, NUMANodeID: 2},
|
|
219: {CoreID: 52, SocketID: 2, NUMANodeID: 2},
|
|
159: {CoreID: 52, SocketID: 2, NUMANodeID: 2},
|
|
279: {CoreID: 52, SocketID: 2, NUMANodeID: 2},
|
|
100: {CoreID: 53, SocketID: 2, NUMANodeID: 2},
|
|
220: {CoreID: 53, SocketID: 2, NUMANodeID: 2},
|
|
160: {CoreID: 53, SocketID: 2, NUMANodeID: 2},
|
|
280: {CoreID: 53, SocketID: 2, NUMANodeID: 2},
|
|
105: {CoreID: 60, SocketID: 2, NUMANodeID: 2},
|
|
225: {CoreID: 60, SocketID: 2, NUMANodeID: 2},
|
|
165: {CoreID: 60, SocketID: 2, NUMANodeID: 2},
|
|
285: {CoreID: 60, SocketID: 2, NUMANodeID: 2},
|
|
106: {CoreID: 61, SocketID: 2, NUMANodeID: 2},
|
|
226: {CoreID: 61, SocketID: 2, NUMANodeID: 2},
|
|
166: {CoreID: 61, SocketID: 2, NUMANodeID: 2},
|
|
286: {CoreID: 61, SocketID: 2, NUMANodeID: 2},
|
|
7: {CoreID: 70, SocketID: 3, NUMANodeID: 3},
|
|
31: {CoreID: 70, SocketID: 3, NUMANodeID: 3},
|
|
19: {CoreID: 70, SocketID: 3, NUMANodeID: 3},
|
|
44: {CoreID: 70, SocketID: 3, NUMANodeID: 3},
|
|
8: {CoreID: 71, SocketID: 3, NUMANodeID: 3},
|
|
32: {CoreID: 71, SocketID: 3, NUMANodeID: 3},
|
|
20: {CoreID: 71, SocketID: 3, NUMANodeID: 3},
|
|
45: {CoreID: 71, SocketID: 3, NUMANodeID: 3},
|
|
37: {CoreID: 63, SocketID: 3, NUMANodeID: 3},
|
|
168: {CoreID: 63, SocketID: 3, NUMANodeID: 3},
|
|
108: {CoreID: 63, SocketID: 3, NUMANodeID: 3},
|
|
228: {CoreID: 63, SocketID: 3, NUMANodeID: 3},
|
|
107: {CoreID: 62, SocketID: 3, NUMANodeID: 3},
|
|
227: {CoreID: 62, SocketID: 3, NUMANodeID: 3},
|
|
167: {CoreID: 62, SocketID: 3, NUMANodeID: 3},
|
|
287: {CoreID: 62, SocketID: 3, NUMANodeID: 3},
|
|
55: {CoreID: 6, SocketID: 3, NUMANodeID: 3},
|
|
175: {CoreID: 6, SocketID: 3, NUMANodeID: 3},
|
|
115: {CoreID: 6, SocketID: 3, NUMANodeID: 3},
|
|
235: {CoreID: 6, SocketID: 3, NUMANodeID: 3},
|
|
56: {CoreID: 7, SocketID: 3, NUMANodeID: 3},
|
|
176: {CoreID: 7, SocketID: 3, NUMANodeID: 3},
|
|
116: {CoreID: 7, SocketID: 3, NUMANodeID: 3},
|
|
236: {CoreID: 7, SocketID: 3, NUMANodeID: 3},
|
|
63: {CoreID: 14, SocketID: 3, NUMANodeID: 3},
|
|
183: {CoreID: 14, SocketID: 3, NUMANodeID: 3},
|
|
123: {CoreID: 14, SocketID: 3, NUMANodeID: 3},
|
|
243: {CoreID: 14, SocketID: 3, NUMANodeID: 3},
|
|
64: {CoreID: 15, SocketID: 3, NUMANodeID: 3},
|
|
184: {CoreID: 15, SocketID: 3, NUMANodeID: 3},
|
|
124: {CoreID: 15, SocketID: 3, NUMANodeID: 3},
|
|
244: {CoreID: 15, SocketID: 3, NUMANodeID: 3},
|
|
69: {CoreID: 22, SocketID: 3, NUMANodeID: 3},
|
|
189: {CoreID: 22, SocketID: 3, NUMANodeID: 3},
|
|
129: {CoreID: 22, SocketID: 3, NUMANodeID: 3},
|
|
249: {CoreID: 22, SocketID: 3, NUMANodeID: 3},
|
|
70: {CoreID: 23, SocketID: 3, NUMANodeID: 3},
|
|
190: {CoreID: 23, SocketID: 3, NUMANodeID: 3},
|
|
130: {CoreID: 23, SocketID: 3, NUMANodeID: 3},
|
|
250: {CoreID: 23, SocketID: 3, NUMANodeID: 3},
|
|
77: {CoreID: 30, SocketID: 3, NUMANodeID: 3},
|
|
197: {CoreID: 30, SocketID: 3, NUMANodeID: 3},
|
|
137: {CoreID: 30, SocketID: 3, NUMANodeID: 3},
|
|
257: {CoreID: 30, SocketID: 3, NUMANodeID: 3},
|
|
78: {CoreID: 31, SocketID: 3, NUMANodeID: 3},
|
|
198: {CoreID: 31, SocketID: 3, NUMANodeID: 3},
|
|
138: {CoreID: 31, SocketID: 3, NUMANodeID: 3},
|
|
258: {CoreID: 31, SocketID: 3, NUMANodeID: 3},
|
|
85: {CoreID: 38, SocketID: 3, NUMANodeID: 3},
|
|
205: {CoreID: 38, SocketID: 3, NUMANodeID: 3},
|
|
145: {CoreID: 38, SocketID: 3, NUMANodeID: 3},
|
|
265: {CoreID: 38, SocketID: 3, NUMANodeID: 3},
|
|
86: {CoreID: 39, SocketID: 3, NUMANodeID: 3},
|
|
206: {CoreID: 39, SocketID: 3, NUMANodeID: 3},
|
|
146: {CoreID: 39, SocketID: 3, NUMANodeID: 3},
|
|
266: {CoreID: 39, SocketID: 3, NUMANodeID: 3},
|
|
93: {CoreID: 46, SocketID: 3, NUMANodeID: 3},
|
|
213: {CoreID: 46, SocketID: 3, NUMANodeID: 3},
|
|
153: {CoreID: 46, SocketID: 3, NUMANodeID: 3},
|
|
273: {CoreID: 46, SocketID: 3, NUMANodeID: 3},
|
|
94: {CoreID: 47, SocketID: 3, NUMANodeID: 3},
|
|
214: {CoreID: 47, SocketID: 3, NUMANodeID: 3},
|
|
154: {CoreID: 47, SocketID: 3, NUMANodeID: 3},
|
|
274: {CoreID: 47, SocketID: 3, NUMANodeID: 3},
|
|
101: {CoreID: 54, SocketID: 3, NUMANodeID: 3},
|
|
221: {CoreID: 54, SocketID: 3, NUMANodeID: 3},
|
|
161: {CoreID: 54, SocketID: 3, NUMANodeID: 3},
|
|
281: {CoreID: 54, SocketID: 3, NUMANodeID: 3},
|
|
102: {CoreID: 55, SocketID: 3, NUMANodeID: 3},
|
|
222: {CoreID: 55, SocketID: 3, NUMANodeID: 3},
|
|
162: {CoreID: 55, SocketID: 3, NUMANodeID: 3},
|
|
282: {CoreID: 55, SocketID: 3, NUMANodeID: 3},
|
|
},
|
|
}
|
|
/*
|
|
Topology from dual xeon gold 6230; lscpu excerpt
|
|
CPU(s): 80
|
|
On-line CPU(s) list: 0-79
|
|
Thread(s) per core: 2
|
|
Core(s) per socket: 20
|
|
Socket(s): 2
|
|
NUMA node(s): 4
|
|
NUMA node0 CPU(s): 0-9,40-49
|
|
NUMA node1 CPU(s): 10-19,50-59
|
|
NUMA node2 CPU(s): 20-29,60-69
|
|
NUMA node3 CPU(s): 30-39,70-79
|
|
*/
|
|
topoDualSocketMultiNumaPerSocketHT = &topology.CPUTopology{
|
|
NumCPUs: 80,
|
|
NumSockets: 2,
|
|
NumCores: 40,
|
|
NumNUMANodes: 4,
|
|
CPUDetails: map[int]topology.CPUInfo{
|
|
0: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
1: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
2: {CoreID: 2, SocketID: 0, NUMANodeID: 0},
|
|
3: {CoreID: 3, SocketID: 0, NUMANodeID: 0},
|
|
4: {CoreID: 4, SocketID: 0, NUMANodeID: 0},
|
|
5: {CoreID: 5, SocketID: 0, NUMANodeID: 0},
|
|
6: {CoreID: 6, SocketID: 0, NUMANodeID: 0},
|
|
7: {CoreID: 7, SocketID: 0, NUMANodeID: 0},
|
|
8: {CoreID: 8, SocketID: 0, NUMANodeID: 0},
|
|
9: {CoreID: 9, SocketID: 0, NUMANodeID: 0},
|
|
10: {CoreID: 10, SocketID: 0, NUMANodeID: 1},
|
|
11: {CoreID: 11, SocketID: 0, NUMANodeID: 1},
|
|
12: {CoreID: 12, SocketID: 0, NUMANodeID: 1},
|
|
13: {CoreID: 13, SocketID: 0, NUMANodeID: 1},
|
|
14: {CoreID: 14, SocketID: 0, NUMANodeID: 1},
|
|
15: {CoreID: 15, SocketID: 0, NUMANodeID: 1},
|
|
16: {CoreID: 16, SocketID: 0, NUMANodeID: 1},
|
|
17: {CoreID: 17, SocketID: 0, NUMANodeID: 1},
|
|
18: {CoreID: 18, SocketID: 0, NUMANodeID: 1},
|
|
19: {CoreID: 19, SocketID: 0, NUMANodeID: 1},
|
|
20: {CoreID: 20, SocketID: 1, NUMANodeID: 2},
|
|
21: {CoreID: 21, SocketID: 1, NUMANodeID: 2},
|
|
22: {CoreID: 22, SocketID: 1, NUMANodeID: 2},
|
|
23: {CoreID: 23, SocketID: 1, NUMANodeID: 2},
|
|
24: {CoreID: 24, SocketID: 1, NUMANodeID: 2},
|
|
25: {CoreID: 25, SocketID: 1, NUMANodeID: 2},
|
|
26: {CoreID: 26, SocketID: 1, NUMANodeID: 2},
|
|
27: {CoreID: 27, SocketID: 1, NUMANodeID: 2},
|
|
28: {CoreID: 28, SocketID: 1, NUMANodeID: 2},
|
|
29: {CoreID: 29, SocketID: 1, NUMANodeID: 2},
|
|
30: {CoreID: 30, SocketID: 1, NUMANodeID: 3},
|
|
31: {CoreID: 31, SocketID: 1, NUMANodeID: 3},
|
|
32: {CoreID: 32, SocketID: 1, NUMANodeID: 3},
|
|
33: {CoreID: 33, SocketID: 1, NUMANodeID: 3},
|
|
34: {CoreID: 34, SocketID: 1, NUMANodeID: 3},
|
|
35: {CoreID: 35, SocketID: 1, NUMANodeID: 3},
|
|
36: {CoreID: 36, SocketID: 1, NUMANodeID: 3},
|
|
37: {CoreID: 37, SocketID: 1, NUMANodeID: 3},
|
|
38: {CoreID: 38, SocketID: 1, NUMANodeID: 3},
|
|
39: {CoreID: 39, SocketID: 1, NUMANodeID: 3},
|
|
40: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
41: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
42: {CoreID: 2, SocketID: 0, NUMANodeID: 0},
|
|
43: {CoreID: 3, SocketID: 0, NUMANodeID: 0},
|
|
44: {CoreID: 4, SocketID: 0, NUMANodeID: 0},
|
|
45: {CoreID: 5, SocketID: 0, NUMANodeID: 0},
|
|
46: {CoreID: 6, SocketID: 0, NUMANodeID: 0},
|
|
47: {CoreID: 7, SocketID: 0, NUMANodeID: 0},
|
|
48: {CoreID: 8, SocketID: 0, NUMANodeID: 0},
|
|
49: {CoreID: 9, SocketID: 0, NUMANodeID: 0},
|
|
50: {CoreID: 10, SocketID: 0, NUMANodeID: 1},
|
|
51: {CoreID: 11, SocketID: 0, NUMANodeID: 1},
|
|
52: {CoreID: 12, SocketID: 0, NUMANodeID: 1},
|
|
53: {CoreID: 13, SocketID: 0, NUMANodeID: 1},
|
|
54: {CoreID: 14, SocketID: 0, NUMANodeID: 1},
|
|
55: {CoreID: 15, SocketID: 0, NUMANodeID: 1},
|
|
56: {CoreID: 16, SocketID: 0, NUMANodeID: 1},
|
|
57: {CoreID: 17, SocketID: 0, NUMANodeID: 1},
|
|
58: {CoreID: 18, SocketID: 0, NUMANodeID: 1},
|
|
59: {CoreID: 19, SocketID: 0, NUMANodeID: 1},
|
|
60: {CoreID: 20, SocketID: 1, NUMANodeID: 2},
|
|
61: {CoreID: 21, SocketID: 1, NUMANodeID: 2},
|
|
62: {CoreID: 22, SocketID: 1, NUMANodeID: 2},
|
|
63: {CoreID: 23, SocketID: 1, NUMANodeID: 2},
|
|
64: {CoreID: 24, SocketID: 1, NUMANodeID: 2},
|
|
65: {CoreID: 25, SocketID: 1, NUMANodeID: 2},
|
|
66: {CoreID: 26, SocketID: 1, NUMANodeID: 2},
|
|
67: {CoreID: 27, SocketID: 1, NUMANodeID: 2},
|
|
68: {CoreID: 28, SocketID: 1, NUMANodeID: 2},
|
|
69: {CoreID: 29, SocketID: 1, NUMANodeID: 2},
|
|
70: {CoreID: 30, SocketID: 1, NUMANodeID: 3},
|
|
71: {CoreID: 31, SocketID: 1, NUMANodeID: 3},
|
|
72: {CoreID: 32, SocketID: 1, NUMANodeID: 3},
|
|
73: {CoreID: 33, SocketID: 1, NUMANodeID: 3},
|
|
74: {CoreID: 34, SocketID: 1, NUMANodeID: 3},
|
|
75: {CoreID: 35, SocketID: 1, NUMANodeID: 3},
|
|
76: {CoreID: 36, SocketID: 1, NUMANodeID: 3},
|
|
77: {CoreID: 37, SocketID: 1, NUMANodeID: 3},
|
|
78: {CoreID: 38, SocketID: 1, NUMANodeID: 3},
|
|
79: {CoreID: 39, SocketID: 1, NUMANodeID: 3},
|
|
},
|
|
}
|
|
/*
|
|
FAKE Topology from dual xeon gold 6230
|
|
(see: topoDualSocketMultiNumaPerSocketHT).
|
|
We flip NUMA cells and Sockets to exercise the code.
|
|
TODO(fromanirh): replace with a real-world topology
|
|
once we find a suitable one.
|
|
*/
|
|
fakeTopoMultiSocketDualSocketPerNumaHT = &topology.CPUTopology{
|
|
NumCPUs: 80,
|
|
NumSockets: 4,
|
|
NumCores: 40,
|
|
NumNUMANodes: 2,
|
|
CPUDetails: map[int]topology.CPUInfo{
|
|
0: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
1: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
2: {CoreID: 2, SocketID: 0, NUMANodeID: 0},
|
|
3: {CoreID: 3, SocketID: 0, NUMANodeID: 0},
|
|
4: {CoreID: 4, SocketID: 0, NUMANodeID: 0},
|
|
5: {CoreID: 5, SocketID: 0, NUMANodeID: 0},
|
|
6: {CoreID: 6, SocketID: 0, NUMANodeID: 0},
|
|
7: {CoreID: 7, SocketID: 0, NUMANodeID: 0},
|
|
8: {CoreID: 8, SocketID: 0, NUMANodeID: 0},
|
|
9: {CoreID: 9, SocketID: 0, NUMANodeID: 0},
|
|
10: {CoreID: 10, SocketID: 1, NUMANodeID: 0},
|
|
11: {CoreID: 11, SocketID: 1, NUMANodeID: 0},
|
|
12: {CoreID: 12, SocketID: 1, NUMANodeID: 0},
|
|
13: {CoreID: 13, SocketID: 1, NUMANodeID: 0},
|
|
14: {CoreID: 14, SocketID: 1, NUMANodeID: 0},
|
|
15: {CoreID: 15, SocketID: 1, NUMANodeID: 0},
|
|
16: {CoreID: 16, SocketID: 1, NUMANodeID: 0},
|
|
17: {CoreID: 17, SocketID: 1, NUMANodeID: 0},
|
|
18: {CoreID: 18, SocketID: 1, NUMANodeID: 0},
|
|
19: {CoreID: 19, SocketID: 1, NUMANodeID: 0},
|
|
20: {CoreID: 20, SocketID: 2, NUMANodeID: 1},
|
|
21: {CoreID: 21, SocketID: 2, NUMANodeID: 1},
|
|
22: {CoreID: 22, SocketID: 2, NUMANodeID: 1},
|
|
23: {CoreID: 23, SocketID: 2, NUMANodeID: 1},
|
|
24: {CoreID: 24, SocketID: 2, NUMANodeID: 1},
|
|
25: {CoreID: 25, SocketID: 2, NUMANodeID: 1},
|
|
26: {CoreID: 26, SocketID: 2, NUMANodeID: 1},
|
|
27: {CoreID: 27, SocketID: 2, NUMANodeID: 1},
|
|
28: {CoreID: 28, SocketID: 2, NUMANodeID: 1},
|
|
29: {CoreID: 29, SocketID: 2, NUMANodeID: 1},
|
|
30: {CoreID: 30, SocketID: 3, NUMANodeID: 1},
|
|
31: {CoreID: 31, SocketID: 3, NUMANodeID: 1},
|
|
32: {CoreID: 32, SocketID: 3, NUMANodeID: 1},
|
|
33: {CoreID: 33, SocketID: 3, NUMANodeID: 1},
|
|
34: {CoreID: 34, SocketID: 3, NUMANodeID: 1},
|
|
35: {CoreID: 35, SocketID: 3, NUMANodeID: 1},
|
|
36: {CoreID: 36, SocketID: 3, NUMANodeID: 1},
|
|
37: {CoreID: 37, SocketID: 3, NUMANodeID: 1},
|
|
38: {CoreID: 38, SocketID: 3, NUMANodeID: 1},
|
|
39: {CoreID: 39, SocketID: 3, NUMANodeID: 1},
|
|
40: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
41: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
42: {CoreID: 2, SocketID: 0, NUMANodeID: 0},
|
|
43: {CoreID: 3, SocketID: 0, NUMANodeID: 0},
|
|
44: {CoreID: 4, SocketID: 0, NUMANodeID: 0},
|
|
45: {CoreID: 5, SocketID: 0, NUMANodeID: 0},
|
|
46: {CoreID: 6, SocketID: 0, NUMANodeID: 0},
|
|
47: {CoreID: 7, SocketID: 0, NUMANodeID: 0},
|
|
48: {CoreID: 8, SocketID: 0, NUMANodeID: 0},
|
|
49: {CoreID: 9, SocketID: 0, NUMANodeID: 0},
|
|
50: {CoreID: 10, SocketID: 1, NUMANodeID: 0},
|
|
51: {CoreID: 11, SocketID: 1, NUMANodeID: 0},
|
|
52: {CoreID: 12, SocketID: 1, NUMANodeID: 0},
|
|
53: {CoreID: 13, SocketID: 1, NUMANodeID: 0},
|
|
54: {CoreID: 14, SocketID: 1, NUMANodeID: 0},
|
|
55: {CoreID: 15, SocketID: 1, NUMANodeID: 0},
|
|
56: {CoreID: 16, SocketID: 1, NUMANodeID: 0},
|
|
57: {CoreID: 17, SocketID: 1, NUMANodeID: 0},
|
|
58: {CoreID: 18, SocketID: 1, NUMANodeID: 0},
|
|
59: {CoreID: 19, SocketID: 1, NUMANodeID: 0},
|
|
60: {CoreID: 20, SocketID: 2, NUMANodeID: 1},
|
|
61: {CoreID: 21, SocketID: 2, NUMANodeID: 1},
|
|
62: {CoreID: 22, SocketID: 2, NUMANodeID: 1},
|
|
63: {CoreID: 23, SocketID: 2, NUMANodeID: 1},
|
|
64: {CoreID: 24, SocketID: 2, NUMANodeID: 1},
|
|
65: {CoreID: 25, SocketID: 2, NUMANodeID: 1},
|
|
66: {CoreID: 26, SocketID: 2, NUMANodeID: 1},
|
|
67: {CoreID: 27, SocketID: 2, NUMANodeID: 1},
|
|
68: {CoreID: 28, SocketID: 2, NUMANodeID: 1},
|
|
69: {CoreID: 29, SocketID: 2, NUMANodeID: 1},
|
|
70: {CoreID: 30, SocketID: 3, NUMANodeID: 1},
|
|
71: {CoreID: 31, SocketID: 3, NUMANodeID: 1},
|
|
72: {CoreID: 32, SocketID: 3, NUMANodeID: 1},
|
|
73: {CoreID: 33, SocketID: 3, NUMANodeID: 1},
|
|
74: {CoreID: 34, SocketID: 3, NUMANodeID: 1},
|
|
75: {CoreID: 35, SocketID: 3, NUMANodeID: 1},
|
|
76: {CoreID: 36, SocketID: 3, NUMANodeID: 1},
|
|
77: {CoreID: 37, SocketID: 3, NUMANodeID: 1},
|
|
78: {CoreID: 38, SocketID: 3, NUMANodeID: 1},
|
|
79: {CoreID: 39, SocketID: 3, NUMANodeID: 1},
|
|
},
|
|
}
|
|
|
|
/*
|
|
Topology from dual AMD EPYC 7742 64-Core Processor; lscpu excerpt
|
|
CPU(s): 256
|
|
On-line CPU(s) list: 0-255
|
|
Thread(s) per core: 2
|
|
Core(s) per socket: 64
|
|
Socket(s): 2
|
|
NUMA node(s): 8 (NPS=4)
|
|
NUMA node0 CPU(s): 0-15,128-143
|
|
NUMA node1 CPU(s): 16-31,144-159
|
|
NUMA node2 CPU(s): 32-47,160-175
|
|
NUMA node3 CPU(s): 48-63,176-191
|
|
NUMA node4 CPU(s): 64-79,192-207
|
|
NUMA node5 CPU(s): 80-95,208-223
|
|
NUMA node6 CPU(s): 96-111,224-239
|
|
NUMA node7 CPU(s): 112-127,240-255
|
|
*/
|
|
topoDualSocketMultiNumaPerSocketHTLarge = &topology.CPUTopology{
|
|
NumCPUs: 256,
|
|
NumSockets: 2,
|
|
NumCores: 128,
|
|
NumNUMANodes: 8,
|
|
CPUDetails: map[int]topology.CPUInfo{
|
|
0: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
1: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
2: {CoreID: 2, SocketID: 0, NUMANodeID: 0},
|
|
3: {CoreID: 3, SocketID: 0, NUMANodeID: 0},
|
|
4: {CoreID: 4, SocketID: 0, NUMANodeID: 0},
|
|
5: {CoreID: 5, SocketID: 0, NUMANodeID: 0},
|
|
6: {CoreID: 6, SocketID: 0, NUMANodeID: 0},
|
|
7: {CoreID: 7, SocketID: 0, NUMANodeID: 0},
|
|
8: {CoreID: 8, SocketID: 0, NUMANodeID: 0},
|
|
9: {CoreID: 9, SocketID: 0, NUMANodeID: 0},
|
|
10: {CoreID: 10, SocketID: 0, NUMANodeID: 0},
|
|
11: {CoreID: 11, SocketID: 0, NUMANodeID: 0},
|
|
12: {CoreID: 12, SocketID: 0, NUMANodeID: 0},
|
|
13: {CoreID: 13, SocketID: 0, NUMANodeID: 0},
|
|
14: {CoreID: 14, SocketID: 0, NUMANodeID: 0},
|
|
15: {CoreID: 15, SocketID: 0, NUMANodeID: 0},
|
|
16: {CoreID: 16, SocketID: 0, NUMANodeID: 1},
|
|
17: {CoreID: 17, SocketID: 0, NUMANodeID: 1},
|
|
18: {CoreID: 18, SocketID: 0, NUMANodeID: 1},
|
|
19: {CoreID: 19, SocketID: 0, NUMANodeID: 1},
|
|
20: {CoreID: 20, SocketID: 0, NUMANodeID: 1},
|
|
21: {CoreID: 21, SocketID: 0, NUMANodeID: 1},
|
|
22: {CoreID: 22, SocketID: 0, NUMANodeID: 1},
|
|
23: {CoreID: 23, SocketID: 0, NUMANodeID: 1},
|
|
24: {CoreID: 24, SocketID: 0, NUMANodeID: 1},
|
|
25: {CoreID: 25, SocketID: 0, NUMANodeID: 1},
|
|
26: {CoreID: 26, SocketID: 0, NUMANodeID: 1},
|
|
27: {CoreID: 27, SocketID: 0, NUMANodeID: 1},
|
|
28: {CoreID: 28, SocketID: 0, NUMANodeID: 1},
|
|
29: {CoreID: 29, SocketID: 0, NUMANodeID: 1},
|
|
30: {CoreID: 30, SocketID: 0, NUMANodeID: 1},
|
|
31: {CoreID: 31, SocketID: 0, NUMANodeID: 1},
|
|
32: {CoreID: 32, SocketID: 0, NUMANodeID: 2},
|
|
33: {CoreID: 33, SocketID: 0, NUMANodeID: 2},
|
|
34: {CoreID: 34, SocketID: 0, NUMANodeID: 2},
|
|
35: {CoreID: 35, SocketID: 0, NUMANodeID: 2},
|
|
36: {CoreID: 36, SocketID: 0, NUMANodeID: 2},
|
|
37: {CoreID: 37, SocketID: 0, NUMANodeID: 2},
|
|
38: {CoreID: 38, SocketID: 0, NUMANodeID: 2},
|
|
39: {CoreID: 39, SocketID: 0, NUMANodeID: 2},
|
|
40: {CoreID: 40, SocketID: 0, NUMANodeID: 2},
|
|
41: {CoreID: 41, SocketID: 0, NUMANodeID: 2},
|
|
42: {CoreID: 42, SocketID: 0, NUMANodeID: 2},
|
|
43: {CoreID: 43, SocketID: 0, NUMANodeID: 2},
|
|
44: {CoreID: 44, SocketID: 0, NUMANodeID: 2},
|
|
45: {CoreID: 45, SocketID: 0, NUMANodeID: 2},
|
|
46: {CoreID: 46, SocketID: 0, NUMANodeID: 2},
|
|
47: {CoreID: 47, SocketID: 0, NUMANodeID: 2},
|
|
48: {CoreID: 48, SocketID: 0, NUMANodeID: 3},
|
|
49: {CoreID: 49, SocketID: 0, NUMANodeID: 3},
|
|
50: {CoreID: 50, SocketID: 0, NUMANodeID: 3},
|
|
51: {CoreID: 51, SocketID: 0, NUMANodeID: 3},
|
|
52: {CoreID: 52, SocketID: 0, NUMANodeID: 3},
|
|
53: {CoreID: 53, SocketID: 0, NUMANodeID: 3},
|
|
54: {CoreID: 54, SocketID: 0, NUMANodeID: 3},
|
|
55: {CoreID: 55, SocketID: 0, NUMANodeID: 3},
|
|
56: {CoreID: 56, SocketID: 0, NUMANodeID: 3},
|
|
57: {CoreID: 57, SocketID: 0, NUMANodeID: 3},
|
|
58: {CoreID: 58, SocketID: 0, NUMANodeID: 3},
|
|
59: {CoreID: 59, SocketID: 0, NUMANodeID: 3},
|
|
60: {CoreID: 60, SocketID: 0, NUMANodeID: 3},
|
|
61: {CoreID: 61, SocketID: 0, NUMANodeID: 3},
|
|
62: {CoreID: 62, SocketID: 0, NUMANodeID: 3},
|
|
63: {CoreID: 63, SocketID: 0, NUMANodeID: 3},
|
|
64: {CoreID: 64, SocketID: 1, NUMANodeID: 4},
|
|
65: {CoreID: 65, SocketID: 1, NUMANodeID: 4},
|
|
66: {CoreID: 66, SocketID: 1, NUMANodeID: 4},
|
|
67: {CoreID: 67, SocketID: 1, NUMANodeID: 4},
|
|
68: {CoreID: 68, SocketID: 1, NUMANodeID: 4},
|
|
69: {CoreID: 69, SocketID: 1, NUMANodeID: 4},
|
|
70: {CoreID: 70, SocketID: 1, NUMANodeID: 4},
|
|
71: {CoreID: 71, SocketID: 1, NUMANodeID: 4},
|
|
72: {CoreID: 72, SocketID: 1, NUMANodeID: 4},
|
|
73: {CoreID: 73, SocketID: 1, NUMANodeID: 4},
|
|
74: {CoreID: 74, SocketID: 1, NUMANodeID: 4},
|
|
75: {CoreID: 75, SocketID: 1, NUMANodeID: 4},
|
|
76: {CoreID: 76, SocketID: 1, NUMANodeID: 4},
|
|
77: {CoreID: 77, SocketID: 1, NUMANodeID: 4},
|
|
78: {CoreID: 78, SocketID: 1, NUMANodeID: 4},
|
|
79: {CoreID: 79, SocketID: 1, NUMANodeID: 4},
|
|
80: {CoreID: 80, SocketID: 1, NUMANodeID: 5},
|
|
81: {CoreID: 81, SocketID: 1, NUMANodeID: 5},
|
|
82: {CoreID: 82, SocketID: 1, NUMANodeID: 5},
|
|
83: {CoreID: 83, SocketID: 1, NUMANodeID: 5},
|
|
84: {CoreID: 84, SocketID: 1, NUMANodeID: 5},
|
|
85: {CoreID: 85, SocketID: 1, NUMANodeID: 5},
|
|
86: {CoreID: 86, SocketID: 1, NUMANodeID: 5},
|
|
87: {CoreID: 87, SocketID: 1, NUMANodeID: 5},
|
|
88: {CoreID: 88, SocketID: 1, NUMANodeID: 5},
|
|
89: {CoreID: 89, SocketID: 1, NUMANodeID: 5},
|
|
90: {CoreID: 90, SocketID: 1, NUMANodeID: 5},
|
|
91: {CoreID: 91, SocketID: 1, NUMANodeID: 5},
|
|
92: {CoreID: 92, SocketID: 1, NUMANodeID: 5},
|
|
93: {CoreID: 93, SocketID: 1, NUMANodeID: 5},
|
|
94: {CoreID: 94, SocketID: 1, NUMANodeID: 5},
|
|
95: {CoreID: 95, SocketID: 1, NUMANodeID: 5},
|
|
96: {CoreID: 96, SocketID: 1, NUMANodeID: 6},
|
|
97: {CoreID: 97, SocketID: 1, NUMANodeID: 6},
|
|
98: {CoreID: 98, SocketID: 1, NUMANodeID: 6},
|
|
99: {CoreID: 99, SocketID: 1, NUMANodeID: 6},
|
|
100: {CoreID: 100, SocketID: 1, NUMANodeID: 6},
|
|
101: {CoreID: 101, SocketID: 1, NUMANodeID: 6},
|
|
102: {CoreID: 102, SocketID: 1, NUMANodeID: 6},
|
|
103: {CoreID: 103, SocketID: 1, NUMANodeID: 6},
|
|
104: {CoreID: 104, SocketID: 1, NUMANodeID: 6},
|
|
105: {CoreID: 105, SocketID: 1, NUMANodeID: 6},
|
|
106: {CoreID: 106, SocketID: 1, NUMANodeID: 6},
|
|
107: {CoreID: 107, SocketID: 1, NUMANodeID: 6},
|
|
108: {CoreID: 108, SocketID: 1, NUMANodeID: 6},
|
|
109: {CoreID: 109, SocketID: 1, NUMANodeID: 6},
|
|
110: {CoreID: 110, SocketID: 1, NUMANodeID: 6},
|
|
111: {CoreID: 111, SocketID: 1, NUMANodeID: 6},
|
|
112: {CoreID: 112, SocketID: 1, NUMANodeID: 7},
|
|
113: {CoreID: 113, SocketID: 1, NUMANodeID: 7},
|
|
114: {CoreID: 114, SocketID: 1, NUMANodeID: 7},
|
|
115: {CoreID: 115, SocketID: 1, NUMANodeID: 7},
|
|
116: {CoreID: 116, SocketID: 1, NUMANodeID: 7},
|
|
117: {CoreID: 117, SocketID: 1, NUMANodeID: 7},
|
|
118: {CoreID: 118, SocketID: 1, NUMANodeID: 7},
|
|
119: {CoreID: 119, SocketID: 1, NUMANodeID: 7},
|
|
120: {CoreID: 120, SocketID: 1, NUMANodeID: 7},
|
|
121: {CoreID: 121, SocketID: 1, NUMANodeID: 7},
|
|
122: {CoreID: 122, SocketID: 1, NUMANodeID: 7},
|
|
123: {CoreID: 123, SocketID: 1, NUMANodeID: 7},
|
|
124: {CoreID: 124, SocketID: 1, NUMANodeID: 7},
|
|
125: {CoreID: 125, SocketID: 1, NUMANodeID: 7},
|
|
126: {CoreID: 126, SocketID: 1, NUMANodeID: 7},
|
|
127: {CoreID: 127, SocketID: 1, NUMANodeID: 7},
|
|
128: {CoreID: 0, SocketID: 0, NUMANodeID: 0},
|
|
129: {CoreID: 1, SocketID: 0, NUMANodeID: 0},
|
|
130: {CoreID: 2, SocketID: 0, NUMANodeID: 0},
|
|
131: {CoreID: 3, SocketID: 0, NUMANodeID: 0},
|
|
132: {CoreID: 4, SocketID: 0, NUMANodeID: 0},
|
|
133: {CoreID: 5, SocketID: 0, NUMANodeID: 0},
|
|
134: {CoreID: 6, SocketID: 0, NUMANodeID: 0},
|
|
135: {CoreID: 7, SocketID: 0, NUMANodeID: 0},
|
|
136: {CoreID: 8, SocketID: 0, NUMANodeID: 0},
|
|
137: {CoreID: 9, SocketID: 0, NUMANodeID: 0},
|
|
138: {CoreID: 10, SocketID: 0, NUMANodeID: 0},
|
|
139: {CoreID: 11, SocketID: 0, NUMANodeID: 0},
|
|
140: {CoreID: 12, SocketID: 0, NUMANodeID: 0},
|
|
141: {CoreID: 13, SocketID: 0, NUMANodeID: 0},
|
|
142: {CoreID: 14, SocketID: 0, NUMANodeID: 0},
|
|
143: {CoreID: 15, SocketID: 0, NUMANodeID: 0},
|
|
144: {CoreID: 16, SocketID: 0, NUMANodeID: 1},
|
|
145: {CoreID: 17, SocketID: 0, NUMANodeID: 1},
|
|
146: {CoreID: 18, SocketID: 0, NUMANodeID: 1},
|
|
147: {CoreID: 19, SocketID: 0, NUMANodeID: 1},
|
|
148: {CoreID: 20, SocketID: 0, NUMANodeID: 1},
|
|
149: {CoreID: 21, SocketID: 0, NUMANodeID: 1},
|
|
150: {CoreID: 22, SocketID: 0, NUMANodeID: 1},
|
|
151: {CoreID: 23, SocketID: 0, NUMANodeID: 1},
|
|
152: {CoreID: 24, SocketID: 0, NUMANodeID: 1},
|
|
153: {CoreID: 25, SocketID: 0, NUMANodeID: 1},
|
|
154: {CoreID: 26, SocketID: 0, NUMANodeID: 1},
|
|
155: {CoreID: 27, SocketID: 0, NUMANodeID: 1},
|
|
156: {CoreID: 28, SocketID: 0, NUMANodeID: 1},
|
|
157: {CoreID: 29, SocketID: 0, NUMANodeID: 1},
|
|
158: {CoreID: 30, SocketID: 0, NUMANodeID: 1},
|
|
159: {CoreID: 31, SocketID: 0, NUMANodeID: 1},
|
|
160: {CoreID: 32, SocketID: 0, NUMANodeID: 2},
|
|
161: {CoreID: 33, SocketID: 0, NUMANodeID: 2},
|
|
162: {CoreID: 34, SocketID: 0, NUMANodeID: 2},
|
|
163: {CoreID: 35, SocketID: 0, NUMANodeID: 2},
|
|
164: {CoreID: 36, SocketID: 0, NUMANodeID: 2},
|
|
165: {CoreID: 37, SocketID: 0, NUMANodeID: 2},
|
|
166: {CoreID: 38, SocketID: 0, NUMANodeID: 2},
|
|
167: {CoreID: 39, SocketID: 0, NUMANodeID: 2},
|
|
168: {CoreID: 40, SocketID: 0, NUMANodeID: 2},
|
|
169: {CoreID: 41, SocketID: 0, NUMANodeID: 2},
|
|
170: {CoreID: 42, SocketID: 0, NUMANodeID: 2},
|
|
171: {CoreID: 43, SocketID: 0, NUMANodeID: 2},
|
|
172: {CoreID: 44, SocketID: 0, NUMANodeID: 2},
|
|
173: {CoreID: 45, SocketID: 0, NUMANodeID: 2},
|
|
174: {CoreID: 46, SocketID: 0, NUMANodeID: 2},
|
|
175: {CoreID: 47, SocketID: 0, NUMANodeID: 2},
|
|
176: {CoreID: 48, SocketID: 0, NUMANodeID: 3},
|
|
177: {CoreID: 49, SocketID: 0, NUMANodeID: 3},
|
|
178: {CoreID: 50, SocketID: 0, NUMANodeID: 3},
|
|
179: {CoreID: 51, SocketID: 0, NUMANodeID: 3},
|
|
180: {CoreID: 52, SocketID: 0, NUMANodeID: 3},
|
|
181: {CoreID: 53, SocketID: 0, NUMANodeID: 3},
|
|
182: {CoreID: 54, SocketID: 0, NUMANodeID: 3},
|
|
183: {CoreID: 55, SocketID: 0, NUMANodeID: 3},
|
|
184: {CoreID: 56, SocketID: 0, NUMANodeID: 3},
|
|
185: {CoreID: 57, SocketID: 0, NUMANodeID: 3},
|
|
186: {CoreID: 58, SocketID: 0, NUMANodeID: 3},
|
|
187: {CoreID: 59, SocketID: 0, NUMANodeID: 3},
|
|
188: {CoreID: 60, SocketID: 0, NUMANodeID: 3},
|
|
189: {CoreID: 61, SocketID: 0, NUMANodeID: 3},
|
|
190: {CoreID: 62, SocketID: 0, NUMANodeID: 3},
|
|
191: {CoreID: 63, SocketID: 0, NUMANodeID: 3},
|
|
192: {CoreID: 64, SocketID: 1, NUMANodeID: 4},
|
|
193: {CoreID: 65, SocketID: 1, NUMANodeID: 4},
|
|
194: {CoreID: 66, SocketID: 1, NUMANodeID: 4},
|
|
195: {CoreID: 67, SocketID: 1, NUMANodeID: 4},
|
|
196: {CoreID: 68, SocketID: 1, NUMANodeID: 4},
|
|
197: {CoreID: 69, SocketID: 1, NUMANodeID: 4},
|
|
198: {CoreID: 70, SocketID: 1, NUMANodeID: 4},
|
|
199: {CoreID: 71, SocketID: 1, NUMANodeID: 4},
|
|
200: {CoreID: 72, SocketID: 1, NUMANodeID: 4},
|
|
201: {CoreID: 73, SocketID: 1, NUMANodeID: 4},
|
|
202: {CoreID: 74, SocketID: 1, NUMANodeID: 4},
|
|
203: {CoreID: 75, SocketID: 1, NUMANodeID: 4},
|
|
204: {CoreID: 76, SocketID: 1, NUMANodeID: 4},
|
|
205: {CoreID: 77, SocketID: 1, NUMANodeID: 4},
|
|
206: {CoreID: 78, SocketID: 1, NUMANodeID: 4},
|
|
207: {CoreID: 79, SocketID: 1, NUMANodeID: 4},
|
|
208: {CoreID: 80, SocketID: 1, NUMANodeID: 5},
|
|
209: {CoreID: 81, SocketID: 1, NUMANodeID: 5},
|
|
210: {CoreID: 82, SocketID: 1, NUMANodeID: 5},
|
|
211: {CoreID: 83, SocketID: 1, NUMANodeID: 5},
|
|
212: {CoreID: 84, SocketID: 1, NUMANodeID: 5},
|
|
213: {CoreID: 85, SocketID: 1, NUMANodeID: 5},
|
|
214: {CoreID: 86, SocketID: 1, NUMANodeID: 5},
|
|
215: {CoreID: 87, SocketID: 1, NUMANodeID: 5},
|
|
216: {CoreID: 88, SocketID: 1, NUMANodeID: 5},
|
|
217: {CoreID: 89, SocketID: 1, NUMANodeID: 5},
|
|
218: {CoreID: 90, SocketID: 1, NUMANodeID: 5},
|
|
219: {CoreID: 91, SocketID: 1, NUMANodeID: 5},
|
|
220: {CoreID: 92, SocketID: 1, NUMANodeID: 5},
|
|
221: {CoreID: 93, SocketID: 1, NUMANodeID: 5},
|
|
222: {CoreID: 94, SocketID: 1, NUMANodeID: 5},
|
|
223: {CoreID: 95, SocketID: 1, NUMANodeID: 5},
|
|
224: {CoreID: 96, SocketID: 1, NUMANodeID: 6},
|
|
225: {CoreID: 97, SocketID: 1, NUMANodeID: 6},
|
|
226: {CoreID: 98, SocketID: 1, NUMANodeID: 6},
|
|
227: {CoreID: 99, SocketID: 1, NUMANodeID: 6},
|
|
228: {CoreID: 100, SocketID: 1, NUMANodeID: 6},
|
|
229: {CoreID: 101, SocketID: 1, NUMANodeID: 6},
|
|
230: {CoreID: 102, SocketID: 1, NUMANodeID: 6},
|
|
231: {CoreID: 103, SocketID: 1, NUMANodeID: 6},
|
|
232: {CoreID: 104, SocketID: 1, NUMANodeID: 6},
|
|
233: {CoreID: 105, SocketID: 1, NUMANodeID: 6},
|
|
234: {CoreID: 106, SocketID: 1, NUMANodeID: 6},
|
|
235: {CoreID: 107, SocketID: 1, NUMANodeID: 6},
|
|
236: {CoreID: 108, SocketID: 1, NUMANodeID: 6},
|
|
237: {CoreID: 109, SocketID: 1, NUMANodeID: 6},
|
|
238: {CoreID: 110, SocketID: 1, NUMANodeID: 6},
|
|
239: {CoreID: 111, SocketID: 1, NUMANodeID: 6},
|
|
240: {CoreID: 112, SocketID: 1, NUMANodeID: 7},
|
|
241: {CoreID: 113, SocketID: 1, NUMANodeID: 7},
|
|
242: {CoreID: 114, SocketID: 1, NUMANodeID: 7},
|
|
243: {CoreID: 115, SocketID: 1, NUMANodeID: 7},
|
|
244: {CoreID: 116, SocketID: 1, NUMANodeID: 7},
|
|
245: {CoreID: 117, SocketID: 1, NUMANodeID: 7},
|
|
246: {CoreID: 118, SocketID: 1, NUMANodeID: 7},
|
|
247: {CoreID: 119, SocketID: 1, NUMANodeID: 7},
|
|
248: {CoreID: 120, SocketID: 1, NUMANodeID: 7},
|
|
249: {CoreID: 121, SocketID: 1, NUMANodeID: 7},
|
|
250: {CoreID: 122, SocketID: 1, NUMANodeID: 7},
|
|
251: {CoreID: 123, SocketID: 1, NUMANodeID: 7},
|
|
252: {CoreID: 124, SocketID: 1, NUMANodeID: 7},
|
|
253: {CoreID: 125, SocketID: 1, NUMANodeID: 7},
|
|
254: {CoreID: 126, SocketID: 1, NUMANodeID: 7},
|
|
255: {CoreID: 127, SocketID: 1, NUMANodeID: 7},
|
|
},
|
|
}
|
|
)
|