Applying Chao's inital commits to latest branch of charm,
authorNikhil Jain <nikhil@illinois.edu>
Wed, 11 Jan 2012 01:32:10 +0000 (19:32 -0600)
committerNikhil Jain <nikhil@illinois.edu>
Wed, 11 Jan 2012 01:32:10 +0000 (19:32 -0600)
in the process removing redundant code and using a hash define
based coding pattern

src/arch/mpi/machine.c
src/arch/util/machine-common-core.c
src/conv-core/conv-config.h

index 08df32208d9fe1d81f8578aad4bd901b6e559a5e..1d74e884b63d615c1415b5fdbc3ac10ad22e781e 100644 (file)
@@ -1319,6 +1319,7 @@ static void MachineInitForMPI(int *argc, char ***argv, int *numNodes, int *myNod
     }
 #endif
 
+#if !CMK_INTER_OPERATE
 #if CMK_MPI_INIT_THREAD
 #if CMK_SMP
     if (Cmi_smp_mode_setting == COMM_THREAD_SEND_RECV)
@@ -1335,10 +1336,14 @@ static void MachineInitForMPI(int *argc, char ***argv, int *numNodes, int *myNod
     thread_level = 0;
     _thread_provided = -1;
 #endif
+#endif
+
     largc = *argc;
     largv = *argv;
+#if !CMK_INTER_OPERATE
     MPI_Comm_size(MPI_COMM_WORLD, numNodes);
     MPI_Comm_rank(MPI_COMM_WORLD, myNodeID);
+#endif
 
     myNID = *myNodeID;
 
@@ -1349,10 +1354,12 @@ static void MachineInitForMPI(int *argc, char ***argv, int *numNodes, int *myNod
 #endif
 
     MPI_Get_version(&ver, &subver);
+#if !CMK_INTER_OPERATE
     if (myNID == 0) {
         printf("Charm++> Running on MPI version: %d.%d\n", ver, subver);
         printf("Charm++> level of thread support used: %s (desired: %s)\n", thread_level_tostring(_thread_provided), thread_level_tostring(thread_level));
-    }
+        }
+#endif
 
     {
         int debug = CmiGetArgFlag(largv,"++debug");
index 48972b50d3f3ba45e3732b4798e6aa10584145de..93340e260a308ab5c9348ca561b2914ff8754fa2 100644 (file)
@@ -588,7 +588,7 @@ if (  MSG_STATISTIC)
 }
 #endif
 #endif
-
+    
 /* ##### Beginning of Functions Related with Machine Startup ##### */
 void ConverseInit(int argc, char **argv, CmiStartFn fn, int usched, int initret) {
     int _ii;
@@ -620,7 +620,7 @@ if (  MSG_STATISTIC)
 }
 
     LrtsInit(&argc, &argv, &_Cmi_numnodes, &_Cmi_mynode);
-   
+  
        if (_Cmi_mynode==0) {
 #if !CMK_SMP 
                printf("Charm++> Running on Non-smp mode\n");
@@ -676,7 +676,6 @@ if (  MSG_STATISTIC)
 #endif
 
     CmiStartThreads(argv);
-
     ConverseRunPE(initret);
 }
 
@@ -733,6 +732,9 @@ static void ConverseRunPE(int everReturn) {
     _immediateReady = 1;
 
     /* communication thread */
+#if CMK_INTER_OPERATE
+               Cmi_startfn(CmiGetArgc(CmiMyArgv), CmiMyArgv);
+#else
     if (CmiMyRank() == CmiMyNodeSize()) {
         Cmi_startfn(CmiGetArgc(CmiMyArgv), CmiMyArgv);
         while (1) CommunicationServerThread(5);
@@ -743,9 +745,18 @@ static void ConverseRunPE(int everReturn) {
             ConverseExit();
         }
     }
+#endif
 }
 /* ##### End of Functions Related with Machine Startup ##### */
 
+#if CMK_INTER_OPERATE
+void CharmLibInit(int peid, int numpes, int argc, char **argv, CmiStartFn fn) {
+         _Cmi_numnodes = numpes;
+         _Cmi_mynode = peid;
+    ConverseInit(argc, argv, fn, 1, 0);
+}
+#endif
+
 /* ##### Beginning of Functions Related with Machine Running ##### */
 static INLINE_KEYWORD void AdvanceCommunication(int whenidle) {
     int doProcessBcast = 1;
@@ -961,4 +972,3 @@ static char *CopyMsg(char *msg, int len) {
 #include "machine-pxshm.c"
 #endif
 
-
index 4777adabfb47517f5395a63277ab97ac68467cc0..bac70e18c1ac424b808711a4116bf3cc091efa27 100644 (file)
 #define CMK_WITH_CONTROLPOINT            1
 #endif
 
+#ifndef CMK_INTER_OPERATE
+#define CMK_INTER_OPERATE         1
+#endif
+
 #endif