Nektar++
Public Member Functions | Public Attributes | List of all members
class_topology.Topology Class Reference

Public Member Functions

def __init__ (self, PROC_Z, PROC_XY, Num_Core_Per_Socket, Num_Sock_Per_Node, Scheme)
 
def Print_Hardware (self)
 
def Distribute_Elements (self, Num_Element_Msg, Num_Elements)
 
def Distribute_Modes (self, Num_Modes)
 
def Hardware_Constant (self, Num_Constants, constants)
 
def Print_Elements (self, Index)
 
def Print_Modes (self, Index)
 
def CG_Iterations (self, Pressure, Velocity_1, Velocity_2, Velocity_3)
 
def Data_Size (self, P)
 
def Input_Communication (self, BW_Node_To_Node, LAT_Node_To_Node, BW_Socket_To_Socket, LAT_Socket_To_Socket, BW_Core_To_Core, LAT_Core_To_Core)
 
def Check_Neighbour (self, core_1, core_2)
 
def Communication_Pairwise_Exchange (self)
 
def Communication_Allreduce (self)
 
def Communication_Alltoall (self)
 
def Serial_Compute (self)
 

Public Attributes

 PROC_Z
 
 PROC_XY
 
 Num_Core_Per_Socket
 
 Num_Sock_Per_Node
 
 Scheme
 
 PROC_TOT
 
 Core
 
 Socket
 
 Node
 
 Elements_Disributed
 
 Modes_Disributed
 
 Data_Size_Input
 
 Data_Communication_Input
 
 Num_Elements
 
 Num_Element_Msg
 
 Num_Modes
 
 N_Z
 
 Split
 
 Modes
 
 Planes
 
 Plane_Num
 
 Num_Constants
 
 constants
 
 Pressure
 
 Velocity_1
 
 Velocity_2
 
 Velocity_3
 
 P
 
 Data_Element
 
 Data_Mode
 
 BW_Node_To_Node
 
 BW_Socket_To_Socket
 
 BW_Core_To_Core
 
 LAT_Node_To_Node
 
 LAT_Socket_To_Socket
 
 LAT_Core_To_Core
 

Detailed Description

Definition at line 22 of file class_topology.py.

Constructor & Destructor Documentation

◆ __init__()

def class_topology.Topology.__init__ (   self,
  PROC_Z,
  PROC_XY,
  Num_Core_Per_Socket,
  Num_Sock_Per_Node,
  Scheme 
)

Definition at line 29 of file class_topology.py.

29 def __init__(self, PROC_Z, PROC_XY, Num_Core_Per_Socket, Num_Sock_Per_Node, Scheme):
30
31 # Store read in data
32 self.PROC_Z = PROC_Z
33 self.PROC_XY = PROC_XY
34 self.Num_Core_Per_Socket = Num_Core_Per_Socket
35 self.Num_Sock_Per_Node = Num_Sock_Per_Node
36 self.Scheme = Scheme
37
38 # Calculate PROC_TOT
39 self.PROC_TOT = self.PROC_XY * self.PROC_Z
40
41 # Initialise storage lists
42 self.Core = []
43 self.Socket = []
44 self.Node = []
45
46 # Begin counters used in for loops
47 count_core = 0
48 count_socket_old = 0
49 count_socket_new = 0
50 count_node = 0
51
52 # Iterate over cores assigning core, socket and node number
53 for i in range(0, self.PROC_Z):
54 for j in range(0, self.PROC_XY):
55 self.Core.append(count_core)
56 self.Socket.append(count_socket_new)
57 self.Node.append(count_node)
58
59 count_core += 1
60
61 # Use modulo to find when to iterate socker number based on bumber of cores assigned
62 if(count_core % Num_Core_Per_Socket == 0):
63 count_socket_new = count_socket_new + 1
64
65 # Use modulo to find when to iterate node number based on bumber of sockets assigned
66 if(count_socket_old != count_socket_new):
67 if(count_socket_new % Num_Sock_Per_Node == 0):
68 count_node = count_node + 1;
69
70 # Update socket counter
71 count_socket_old = count_socket_new;
72
73 # Flags to track operations that have occured, default to False
74 self.Elements_Disributed = False
75 self.Modes_Disributed = False
76 self.Data_Size_Input = False
77 self.Data_Communication_Input = False
78
79
80#------------------------------------
81# New Function
82#------------------------------------
83

