refine failure generator
[charm.git] / src / arch / mpi / machine.c
index eae1cedb0d5ae973bd9c57b1c29996affe948059..6947317797c781a4f8964082e03a2526517c9a6a 100644 (file)
@@ -1126,11 +1126,14 @@ void CmiMachineProgressImpl() {
 
 /* ######Beginning of functions related with exiting programs###### */
 void LrtsDrainResources() {
+    if (CmiMyPe() == 0&&CmiMyPartition()==0){ 
+      printf("in drain resource\n");
+    }
 #if !CMK_SMP
-    while (!CmiAllAsyncMsgsSent()) {
+    /*while (!CmiAllAsyncMsgsSent()) {
         PumpMsgs();
         CmiReleaseSentMessages();
-    }
+    }*/
 #else
     if(Cmi_smp_mode_setting == COMM_THREAD_SEND_RECV){
         while (!MsgQueueEmpty() || !CmiAllAsyncMsgsSent()) {
@@ -1407,13 +1410,13 @@ void LrtsInit(int *argc, char ***argv, int *numNodes, int *myNodeID) {
       MPI_Recv(vals,2,MPI_INT,MPI_ANY_SOURCE,FAIL_TAG, charmComm,&sts);
       int newpe = vals[0];
       CpvAccess(_curRestartPhase) = vals[1];
-      CmiPrintf("Charm++> Spare MPI rank %d is activated for global PE %d phase %d.\n", *myNodeID, newpe,CpvAccess(_curRestartPhase));
 
       if (newpe == -1) {
           MPI_Barrier(charmComm);
           MPI_Finalize();
           exit(0);
-      }
+      }else
+       CmiPrintf("Charm++> Spare MPI rank %d is activated for global PE %d phase %d.\n", *myNodeID, newpe,CpvAccess(_curRestartPhase));
 
         /* update petorank */
       MPI_Recv(petorank, num_workpes, MPI_INT,MPI_ANY_SOURCE,FAIL_TAG,charmComm, &sts);
@@ -1953,7 +1956,7 @@ void mpi_end_spare()
     int i;
     for (i=nextrank; i<total_pes; i++) {
         int vals[2] = {-1,-1};
-        CmiPrintf("end spare send to rank %d\n",i);
+        //CmiPrintf("end spare send to rank %d\n",i);
         MPI_Send((void *)vals,2,MPI_INT,i,FAIL_TAG,charmComm);
     }
 }
@@ -2004,11 +2007,13 @@ void CkDieNow()
     CmiPrintf("[%d][%d] die now.\n",CmiMyPartition(), CmiMyPe());
     fflush(stdout);
       /* release old messages */
-    //while (!CmiAllAsyncMsgsSent()) {
-    //    PumpMsgs();
-    //    CmiReleaseSentMessages();
-    //}
+    while (!CmiAllAsyncMsgsSent()) {
+        PumpMsgs();
+        CmiReleaseSentMessages();
+    }
+    CmiPrintf("[%d][%d] die now clear msg\n",CmiMyPartition(), CmiMyPe());
     MPI_Barrier(charmComm);
+    CmiPrintf("[%d][%d] die now clear msg 1\n",CmiMyPartition(), CmiMyPe());
     MPI_Finalize();
     exit(0);
 #endif