Made Converse run on Exemplar.
authorMilind Bhandarkar <milind@cs.uiuc.edu>
Wed, 23 Jul 1997 16:54:57 +0000 (16:54 +0000)
committerMilind Bhandarkar <milind@cs.uiuc.edu>
Wed, 23 Jul 1997 16:54:57 +0000 (16:54 +0000)
src/QuickThreads/md/setjmp.c
src/QuickThreads/mkfiles/convex
src/arch/exemplar/conv-mach.csh
src/arch/exemplar/machine.c
src/charmc

index 4ffcc51c2d6bd6468dfc210d53431bb97e1597eb..66208c113820c83d450eceb9e42cd821986378f0 100644 (file)
@@ -1,6 +1,9 @@
 
 #include "qt.h"
 #include <setjmp.h>
+#ifdef ALLOCA_H
+#include <alloca.h>
+#endif
 
 struct helpdesc { qt_helper_t *hfn; qt_t *jb; void *old; void *new; };
 
index f314e8792d831e99f1206a022eb5c7231c5b7e9b..39af8c7796b4a7e2bee72b21594ef79c4656902f 100644 (file)
@@ -1,5 +1,5 @@
 
-CC=/bin/cc -I. -O
+CC=/bin/cc -I. -L. -O
 
 all: qt stp testpgm
 
@@ -14,7 +14,7 @@ stp:
        $(CC) -c stp.c
        ar q libstp.a stp.o
 
-testpgm:
+testpgm: qt stp
        $(CC) -c meas.c
        cc -c -o qtmdb.o md/hppa_b.s
        $(CC) -o run meas.o qtmdb.o libstp.a libqt.a
index 322fa6ba79e6f6bbde2c6b885618fabc72bbdd09..ffa2bcb68bbc75a73a43ab93e70f3a5884606e6a 100755 (executable)
@@ -20,20 +20,20 @@ set CMK_CXXPP='CC -E '
 set CMK_CC='cc -Ae '
 set CMK_CC_RELIABLE='cc'
 set CMK_CC_FASTEST='cc'
-set CMK_CXX='CC +a1 '
+set CMK_CXX='CC '
 set CMK_CF77=''
-set CMK_C_DEBUG='-g'
+set CMK_C_DEBUG='-g +O0 '
 set CMK_C_OPTIMIZE='-O2'
-set CMK_CXX_DEBUG=''
+set CMK_CXX_DEBUG='-g +O0 '
 set CMK_CXX_OPTIMIZE=''
-set CMK_LD='cc '
+set CMK_LD='cc -Wl,+parallel '
 set CMK_LDXX='CC '
 set CMK_LD77=''
 set CMK_M4='m4'
 set CMK_SUF='o'
 set CMK_AR='ar q'
 set CMK_RANLIB='true'
-set CMK_LIBS='-lqt -lcps '
+set CMK_LIBS='-lqt -lpthread -lcps -lpthread -lail '
 set CMK_SEQ_LIBS=''
 set CMK_SEQ_CC='cc '
 set CMK_SEQ_LD='cc'
index 2f03b56ef977977d66487bc745894db42d5b7cc9..c1b861940af5f980d290755cc19d3c8c9b984e38 100644 (file)
  * REVISION HISTORY:
  *
  * $Log$
- * Revision 2.22  1997-07-22 18:16:05  milind
+ * Revision 2.23  1997-07-23 16:55:02  milind
+ * Made Converse run on Exemplar.
+ *
+ * Revision 2.22  1997/07/22 18:16:05  milind
  * fixed some exemplar-related bugs.
  *
  * Revision 2.21  1996/11/23 02:25:36  milind
@@ -115,13 +118,13 @@ CpvDeclare(void*, CmiLocalQueue);
 CpvDeclare(int, Cmi_mype);
 CpvDeclare(int, Cmi_numpes);
 CpvDeclare(int, Cmi_myrank);
+CpvDeclare(int, Cmi_nodesize);
 
 static node_private barrier_t barrier;
 static node_private barrier_t *barr;
 static node_private int *nthreads;
 static node_private int requested_npe;
 
-static void mycpy();
 static void threadInit();
 
 void *CmiAlloc(size)
@@ -185,6 +188,7 @@ typedef struct {
    void *argv;
    int  npe;
    CmiStartFn fn;
+   int usched;
 } USER_PARAMETERS;
 
 