Member Function Documentation

◆ CG_Iterations()

def class_topology.Topology.CG_Iterations (   self,
  Pressure,
  Velocity_1,
  Velocity_2,
  Velocity_3 
)

Definition at line 277 of file class_topology.py.

277 def CG_Iterations(self, Pressure, Velocity_1, Velocity_2, Velocity_3):
278 self.Pressure = Pressure
279 self.Velocity_1 = Velocity_1
280 self.Velocity_2 = Velocity_2
281 self.Velocity_3 = Velocity_3
282
283#------------------------------------
284# New Function
285#------------------------------------
286

◆ Check_Neighbour()

def class_topology.Topology.Check_Neighbour (   self,
  core_1,
  core_2 
)

Definition at line 318 of file class_topology.py.

318 def Check_Neighbour(self, core_1, core_2):
319 if(core_1 == core_2):
320 return 0
321
322 if(self.Socket[core_1] == self.Socket[core_2]):
323 return 1
324
325 if(self.Node[core_1] == self.Node[core_2]):
326 return 2;
327
328 else:
329 return 3;
330
331#------------------------------------
332# New Function
333#------------------------------------
334

References class_topology.Topology.Node, and class_topology.Topology.Socket.

Referenced by class_topology.Topology.Communication_Allreduce(), class_topology.Topology.Communication_Alltoall(), and class_topology.Topology.Communication_Pairwise_Exchange().

◆ Communication_Allreduce()

def class_topology.Topology.Communication_Allreduce (   self)

Definition at line 385 of file class_topology.py.

385 def Communication_Allreduce(self):
386
387 # We count the number of
388 comm_max = 0.0
389
390 # Set max relation size tracking to False
391 relation_1 = False
392 relation_2 = False
393 relation_3 = False
394
395 for i in range(0, self.PROC_Z):
396 current = self.Core[i * self.PROC_XY]
397
398 current_row = i
399
400 CG_Iter = 0
401 for j in range(0, len(self.Plane_Num[current_row])):
402 try:
403 Plane = self.Plane_Num[current_row][j] + 1
404 CG_Iter += self.Pressure[str(Plane)][0]
405 CG_Iter += self.Velocity_1[str(Plane)][0]
406 CG_Iter += self.Velocity_2[str(Plane)][0]
407 CG_Iter += self.Velocity_3[str(Plane)][0]
408 except:
409 continue
410
411 comm_count = 0.0
412
413 for j in range(0, self.PROC_XY - 1):
414 current_right = current + 1
415
416 relation = self.Check_Neighbour(current, current_right)
417
418 if (relation == 1):
419 comm_count += self.LAT_Core_To_Core + (3 * 8)/(self.BW_Core_To_Core)
420 relation_1 = True
421
422 if (relation == 2):
423 comm_count += self.LAT_Socket_To_Socket + (3 * 8)/(self.BW_Socket_To_Socket)
424 relation_2 = True
425
426 if (relation == 3):
427 comm_count += self.LAT_Node_To_Node + (3 * 8)/(self.BW_Node_To_Node)
428 relation_3 = True
429
430 current += 1
431
432 comm_count = comm_count * CG_Iter
433 if (comm_count >= comm_max):
434 comm_max = comm_count
435 CG_MAX = CG_Iter
436
437 if (relation_1 is True and relation_2 is False and relation_3 is False):
438 comm_max += (self.LAT_Core_To_Core + (3 * 8)/(self.BW_Core_To_Core)) * CG_MAX
439
440 if (relation_1 is True and relation_2 is True and relation_3 is False):
441 comm_max += (self.LAT_Socket_To_Socket + (3 * 8)/(self.BW_Socket_To_Socket)) * CG_MAX
442
443 if (relation_1 is True and relation_2 is True and relation_3 is True):
444 comm_max += (self.LAT_Node_To_Node + (3 * 8)/(self.BW_Node_To_Node)) * CG_MAX
445
446 return(comm_max)
447
448#------------------------------------
449# New Function
450#------------------------------------
451

