add a function to return Cray XE dimensions
authorGengbin Zheng <gzheng@illinois.edu>
Wed, 28 Mar 2012 06:56:17 +0000 (01:56 -0500)
committerGengbin Zheng <gzheng@illinois.edu>
Wed, 28 Mar 2012 06:56:17 +0000 (01:56 -0500)
also hardcoded for more

src/util/CrayNid.c
src/util/XTTorus.h

index 1c6948005b634f31081567662de6fbce96eb89d9..ce45e39854ae61d7ef859d8816509bf464b5945d 100644 (file)
@@ -47,7 +47,7 @@ int getXTNodeID(int mpirank, int nummpiranks) {
   return nid;
 }
 
-#endif /* CMK_CRAYXT */
+#endif /* CMK_CRAYXT || CMK_CRAYXE */
 
 #if XT3_TOPOLOGY || XT4_TOPOLOGY || XT5_TOPOLOGY || XE6_TOPOLOGY
 
@@ -69,6 +69,14 @@ int getXTNodeID(int mpirank, int nummpiranks) {
     /* hopper */
   #define MAXNID 6384
   #define TDIM 24
+#if 0
+    /* ESS */
+  #define MAXNID 4608
+  #define TDIM 32
+    /* JYC */
+  #define MAXNID 83
+  #define TDIM 32
+#endif
   #endif
 
 int *pid2nid;                   /* rank to node ID */
@@ -148,4 +156,22 @@ void pidtonid(int numpes) {
 #endif
 }
 
+/* get dimension for XE machine */
+void getDimension(int maxnid, int *xdim, int *ydim, int *zdim)
+{
+  int i;
+
+  *xdim = *ydim = *zdim = 0;
+  for (i=0; i<maxnid; i++) {
+      int x, y, z;
+      getMeshCoord(i, &x, &y, &z);
+      if (x>*xdim) *xdim = x;
+      if (y>*ydim) *ydim = y;
+      if (z>*zdim) *zdim = z;
+  }
+  *xdim++;
+  *ydim++;
+  *zdim++;
+}
+
 #endif /* XT3_TOPOLOGY || XT4_TOPOLOGY || XT5_TOPOLOGY */
index 9bc118366bb42a763373019675812da4822b55da..740a233140882860711ad3079c790f054842a0ab 100644 (file)
 #define YDIM 8
 #define ZDIM 24
 #define TDIM 24
+#if 0
+/* titan */
+#define MAXNID 9600
+#define XDIM 25
+#define YDIM 16
+#define ZDIM 24
+#define TDIM 16
+/* ESS */
+#define MAXNID 4608
+#define XDIM 12
+#define YDIM 8
+#define ZDIM 24
+#define TDIM 32
+/* JYC */
+#define MAXNID 83
+#define XDIM 1
+#define YDIM 6
+#define ZDIM 8
+#define TDIM 32
+#endif
 
 #endif