@@ -220,10 +224,12 @@ void ConverseInit(int argc, char** argv, CmiStartFn fn, int usched, int initret)
     }
 
 
+    printf("Requested NP = %d\n", requested_npe);
     usrparam.argc = argc;
     usrparam.argv = (void *) argv;
     usrparam.npe  = requested_npe;
     usrparam.fn = fn;
+    usrparam.usched = usched;
     request.node = CPS_ANY_NODE;
     request.min  = requested_npe;
     request.max  = requested_npe;
@@ -242,7 +248,7 @@ void ConverseInit(int argc, char** argv, CmiStartFn fn, int usched, int initret)
     }
     for(i=0; i<requested_npe; i++) MsgQueue[i] = McQueueCreate();
 
-    if (cps_ppcall(&request, threadInit ,arg) != requested_npe) {
+    if (cps_ppcall(&request, threadInit ,arg) < 0) {
        CmiError("Cannot created threads...\n");
        exit(1);
     } 
@@ -250,6 +256,13 @@ void ConverseInit(int argc, char** argv, CmiStartFn fn, int usched, int initret)
 
 }
 
+void CmiInitMc(char **);
+
+void ConverseExit(void)
+{
+   cps_barrier(barr,nthreads);
+}
+
 static void threadInit(arg)
 void *arg;
 {
@@ -258,12 +271,21 @@ void *arg;
 
     CpvInitialize(int, Cmi_mype);
     CpvInitialize(int, Cmi_numpes);
+    CpvInitialize(int, Cmi_myrank);
+    CpvInitialize(int, Cmi_nodesize);
     CpvInitialize(void*, CmiLocalQueue);
 
     CpvAccess(Cmi_mype)  = my_thread();
     CpvAccess(Cmi_numpes) =  usrparam->npe;
+    CpvAccess(Cmi_myrank)  = CpvAccess(Cmi_mype);
+    CpvAccess(Cmi_nodesize)  = CpvAccess(Cmi_numpes);
 
+    ConverseCommonInit(usrparam->argv);
+    CthInit(usrparam->argv);
+    CmiInitMc(usrparam->argv);
     usrparam->fn(usrparam->argc,usrparam->argv);
+    if (usrparam->usched==0) CsdScheduler(-1);
+    ConverseExit();
 }
 
 
@@ -314,7 +336,7 @@ char *msg;
         buf += 8;
 
 
-        mycpy((double *)buf,(double *)msg,size);
+        memcpy((double *)buf,(double *)msg,size);
         McQueueAddToBack(MsgQueue[destPE],buf); 
 }
 
@@ -401,24 +423,6 @@ void CmiNodeBarrier()
 
 
 
-static void mycpy(double *dst, double *src, int bytes)
-{
-        unsigned char *cdst, *csrc;
-
-        while(bytes>8)
-        {
-                *dst++ = *src++;
-                bytes -= 8;
-        }
-        cdst = (unsigned char *) dst;
-        csrc = (unsigned char *) src;
-        while(bytes)
-        {
-                *cdst++ = *csrc++;
-                bytes--;
-        }
-}
-
 /* ********************************************************************** */
 /* The following functions are required by the load balance modules       */
 /* ********************************************************************** */
index 1c48207635d6259138261f0b4764328b3f8f2e69..1bcf7c8351c2c79a36d0eb3217a5ca945b23bbf0 100755 (executable)
@@ -391,11 +391,15 @@ endif
 if ($?DEBUG_MODE) then
     set OPTS_CC  = ( $CMK_C_DEBUG $OPTS_CC )
     set OPTS_CXX = ( $CMK_CXX_DEBUG $OPTS_CXX )
+    set OPTS_LD  = ( $CMK_C_DEBUG $OPTS_LD )
+    set OPTS_LDXX = ( $CMK_CXX_DEBUG $OPTS_LDXX )
 endif
 
 if ($?OPTIMIZE_MODE) then
     set OPTS_CC  = ( $CMK_C_OPTIMIZE $OPTS_CC )
     set OPTS_CXX = ( $CMK_CXX_OPTIMIZE $OPTS_CXX )
+    set OPTS_LD  = ( $CMK_C_OPTIMIZE $OPTS_LD )
+    set OPTS_LDXX = ( $CMK_CXX_OPTIMIZE $OPTS_LDXX )
 endif
 
 onintr failure