References class_topology.Topology.BW_Core_To_Core, class_topology.Topology.BW_Node_To_Node, class_topology.Topology.BW_Socket_To_Socket, class_topology.Topology.Check_Neighbour(), class_topology.Topology.Core, class_topology.Topology.LAT_Core_To_Core, class_topology.Topology.LAT_Node_To_Node, class_topology.Topology.LAT_Socket_To_Socket, class_topology.Topology.Plane_Num, class_topology.Topology.Pressure, class_topology.Topology.PROC_XY, class_topology.Topology.PROC_Z, class_topology.Topology.Velocity_1, class_topology.Topology.Velocity_2, and class_topology.Topology.Velocity_3.

◆ Communication_Alltoall()

def class_topology.Topology.Communication_Alltoall (   self)

Definition at line 453 of file class_topology.py.

453 def Communication_Alltoall(self):
454
455 # Find how long each core requires to send its information to each level, core, socker or node.
456 MSG_Node_Mode = []
457 MSG_Socket_Mode = []
458 MSG_Core_Mode = []
459
460 # Divide by PROC_Z as Alltoall involves this data size
461 for i in range(0, self.PROC_Z):
462 for j in range(0, self.PROC_XY):
463 MSG_Node_Mode.append(self.LAT_Node_To_Node + (self.Planes[i] * self.Num_Elements[i][j] * self.Data_Mode)/((self.BW_Node_To_Node) * self.PROC_Z))
464 MSG_Socket_Mode.append(self.LAT_Socket_To_Socket + (self.Planes[i] * self.Num_Elements[i][j] * self.Data_Mode)/((self.BW_Socket_To_Socket) * self.PROC_Z))
465 MSG_Core_Mode.append(self.LAT_Core_To_Core + (self.Planes[i] * self.Num_Elements[i][j] * self.Data_Mode)/((self.BW_Core_To_Core) * self.PROC_Z))
466
467 # We are looking for the core that has the most communication to do in this Alltoall set up.
468 # Each core performs PROC_Z - 1 sends (A send contains the recieve in this model)
469 comm_max = 0.0
470
471 for i in range(0, self.PROC_Z):
472 for j in range(0, self.PROC_XY):
473
474 # Counter for the communication for this the current core
475 comm_count = 0.0
476
477 # Current column and core
478 current = self.Core[i*self.PROC_XY + j]
479 current_column = current % self.PROC_XY
480
481 # Loop looking for neighbours and counting the communication
482 for k in range(0, self.PROC_TOT):
483 if (k % self.PROC_XY == current_column):
484 relation = self.Check_Neighbour(current, k)
485
486 if (relation == 0):
487 continue
488
489 if (relation == 1):
490 comm_count += MSG_Core_Mode[current]
491 continue
492
493 if (relation == 2):
494 comm_count += MSG_Socket_Mode[current]
495 continue
496
497 if (relation == 3):
498 comm_count += MSG_Node_Mode[current]
499 continue
500
501 # Update the largest communication cost
502 if (comm_count >= comm_max):
503 comm_max = comm_count
504
505 # Return the result
506 return(18 * comm_max)
507
508#------------------------------------
509# New Function
510#------------------------------------
511

References class_topology.Topology.BW_Core_To_Core, class_topology.Topology.BW_Node_To_Node, class_topology.Topology.BW_Socket_To_Socket, class_topology.Topology.Check_Neighbour(), class_topology.Topology.Core, class_topology.Topology.Data_Mode, class_topology.Topology.LAT_Core_To_Core, class_topology.Topology.LAT_Node_To_Node, class_topology.Topology.LAT_Socket_To_Socket, class_topology.Topology.Num_Elements, class_topology.Topology.Planes, class_topology.Topology.PROC_TOT, class_topology.Topology.PROC_XY, and class_topology.Topology.PROC_Z.

◆ Communication_Pairwise_Exchange()

def class_topology.Topology.Communication_Pairwise_Exchange (   self)

Definition at line 336 of file class_topology.py.

