a function to return Cray XE torus dimension
authorGengbin Zheng <gzheng@illinois.edu>
Wed, 28 Mar 2012 06:51:21 +0000 (01:51 -0500)
committerGengbin Zheng <gzheng@illinois.edu>
Wed, 28 Mar 2012 06:51:21 +0000 (01:51 -0500)
hardcoded for more machines

src/arch/gemini_gni-crayxe/conv-mach.h
src/arch/util/mempool.h
src/conv-core/cputopology.C
src/util/CrayNid.c
src/util/XTTorus.h
tests/converse/commbench/commbench.c
tests/converse/commbench/memoryAccess.c
tests/converse/commbench/pingpong.c

index 10fe79ceb4579f170cba935c0960438a2d0f4ad1..86cc172ab36b74afc57c850ed2bd49dc9f5bcf7f 100644 (file)
@@ -52,6 +52,8 @@
 #define CMK_THREADS_USE_JCONTEXT                           0
 #define CMK_THREADS_USE_PTHREADS                           0
 
+#define CMK_USE_SPINLOCK                                   1
+
 /* Specifies what kind of timer to use, and the correspondent headers will be
    included in convcore.c. If none is selected, then the machine.c file needs to
    implement the timer primitives. */
index ce1dc3eb67938c52f2330736db9933168c2364ee..a77ae9d38ffced4b8fd15a82ec63f2a8fb5c9c64 100644 (file)
@@ -74,7 +74,8 @@ typedef used_header mempool_header;
 typedef struct block_header
 {
   mem_handle_t        mem_hndl;
-  size_t              size, used;
+  int                 used;
+  size_t              size;
   size_t              block_prev,block_next;   // offset to next memblock
   size_t              freelists[cutOffNum];
   struct mempool_type  *mptr;               // mempool_type
index 49f439d0fce9e99a8cebdde747331ab9cfb7512f..05a9a15c1e1f2259f173e0264f3e1b1ef677155e 100644 (file)
@@ -37,6 +37,7 @@
 
 #if CMK_CRAYXT || CMK_CRAYXE
 extern "C" int getXTNodeID(int mpirank, int nummpiranks);
+extern "C" void getDimension(int maxnid);
 #endif
 
 #if defined(__APPLE__)  && CMK_HAS_MULTIPROCESSING_H
@@ -512,6 +513,9 @@ extern "C" void LrtsInitCpuTopo(char **argv)
     }
     cpuTopo.sort();
     if (CmiMyPe()==0)  CmiPrintf("Charm++> Running on %d unique compute nodes (%d-way SMP).\n", cpuTopo.numNodes, CmiNumCores());
+
+    /* find dimension */
+    getDimension(83);
   }
   CmiNodeAllBarrier();
 
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
 
index f39e44a30fe2c8d9ff095103bd8537e85cb55356..c37c71c36902209348039a3c4ec9d0eceeee7f93 100644 (file)
@@ -46,15 +46,15 @@ struct testinfo
   void (*initiator)(void);
   void (*initializer)(void);
 } tests[] = {
-  { "memoryAccess",  memoryAccess_init,  memoryAccess_moduleinit },
-  { "overhead",  overhead_init,  overhead_moduleinit },
-  { "timer",     timer_init,     timer_moduleinit },
-  { "proc",      proc_init,      proc_moduleinit },
-  { "smputil",   smputil_init,   smputil_moduleinit },
+//  { "memoryAccess",  memoryAccess_init,  memoryAccess_moduleinit },
+//  { "overhead",  overhead_init,  overhead_moduleinit },
+//  { "timer",     timer_init,     timer_moduleinit },
+//  { "proc",      proc_init,      proc_moduleinit },
+//  { "smputil",   smputil_init,   smputil_moduleinit },
   { "pingpong",  pingpong_init,  pingpong_moduleinit },
-  { "broadcast", broadcast_init, broadcast_moduleinit },
-  { "reduction", reduction_init, reduction_moduleinit },
-  { "ctxt",      ctxt_init,      ctxt_moduleinit },
+//  { "broadcast", broadcast_init, broadcast_moduleinit },
+//  { "reduction", reduction_init, reduction_moduleinit },
+//  { "ctxt",      ctxt_init,      ctxt_moduleinit },
   { 0,0,0 },
 };
 
index 2c2a299abcc135581fbc4cbb6ce23b4d3c8da5a7..53980da21c150fb117a78de4af80880524eae015 100755 (executable)
 #define CLUBMALLOC 1000
 #define RANDMALLOC 1000
 #define RANDOPS 1000
-#define POWER 15
-#define MAXSIZE 16384
+//#define POWER 15
+//#define MAXSIZE 16384
+#define POWER 20 
+#define MAXSIZE 1024*1024
 typedef double myType;
 myType value = 10;
 int dist[] = {1,5,9,10};
index e053eebb1a28c5f9f945025f86ce95fc17ea388e..ec044b0871e0cdb8ece88786f22bdc8437e93d69 100644 (file)
@@ -10,24 +10,24 @@ static struct testdata {
   int size;
   int numiter;
 } sizes[] = {
- {16,      1},
- {32,      4000},
- {128,      4000},
- {256,     1000},
- {512,     1000},
- {1024,    1000},
- {2048,    1000},
+// {16,      1},
+// {32,      4000},
+// {128,      4000},
+// {256,     1000},
+// {512,     1000},
+// {1024,    1000},
+// {2048,    1000},
  {4096,    1000},
- {8192,    1000},
- {16384,   1000},
- {32768,   1000},
- {65536,   100},
- {131072,   40},
- {524288,   40},
- {1048576, 10},
- {4194304,  10},
- {8388608,  10},
- {16777216,  4},
+// {8192,    1000},
+// {16384,   1000},
+// {32768,   1000},
+// {65536,   100},
+// {131072,   40},
+// {524288,   40},
+// {1048576, 10},
+// {4194304,  10},
+// {8388608,  10},
+// {16777216,  4},
 /*
  {33554432,  4},
 */