[mpich2-commits] r5489 - in mpich2/trunk/src: include mpid/ch3/src pmi/pmi2

buntinas at mcs.anl.gov buntinas at mcs.anl.gov
Tue Oct 20 11:31:23 CDT 2009


Author: buntinas
Date: 2009-10-20 11:31:23 -0500 (Tue, 20 Oct 2009)
New Revision: 5489

Modified:
   mpich2/trunk/src/include/pmi2.h
   mpich2/trunk/src/mpid/ch3/src/ch3u_comm_spawn_multiple.c
   mpich2/trunk/src/mpid/ch3/src/mpidi_pg.c
   mpich2/trunk/src/pmi/pmi2/simple2pmi.c
   mpich2/trunk/src/pmi/pmi2/simple2pmi.h
Log:
added srcid field to pmi2 get

Modified: mpich2/trunk/src/include/pmi2.h
===================================================================
--- mpich2/trunk/src/include/pmi2.h	2009-10-20 08:20:51 UTC (rev 5488)
+++ mpich2/trunk/src/include/pmi2.h	2009-10-20 16:31:23 UTC (rev 5489)
@@ -14,6 +14,7 @@
 #define PMI2_MAX_KEYLEN 64
 #define PMI2_MAX_VALLEN 1024
 #define PMI2_MAX_ATTRVALUE 1024
+#define PMI2_ID_NULL -1
 
 #if defined(__cplusplus)
 extern "C" {
@@ -301,6 +302,9 @@
   Input Parameters:
   + jobid - the job id identifying the key-value space in which to look
     for key.  If jobid is NULL, look in the key-value space of this job.
+  . src_pmi_id - the pmi id of the process which put this keypair.  This
+    is just a hint to the server.  PMI2_ID_NULL should be passed if no
+    hint is provided.
   . key - key
   - maxvalue - size of the buffer provided in value
 
@@ -313,7 +317,7 @@
   Returns 'MPI_SUCCESS' on success and an MPI error code on failure.
 
 @*/
-int PMI2_KVS_Get(const char *jobid, const char key[], char value [], int maxvalue, int *vallen);
+int PMI2_KVS_Get(const char *jobid, int src_pmi_id, const char key[], char value [], int maxvalue, int *vallen);
 
 /*@
   PMI2_Info_GetNodeAttr - returns the value of the attribute associated

Modified: mpich2/trunk/src/mpid/ch3/src/ch3u_comm_spawn_multiple.c
===================================================================
--- mpich2/trunk/src/mpid/ch3/src/ch3u_comm_spawn_multiple.c	2009-10-20 08:20:51 UTC (rev 5488)
+++ mpich2/trunk/src/mpid/ch3/src/ch3u_comm_spawn_multiple.c	2009-10-20 16:31:23 UTC (rev 5489)
@@ -297,7 +297,7 @@
         {
             int vallen = 0;
             MPIU_THREAD_CS_ENTER(PMI,);
-            mpi_errno = PMI2_KVS_Get(kvsname, PARENT_PORT_KVSKEY, val, sizeof(val), &vallen);
+            mpi_errno = PMI2_KVS_Get(kvsname, PMI2_ID_NULL, PARENT_PORT_KVSKEY, val, sizeof(val), &vallen);
             MPIU_THREAD_CS_EXIT(PMI,);
             if (mpi_errno) MPIU_ERR_POP(mpi_errno);
         }

Modified: mpich2/trunk/src/mpid/ch3/src/mpidi_pg.c
===================================================================
--- mpich2/trunk/src/mpid/ch3/src/mpidi_pg.c	2009-10-20 08:20:51 UTC (rev 5488)
+++ mpich2/trunk/src/mpid/ch3/src/mpidi_pg.c	2009-10-20 16:31:23 UTC (rev 5489)
@@ -687,10 +687,10 @@
 	MPIU_ERR_SETANDJUMP(mpi_errno,MPI_ERR_OTHER,"**nomem");
     }
 
-    mpi_errno = PMI2_KVS_Get(pg->connData, key, buf, bufsize, &vallen);
+    mpi_errno = PMI2_KVS_Get(pg->connData, PMI2_ID_NULL, key, buf, bufsize, &vallen);
     if (mpi_errno) {
 	MPIDI_PG_CheckForSingleton();
-	mpi_errno = PMI2_KVS_Get(pg->connData, key, buf, bufsize, &vallen);
+	mpi_errno = PMI2_KVS_Get(pg->connData, PMI2_ID_NULL, key, buf, bufsize, &vallen);
         if (mpi_errno) MPIU_ERR_POP(mpi_errno);
     }
  fn_exit:

Modified: mpich2/trunk/src/pmi/pmi2/simple2pmi.c
===================================================================
--- mpich2/trunk/src/pmi/pmi2/simple2pmi.c	2009-10-20 08:20:51 UTC (rev 5488)
+++ mpich2/trunk/src/pmi/pmi2/simple2pmi.c	2009-10-20 16:31:23 UTC (rev 5489)
@@ -665,7 +665,7 @@
     goto fn_exit;
 }
 
-int PMI2_KVS_Get(const char *jobid, const char key[], char value [], int maxValue, int *valLen)
+int PMI2_KVS_Get(const char *jobid, int src_pmi_id, const char key[], char value [], int maxValue, int *valLen)
 {
     int pmi2_errno = PMI2_SUCCESS;
     int found, keyfound;
@@ -679,7 +679,7 @@
     pmi2_errno = PMIi_InitIfSingleton();
     if (pmi2_errno) PMI2U_ERR_POP(pmi2_errno);
     
-    pmi2_errno = PMIi_WriteSimpleCommandStr(PMI2_fd, &cmd, KVSGET_CMD, JOBID_KEY, jobid, KEY_KEY, key, NULL);
+    pmi2_errno = PMIi_WriteSimpleCommandStr(PMI2_fd, &cmd, KVSGET_CMD, JOBID_KEY, jobid, SRCID_KEY, src_pmi_id, KEY_KEY, key, NULL);
     if (pmi2_errno) PMI2U_ERR_POP(pmi2_errno);
     pmi2_errno = PMIi_ReadCommandExp(PMI2_fd, &cmd, KVSGETRESP_CMD, &rc, &errmsg);
     if (pmi2_errno) PMI2U_ERR_POP(pmi2_errno);

Modified: mpich2/trunk/src/pmi/pmi2/simple2pmi.h
===================================================================
--- mpich2/trunk/src/pmi/pmi2/simple2pmi.h	2009-10-20 08:20:51 UTC (rev 5488)
+++ mpich2/trunk/src/pmi/pmi2/simple2pmi.h	2009-10-20 16:31:23 UTC (rev 5489)
@@ -46,6 +46,7 @@
 
 static const char PMIJOBID_KEY[]     = "pmijobid";
 static const char PMIRANK_KEY[]      = "pmirank";
+static const char SRCID_KEY[]        = "srcid";
 static const char THREADED_KEY[]     = "threaded";
 static const char RC_KEY[]           = "rc";
 static const char ERRMSG_KEY[]       = "errmsg";



More information about the mpich2-commits mailing list