336 def Communication_Pairwise_Exchange(self):
337 comm_max = 0.0
338
339 for i in range(0, self.PROC_Z):
340
341 current_row = i
342
343 CG_Iter = 0
344
345 for j in range(0, len(self.Plane_Num[current_row])):
346 try:
347 Plane = self.Plane_Num[current_row][j] + 1
348 CG_Iter += self.Pressure[str(Plane)][0]
349 CG_Iter += self.Velocity_1[str(Plane)][0]
350 CG_Iter += self.Velocity_2[str(Plane)][0]
351 CG_Iter += self.Velocity_3[str(Plane)][0]
352 except:
353 continue
354
355 for j in range(0, self.PROC_XY):
356 comm_count = 0.0
357 current = i * self.PROC_XY + j
358
359 for k in range(0, self.PROC_XY):
360 send_loc = i * self.PROC_XY + k
361
362 relation = self.Check_Neighbour(current, send_loc)
363
364 if (relation == 1):
365 comm_count += self.LAT_Core_To_Core + (self.Num_Element_Msg[j][k] * self.Data_Element)/(self.BW_Core_To_Core)
366
367 if (relation == 2):
368 comm_count += self.LAT_Socket_To_Socket + (self.Num_Element_Msg[j][k] * self.Data_Element)/(self.BW_Socket_To_Socket)
369
370 if (relation == 3):
371 comm_count += self.LAT_Node_To_Node + (self.Num_Element_Msg[j][k] * self.Data_Element)/(self.BW_Node_To_Node)
372
373 comm_count = comm_count * CG_Iter
374
375 if (comm_count >= comm_max):
376 comm_max = comm_count
377
378 return(comm_max)
379
380#------------------------------------
381# New Function
382#------------------------------------
383

References class_topology.Topology.BW_Core_To_Core, class_topology.Topology.BW_Node_To_Node, class_topology.Topology.BW_Socket_To_Socket, class_topology.Topology.Check_Neighbour(), class_topology.Topology.Data_Element, class_topology.Topology.LAT_Core_To_Core, class_topology.Topology.LAT_Node_To_Node, class_topology.Topology.LAT_Socket_To_Socket, class_topology.Topology.Num_Element_Msg, class_topology.Topology.Plane_Num, class_topology.Topology.Pressure, class_topology.Topology.PROC_XY, class_topology.Topology.PROC_Z, class_topology.Topology.Velocity_1, class_topology.Topology.Velocity_2, and class_topology.Topology.Velocity_3.

◆ Data_Size()

def class_topology.Topology.Data_Size (   self,
  P 
)

Definition at line 289 of file class_topology.py.

289 def Data_Size(self, P):
290 self.P = P
291 self.Data_Element = (P + 1) * 8
292 self.Data_Mode = 8 * ((P+1) ** 2)
293
294 # Update tracker flag
295 self.Data_Size_Input = True
296
297#------------------------------------
298# New Function
299#------------------------------------
300

◆ Distribute_Elements()

def class_topology.Topology.Distribute_Elements (   self,
  Num_Element_Msg,
  Num_Elements 
)

Definition at line 133 of file class_topology.py.

133 def Distribute_Elements(self, Num_Element_Msg, Num_Elements):
134 self.Num_Elements = []
135 for i in range(0, self.PROC_Z):
136 self.Num_Elements.append([])
137 for j in range(0, self.PROC_XY):
138 self.Num_Elements[i].append(Num_Elements[j])
139
140 self.Num_Element_Msg = Num_Element_Msg
141
142 self.Elements_Disributed = True
143
144#------------------------------------
145# New Function
146#------------------------------------
147

◆ Distribute_Modes()

def class_topology.Topology.Distribute_Modes (   self,
  Num_Modes 
)

Definition at line 149 of file class_topology.py.

149 def Distribute_Modes(self, Num_Modes):
150 self.Num_Modes = Num_Modes
151 self.N_Z = Num_Modes * 2
152 self.Split = self.Num_Modes / self.PROC_Z
153 self.Modes = []
154 self.Planes = []
155 self.Plane_Num = []
156 for i in range(0, self.PROC_TOT):
157 self.Modes.append(self.Split)
158 self.Planes.append(self.Split * 2)
159
160 for i in range(0, self.PROC_Z):
161 self.Plane_Num.append([])
162 for j in range(0, self.Split * 2):
163 self.Plane_Num[i].append(i * (self.Split * 2) + j)
164
165 self.Modes_Disributed = True
166
167#------------------------------------
168# New Function
169#------------------------------------
170

◆ Hardware_Constant()

