static int cray_lookup(const char service_name[], opal_list_t *info, char port[], int portLen) { int rc; if (PMI_SUCCESS != (rc = PMI2_Nameserv_lookup(service_name, NULL, port, portLen))) { OPAL_PMI_ERROR(rc, "PMI2_Nameserv_lookup"); return OPAL_ERROR; } return OPAL_SUCCESS; }
static int s2_lookup(opal_list_t *data, opal_list_t *info) { #if 0 int rc; if (PMI2_SUCCESS != (rc = PMI2_Nameserv_lookup(service_name, NULL, port, portLen))) { OPAL_PMI_ERROR(rc, "PMI2_Nameserv_lookup"); return OPAL_ERROR; } #endif return OPAL_ERR_NOT_IMPLEMENTED; }
static char* lookup ( char *service_name, ompi_info_t *info ) { char *port=NULL; int rc; #if WANT_PMI2_SUPPORT port = (char*)malloc(1024*sizeof(char)); /* arbitrary size */ if (PMI_SUCCESS != (rc = PMI2_Nameserv_lookup(service_name, NULL, port, 1024))) { OMPI_ERROR_LOG(rc); free(port); return NULL; } #else if (PMI_SUCCESS != (rc = PMI_Lookup_name(service_name, port))) { OMPI_ERROR_LOG(rc); return NULL; } #endif return port; }
int MPID_NS_Lookup( MPID_NS_Handle handle, const MPID_Info *info_ptr, const char service_name[], char port[] ) { int mpi_errno = MPI_SUCCESS; int rc; MPIU_UNREFERENCED_ARG(info_ptr); MPIU_UNREFERENCED_ARG(handle); #ifdef USE_PMI2_API /* release the global CS for PMI calls */ MPID_THREAD_CS_EXIT(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX); rc = PMI2_Nameserv_lookup(service_name, info_ptr, port, MPI_MAX_PORT_NAME); MPID_THREAD_CS_ENTER(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX); #else rc = PMI_Lookup_name( service_name, port ); #endif MPIR_ERR_CHKANDJUMP1(rc, mpi_errno, MPI_ERR_NAME, "**namepubnotfound", "**namepubnotfound %s", service_name); fn_fail: return mpi_errno; }
int mca_common_pmi_lookup(const char *service_name, char **port_ret) { // FIXME: // 1. Why don't we malloc memory for the port for PMI v1? // 2. Maybe error handling is needed in pbusub? // 3. Is it legal to call OPAL_PMI_ERROR for PMIv2 rc? char *port = NULL; *port_ret = port; int rc; #if WANT_PMI2_SUPPORT if( mca_common_pmi_version == 2 ){ port = (char*)malloc(1024*sizeof(char)); /* arbitrary size */ if( port == NULL ){ return OPAL_ERR_OUT_OF_RESOURCE; } if (PMI_SUCCESS != (rc = PMI2_Nameserv_lookup(service_name, NULL, port, 1024))) { OPAL_PMI_ERROR(rc, "PMI2_Nameserv_lookup"); free(port); return OPAL_ERROR; } } else #endif { // Allocate mem for port here? Otherwise we won't get success! // SLURM PMIv1 doesn't implement this function if (PMI_SUCCESS != (rc = PMI_Lookup_name(service_name, port))) { OPAL_PMI_ERROR(rc, "PMI_Lookup_name"); return OPAL_ERROR; } } *port_ret = port; return OPAL_SUCCESS; }