Please, help us to better know about our user community by answering the following short survey: https://forms.gle/wpyrxWi18ox9Z5ae9
Clustering.h
Go to the documentation of this file.
1 /* @author János Végh (jvegh)
2 * @bug No known bugs.
3 */
9 #ifndef CLUSTERING_H
10 #define CLUSTERING_H
11 //#include "Utils.h"
12 #include "BasicConfig.h"
13 #include <string>
14 using namespace std;
15 typedef struct {
16  string name;
17  int id;
18 } NamedEnum_struct;
20 extern NamedEnum_struct ClusterMembers[8];
21 extern int moduloN(int x,int N);
22 
24 typedef enum {
30 
34 typedef enum
44 
58 typedef struct {
59  uint32_t HThread: HTHREAD_BUS_WIDTH;
60  uint32_t Member: 3;
61  uint32_t Proxy:3;
62  uint32_t Cluster: CLUSTER_BUS_WIDTH;
63  uint32_t Topology: TOPOLOGY_BUS_WIDTH;
64  uint32_t Card: CARD_BUS_WIDTH;
65  uint32_t Rack: RACKS_BUS_WIDTH;
66  uint32_t Status: 2;
67  uint32_t Reserved: (32-HTHREAD_BUS_WIDTH-6-2-CLUSTER_BUS_WIDTH-CARD_BUS_WIDTH-TOPOLOGY_BUS_WIDTH-RACKS_BUS_WIDTH);
69  int &ToInt() {
70  return *reinterpret_cast<int *>(this);}
72 
73 #if (CORE_GRID_SIZE_X > 127)
74  #error Adjust GridPoints X position size
75 #endif
76 #if (CORE_GRID_SIZE_Y > 127)
77  #error Adjust GridPoints Y position size
78 #endif
79 
80 
81 #endif // CLUSTERING_H
ClusterAddress_t::Topology
uint32_t Topology
The processor the cluster belongs to.
Definition: Clustering.h:63
cm_Broadcast
@ cm_Broadcast
All cluster members (broadcast)
Definition: Clustering.h:42
cs_Error
@ cs_Error
is in error
Definition: Clustering.h:28
ClusterAddress_t::Reserved
uint32_t Reserved
Reserved for later use.
Definition: Clustering.h:67
cm_South
@ cm_South
The South neighbor.
Definition: Clustering.h:39
ClusterAddress_t::Status
uint32_t Status
Definition: Clustering.h:66
cm_SW
@ cm_SW
The South-West neighbor.
Definition: Clustering.h:40
ClusterNeighbor
ClusterNeighbor
The neighborship in the cluster: the members are referred to with their geographic direction.
Definition: Clustering.h:34
cs_Member
@ cs_Member
is an ordinary member
Definition: Clustering.h:26
ClusterAddress_t::Cluster
uint32_t Cluster
The sequence number of the cluster.
Definition: Clustering.h:62
cm_NW
@ cm_NW
The North-West neighbor.
Definition: Clustering.h:41
ClusterAddress_t
A GridPoint can be addressed also by its cluster address of type ClusterAddress_t....
Definition: Clustering.h:58
cs_NONE
@ cs_NONE
not specified (untouched)
Definition: Clustering.h:25
ClusterAddress_t::Proxy
uint32_t Proxy
Reachable through this neighbor (Relative to the core)
Definition: Clustering.h:61
cs_Head
@ cs_Head
is the head of its cluster
Definition: Clustering.h:27
cm_North
@ cm_North
The North neighbor.
Definition: Clustering.h:36
cm_Head
@ cm_Head
The central gridpoint.
Definition: Clustering.h:35
ClusterAddress_t::HThread
uint32_t HThread
The 'hardware thread' the module handles.
Definition: Clustering.h:59
BasicConfig.h
Basic configuration information for the BASIC package.
ClusterStatus
ClusterStatus
The gridpoints can be the head of the cluster, a member of a cluster, or neither (stand-alone)
Definition: Clustering.h:24
cm_NE
@ cm_NE
The North-East neighbor.
Definition: Clustering.h:37
ClusterAddress_t::Card
uint32_t Card
The card the topology (like a many-core processor) belongs to.
Definition: Clustering.h:64
ClusterAddress_t::Rack
uint32_t Rack
The rack the card belongs to.
Definition: Clustering.h:65
ClusterAddress_t::Member
uint32_t Member
Definition: Clustering.h:60
cm_SE
@ cm_SE
The South-East neighbor.
Definition: Clustering.h:38