def class_topology.Topology.Hardware_Constant (   self,
  Num_Constants,
  constants 
)

Definition at line 172 of file class_topology.py.

172 def Hardware_Constant(self, Num_Constants, constants):
173 self.Num_Constants = Num_Constants
174 self.constants = constants
175
176
177#------------------------------------
178# New Function
179#------------------------------------
180

◆ Input_Communication()

def class_topology.Topology.Input_Communication (   self,
  BW_Node_To_Node,
  LAT_Node_To_Node,
  BW_Socket_To_Socket,
  LAT_Socket_To_Socket,
  BW_Core_To_Core,
  LAT_Core_To_Core 
)

Definition at line 302 of file class_topology.py.

302 def Input_Communication(self, BW_Node_To_Node, LAT_Node_To_Node, BW_Socket_To_Socket, LAT_Socket_To_Socket, BW_Core_To_Core, LAT_Core_To_Core):
303 self.BW_Node_To_Node = BW_Node_To_Node
304 self.BW_Socket_To_Socket = BW_Socket_To_Socket
305 self.BW_Core_To_Core = BW_Core_To_Core
306 self.LAT_Node_To_Node = LAT_Node_To_Node
307 self.LAT_Socket_To_Socket = LAT_Socket_To_Socket
308 self.LAT_Core_To_Core = LAT_Core_To_Core
309
310 # Update tracker flag
311 self.Data_Communication_Input = True
312
313#------------------------------------
314# New Function
315#------------------------------------
316

◆ Print_Elements()

def class_topology.Topology.Print_Elements (   self,
  Index 
)

Definition at line 182 of file class_topology.py.

182 def Print_Elements(self, Index):
183
184 if (self.Elements_Disributed is True):
185
186 # Check that there is a file to put outputs into, if not make one
187 output_path = 'Output'
188 if not os.path.exists(output_path):
189 os.mkdir(output_path)
190
191 # Open new file and write out configurations
192 f = open('Output/Element_Distribution_' + str(Index) + '.txt', "w")
193
194 f.write("Core Distribution")
195 f.write("\n")
196
197 for i in range(0, self.PROC_Z):
198 for j in range(0, self.PROC_XY):
199 f.write(repr(self.Core[i * self.PROC_XY + j]).rjust(5))
200 f.write("\n")
201
202 f.write("\n")
203
204 f.write("Element Distribution")
205 f.write("\n")
206
207 for i in range(0, self.PROC_Z):
208 for j in range(0, self.PROC_XY):
209 f.write(repr(self.Num_Elements[i][j]).rjust(5))
210 f.write("\n")
211
212 else:
213 # Check that there is a file to put outputs into, if not make one
214 output_path = 'Output'
215 if not os.path.exists(output_path):
216 os.mkdir(output_path)
217
218 # Open new file and write out configurations
219 f = open('Output/Element_Distribution_' + str(Index) + '.txt', "w")
220
221 f.write('Elements have no yet been distributed by the program.')
222
223 f.close()
224
225
226#------------------------------------
227# New Function
228#------------------------------------
229

References class_topology.Topology.Core, class_topology.Topology.Elements_Disributed, class_topology.Topology.Num_Elements, class_topology.Topology.PROC_XY, and class_topology.Topology.PROC_Z.

◆ Print_Hardware()

def class_topology.Topology.Print_Hardware (   self)

Definition at line 85 of file class_topology.py.

85 def Print_Hardware(self):
86
87 # Check that there is a file to put outputs into, if not make one
88 output_path = 'Output'
89 if not os.path.exists(output_path):
90 os.mkdir(output_path)
91
92 # Open new file and write out configurations
93 f = open('Output/Hardware_Topology.txt', "w")
94
95 f.write("Core Distribution")
96 f.write("\n")
97
98 for i in range(0, self.PROC_Z):
99 for j in range(0, self.PROC_XY):
100 f.write(repr(self.Core[i*self.PROC_XY + j]).rjust(5))
101 f.write("\n")
102
103
104 f.write("\n")
105
106
107 f.write("Socket Distribution")
108 f.write("\n")
109 for i in range(0, self.PROC_Z):
110 for j in range(0, self.PROC_XY):
111 f.write(repr(self.Socket[i*self.PROC_XY + j]).rjust(5))
112 f.write("\n")
113
114
115 f.write("\n")
116
117
118 f.write("Node Distribution")
119 f.write("\n")
120 for i in range(0, self.PROC_Z):
121 for j in range(0, self.PROC_XY):
122 f.write(repr(self.Node[i*self.PROC_XY + j]).rjust(5))
123 f.write("\n")
124
125 # Close the file
126 f.close()
127
128#------------------------------------
129# New Function
130#------------------------------------
131

References class_topology.Topology.Core, class_topology.Topology.Node, class_topology.Topology.PROC_XY, class_topology.Topology.PROC_Z, and class_topology.Topology.Socket.

◆ Print_Modes()

def class_topology.Topology.Print_Modes (   self,
  Index 
)

Definition at line 231 of file class_topology.py.

231 def Print_Modes(self, Index):
232
233 if (self.Modes_Disributed is True):
234
235 # Check that there is a file to put outputs into, if not make one
236 output_path = 'Output'
237 if not os.path.exists(output_path):
238 os.mkdir(output_path)
239
240 # Open new file and write out configurations
241 f = open('Output/Mode_Distribution.txt', "w")
242
243 f.write("Core Distribution")
244 f.write("\n")
245
246 for i in range(0, self.PROC_Z):
247 for j in range(0, self.PROC_XY):
248 f.write(repr(self.Core[i*self.PROC_XY + j]).rjust(5))
249 f.write("\n")
250
251 f.write("\n")
252
253 f.write("Mode Distribution")
254 f.write("\n")
255 for i in range(0, self.PROC_Z):
256 for j in range(0, self.PROC_XY):
257 f.write(repr(self.Modes[i*self.PROC_XY + j]).rjust(5))
258 f.write("\n")
259
260 else:
261 # Check that there is a file to put outputs into, if not make one
262 output_path = 'Output'
263 if not os.path.exists(output_path):
264 os.mkdir(output_path)
265
266 # Open new file and write out configurations
267 f = open('Output/Mode_Distribution_' + str(Index) + '.txt', "w")
268
269 f.write('Modes have no yet been distributed by the program.')
270
271 f.close()
272#------------------------------------
273# New Function
274#------------------------------------
275

References class_topology.Topology.Core, class_topology.Topology.Modes, class_topology.Topology.Modes_Disributed, class_topology.Topology.PROC_XY, and class_topology.Topology.PROC_Z.

◆ Serial_Compute()

def class_topology.Topology.Serial_Compute (   self)

Definition at line 512 of file class_topology.py.

512 def Serial_Compute(self):
513
514 serial_max = 0.0
515
516 for i in range(0, self.PROC_Z):
517 for j in range(0, self.PROC_XY):
518
519 serial_count = 0.0
520
521 current = self.PROC_XY * i + j
522
523 N_P = 0
524 N_V_1 = 0
525 N_V_2 = 0
526 N_V_3 = 0
527
528 try:
529 length = len(self.Plane_Num[i])
530 except:
531 length = 1
532
533 for k in range(0, length):
534
535 Current_Plane = str(1 + self.Plane_Num[i][k])
536
537 try:
538 N_P += self.Pressure[Current_Plane][0]
539 except:
540 Turing = 'King of Computers'
541
542 try:
543 N_V_1 += self.Velocity_1[Current_Plane][0]
544 except:
545 Turing = 'King of Computers'
546
547 try:
548 N_V_2 += self.Velocity_2[Current_Plane][0]
549 except:
550 Turing = 'King of Computers'
551
552 try:
553 N_V_3 += self.Velocity_3[Current_Plane][0]
554 except:
555 Turing = 'King of Computers'
556
557 serial_count = Serial_Computation(self.P, self.Num_Elements[i][j], self.Planes[current], N_P, N_V_1, N_V_2, N_V_3, self.Num_Constants, self.constants, self.Scheme)
558
559 if (serial_count >= serial_max):
560 serial_max = serial_count
561
562 return(serial_max)
563
564
565#------------------------------------
566# End of Class File
567#------------------------------------
def Serial_Computation(P, Num_Elements, Num_Modes, N_P, N_V_1, N_V_2, N_V_3, Num_Constants, constants, Scheme)
Definition: serial.py:26

References class_topology.Topology.constants, class_topology.Topology.Num_Constants, class_topology.Topology.Num_Elements, class_topology.Topology.P, class_topology.Topology.Plane_Num, class_topology.Topology.Planes, class_topology.Topology.Pressure, class_topology.Topology.PROC_XY, class_topology.Topology.PROC_Z, class_topology.Topology.Scheme, serial.Serial_Computation(), class_topology.Topology.Velocity_1, class_topology.Topology.Velocity_2, and class_topology.Topology.Velocity_3.

Member Data Documentation

◆ BW_Core_To_Core

class_topology.Topology.BW_Core_To_Core

◆ BW_Node_To_Node

class_topology.Topology.BW_Node_To_Node

◆ BW_Socket_To_Socket

class_topology.Topology.BW_Socket_To_Socket

◆ constants

class_topology.Topology.constants

Definition at line 174 of file class_topology.py.

Referenced by class_topology.Topology.Serial_Compute().

◆ Core

class_topology.Topology.Core

◆ Data_Communication_Input

class_topology.Topology.Data_Communication_Input

Definition at line 77 of file class_topology.py.

◆ Data_Element

class_topology.Topology.Data_Element

◆ Data_Mode

class_topology.Topology.Data_Mode

Definition at line 292 of file class_topology.py.

Referenced by class_topology.Topology.Communication_Alltoall().

◆ Data_Size_Input

class_topology.Topology.Data_Size_Input

Definition at line 76 of file class_topology.py.

◆ Elements_Disributed

class_topology.Topology.Elements_Disributed

Definition at line 74 of file class_topology.py.

Referenced by class_topology.Topology.Print_Elements().

◆ LAT_Core_To_Core

class_topology.Topology.LAT_Core_To_Core

◆ LAT_Node_To_Node

class_topology.Topology.LAT_Node_To_Node

◆ LAT_Socket_To_Socket

class_topology.Topology.LAT_Socket_To_Socket

◆ Modes

class_topology.Topology.Modes

Definition at line 153 of file class_topology.py.

Referenced by class_topology.Topology.Print_Modes().

◆ Modes_Disributed

class_topology.Topology.Modes_Disributed

Definition at line 75 of file class_topology.py.

Referenced by class_topology.Topology.Print_Modes().

◆ N_Z

class_topology.Topology.N_Z

Definition at line 151 of file class_topology.py.

◆ Node

class_topology.Topology.Node

◆ Num_Constants

class_topology.Topology.Num_Constants

Definition at line 173 of file class_topology.py.

Referenced by class_topology.Topology.Serial_Compute().

◆ Num_Core_Per_Socket

class_topology.Topology.Num_Core_Per_Socket

Definition at line 34 of file class_topology.py.

◆ Num_Element_Msg

class_topology.Topology.Num_Element_Msg

◆ Num_Elements

class_topology.Topology.Num_Elements

◆ Num_Modes

class_topology.Topology.Num_Modes

Definition at line 150 of file class_topology.py.

◆ Num_Sock_Per_Node

class_topology.Topology.Num_Sock_Per_Node

Definition at line 35 of file class_topology.py.

◆ P

class_topology.Topology.P

Definition at line 290 of file class_topology.py.

Referenced by class_topology.Topology.Serial_Compute().

◆ Plane_Num

class_topology.Topology.Plane_Num

◆ Planes

class_topology.Topology.Planes

◆ Pressure

class_topology.Topology.Pressure

◆ PROC_TOT

class_topology.Topology.PROC_TOT

Definition at line 39 of file class_topology.py.

Referenced by class_topology.Topology.Communication_Alltoall().

◆ PROC_XY

class_topology.Topology.PROC_XY

◆ PROC_Z

class_topology.Topology.PROC_Z

◆ Scheme

class_topology.Topology.Scheme

Definition at line 36 of file class_topology.py.

Referenced by class_topology.Topology.Serial_Compute().

◆ Socket

class_topology.Topology.Socket

◆ Split

class_topology.Topology.Split

Definition at line 152 of file class_topology.py.

◆ Velocity_1

class_topology.Topology.Velocity_1

◆ Velocity_2

class_topology.Topology.Velocity_2

◆ Velocity_3

class_topology.Topology.Velocity_3