Commits

Abhishek Kulkarni committed d84f1ff Draft

sync to r26601

Comments (0)

Files changed (9)

ompi/runtime/ompi_module_exchange.c

         return OMPI_ERR_OUT_OF_RESOURCE;
     }
     
-    rc = orte_grpcomm.set_proc_attr(name, data, size);
+    rc = orte_grpcomm.set_proc_attr("ompi", "btl", name, data, size);
     free(name);
     return rc;
 }
         return OMPI_ERR_OUT_OF_RESOURCE;
     }
     
-    rc = orte_grpcomm.get_proc_attr(proc->proc_name, name, buffer, size);
+    rc = orte_grpcomm.get_proc_attr(proc->proc_name, "ompi", "btl", name, buffer, size);
     free(name);
     return rc;
 }
 ompi_modex_send_string(const char* key,
                        const void *buffer, size_t size)
 {
-    return orte_grpcomm.set_proc_attr(key, buffer, size);
+    return orte_grpcomm.set_proc_attr("ompi", "btl", key, buffer, size);
 }
 
 
                        struct ompi_proc_t *source_proc,
                        void **buffer, size_t *size)
 {
-    return orte_grpcomm.get_proc_attr(source_proc->proc_name, key, buffer, size);
+    return orte_grpcomm.get_proc_attr(source_proc->proc_name, "ompi", "btl", key, buffer, size);
 }
 
 int
     }
     OBJ_DESTRUCT(&buf);
     
-    return orte_grpcomm.set_proc_attr(key, bo.bytes, bo.size);
+    return orte_grpcomm.set_proc_attr("ompi", "btl", key, bo.bytes, bo.size);
 }
 
 
     
     bo.bytes = NULL;
     bo.size = 0;
-    if (ORTE_SUCCESS != (rc = orte_grpcomm.get_proc_attr(source_proc->proc_name, key,
+    if (ORTE_SUCCESS != (rc = orte_grpcomm.get_proc_attr(source_proc->proc_name, "ompi", "btl", key,
                                                          (void**)&bo.bytes, &bsize))) {
         return rc;
     }

opal/mca/hwloc/hwloc142/hwloc/include/hwloc/autogen/config.h

+/* opal/mca/hwloc/hwloc142/hwloc/include/hwloc/autogen/config.h.  Generated from config.h.in by configure.  */
+/* -*- c -*-
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 inria.  All rights reserved.
+ * Copyright © 2009-2012 Université Bordeaux 1
+ * Copyright © 2009-2011 Cisco Systems, Inc.  All rights reserved.
+ * See COPYING in top-level directory.
+ */
+
+/* The configuration file */
+
+#ifndef HWLOC_CONFIG_H
+#define HWLOC_CONFIG_H
+
+#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
+# define __hwloc_restrict __restrict
+#else
+# if __STDC_VERSION__ >= 199901L
+#  define __hwloc_restrict restrict
+# else
+#  define __hwloc_restrict
+# endif
+#endif
+
+/* Note that if we're compiling C++, then just use the "inline"
+   keyword, since it's part of C++ */
+#if defined(c_plusplus) || defined(__cplusplus)
+#  define __hwloc_inline inline
+#elif defined(_MSC_VER) || defined(__HP_cc)
+#  define __hwloc_inline __inline
+#else
+#  define __hwloc_inline __inline__
+#endif
+
+/*
+ * Note: this is public.  We can not assume anything from the compiler used
+ * by the application and thus the HWLOC_HAVE_* macros below are not
+ * fetched from the autoconf result here. We only automatically use a few
+ * well-known easy cases.
+ */
+
+/* Some handy constants to make the logic below a little more readable */
+#if defined(__cplusplus) && \
+    (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR >= 4))
+#define GXX_ABOVE_3_4 1
+#else
+#define GXX_ABOVE_3_4 0
+#endif
+
+#if !defined(__cplusplus) && \
+    (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
+#define GCC_ABOVE_2_95 1
+#else
+#define GCC_ABOVE_2_95 0
+#endif
+
+#if !defined(__cplusplus) && \
+    (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96))
+#define GCC_ABOVE_2_96 1
+#else
+#define GCC_ABOVE_2_96 0
+#endif
+
+#if !defined(__cplusplus) && \
+    (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
+#define GCC_ABOVE_3_3 1
+#else
+#define GCC_ABOVE_3_3 0
+#endif
+
+/* Maybe before gcc 2.95 too */
+#ifdef HWLOC_HAVE_ATTRIBUTE_UNUSED
+#define __HWLOC_HAVE_ATTRIBUTE_UNUSED HWLOC_HAVE_ATTRIBUTE_UNUSED 
+#elif defined(__GNUC__)
+# define __HWLOC_HAVE_ATTRIBUTE_UNUSED (GXX_ABOVE_3_4 || GCC_ABOVE_2_95)
+#else
+# define __HWLOC_HAVE_ATTRIBUTE_UNUSED 0
+#endif
+#if __HWLOC_HAVE_ATTRIBUTE_UNUSED
+# define __hwloc_attribute_unused __attribute__((__unused__))
+#else
+# define __hwloc_attribute_unused
+#endif
+
+#ifdef HWLOC_HAVE_ATTRIBUTE_MALLOC
+#define __HWLOC_HAVE_ATTRIBUTE_MALLOC HWLOC_HAVE_ATTRIBUTE_MALLOC 
+#elif defined(__GNUC__)
+# define __HWLOC_HAVE_ATTRIBUTE_MALLOC (GXX_ABOVE_3_4 || GCC_ABOVE_2_96)
+#else
+# define __HWLOC_HAVE_ATTRIBUTE_MALLOC 0
+#endif
+#if __HWLOC_HAVE_ATTRIBUTE_MALLOC
+# define __hwloc_attribute_malloc __attribute__((__malloc__))
+#else
+# define __hwloc_attribute_malloc
+#endif
+
+#ifdef HWLOC_HAVE_ATTRIBUTE_CONST
+#define __HWLOC_HAVE_ATTRIBUTE_CONST HWLOC_HAVE_ATTRIBUTE_CONST 
+#elif defined(__GNUC__)
+# define __HWLOC_HAVE_ATTRIBUTE_CONST (GXX_ABOVE_3_4 || GCC_ABOVE_2_95)
+#else
+# define __HWLOC_HAVE_ATTRIBUTE_CONST 0
+#endif
+#if __HWLOC_HAVE_ATTRIBUTE_CONST
+# define __hwloc_attribute_const __attribute__((__const__))
+#else
+# define __hwloc_attribute_const
+#endif
+
+#ifdef HWLOC_HAVE_ATTRIBUTE_PURE
+#define __HWLOC_HAVE_ATTRIBUTE_PURE HWLOC_HAVE_ATTRIBUTE_PURE 
+#elif defined(__GNUC__)
+# define __HWLOC_HAVE_ATTRIBUTE_PURE (GXX_ABOVE_3_4 || GCC_ABOVE_2_96)
+#else
+# define __HWLOC_HAVE_ATTRIBUTE_PURE 0
+#endif
+#if __HWLOC_HAVE_ATTRIBUTE_PURE
+# define __hwloc_attribute_pure __attribute__((__pure__))
+#else
+# define __hwloc_attribute_pure
+#endif
+
+#ifdef HWLOC_HAVE_ATTRIBUTE_DEPRECATED
+#define __HWLOC_HAVE_ATTRIBUTE_DEPRECATED HWLOC_HAVE_ATTRIBUTE_DEPRECATED 
+#elif defined(__GNUC__)
+# define __HWLOC_HAVE_ATTRIBUTE_DEPRECATED (GXX_ABOVE_3_4 || GCC_ABOVE_3_3)
+#else
+# define __HWLOC_HAVE_ATTRIBUTE_DEPRECATED 0
+#endif
+#if __HWLOC_HAVE_ATTRIBUTE_DEPRECATED
+# define __hwloc_attribute_deprecated __attribute__((__deprecated__))
+#else
+# define __hwloc_attribute_deprecated
+#endif
+
+#ifdef HWLOC_C_HAVE_VISIBILITY
+# if HWLOC_C_HAVE_VISIBILITY
+#  define HWLOC_DECLSPEC __attribute__((__visibility__("default")))
+# else
+#  define HWLOC_DECLSPEC
+# endif
+#else
+# define HWLOC_DECLSPEC
+#endif
+
+/* Defined to 1 on Linux */
+#define HWLOC_LINUX_SYS 1
+
+/* Defined to 1 if the CPU_SET macro works */
+#define HWLOC_HAVE_CPU_SET 1
+
+/* Defined to 1 if you have the `windows.h' header. */
+/* #undef HWLOC_HAVE_WINDOWS_H */
+#define hwloc_pid_t pid_t
+#define hwloc_thread_t pthread_t
+
+#ifdef HWLOC_HAVE_WINDOWS_H
+
+#  include <windows.h>
+typedef DWORDLONG hwloc_uint64_t;
+
+#else /* HWLOC_HAVE_WINDOWS_H */
+
+#  ifdef hwloc_thread_t
+#    include <pthread.h>
+#  endif /* hwloc_thread_t */
+
+/* Defined to 1 if you have the <stdint.h> header file. */
+#  define HWLOC_HAVE_STDINT_H 1
+
+#  include <unistd.h>
+#  ifdef HWLOC_HAVE_STDINT_H
+#    include <stdint.h>
+#  endif
+typedef uint64_t hwloc_uint64_t;
+
+#endif /* HWLOC_HAVE_WINDOWS_H */
+
+/* Whether we need to re-define all the hwloc public symbols or not */
+#define HWLOC_SYM_TRANSFORM 1
+
+/* The hwloc symbol prefix */
+#define HWLOC_SYM_PREFIX opal_hwloc142_
+
+/* The hwloc symbol prefix in all caps */
+#define HWLOC_SYM_PREFIX_CAPS OPAL_HWLOC142_
+
+#endif /* HWLOC_CONFIG_H */

opal/mca/hwloc/hwloc142/hwloc/include/private/autogen/config.h

+/* opal/mca/hwloc/hwloc142/hwloc/include/private/autogen/config.h.  Generated from config.h.in by configure.  */
+/* include/private/autogen/config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* -*- c -*-
+ *
+ * Copyright © 2009 CNRS, inria., Université Bordeaux 1  All rights reserved.
+ * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+ * $COPYRIGHT$
+ * 
+ * Additional copyrights may follow
+ * 
+ * $HEADER$
+ *
+ * This file is automatically generated by configure.  Edits will be lost
+ * the next time you run configure!
+ */
+
+#ifndef HWLOC_CONFIGURE_H
+#define HWLOC_CONFIGURE_H
+
+
+/* Define to 1 if the system has the type `CACHE_DESCRIPTOR'. */
+/* #undef HAVE_CACHE_DESCRIPTOR */
+
+/* Define to 1 if the system has the type `CACHE_RELATIONSHIP'. */
+/* #undef HAVE_CACHE_RELATIONSHIP */
+
+/* Define to 1 if you have the `clz' function. */
+/* #undef HAVE_CLZ */
+
+/* Define to 1 if you have the `clzl' function. */
+/* #undef HAVE_CLZL */
+
+/* Define to 1 if we have -lcuda */
+/* #undef HAVE_CUDA */
+
+/* Define to 1 if we have -lcudart */
+/* #undef HAVE_CUDART */
+
+/* Define to 1 if you have the <cuda.h> header file. */
+/* #undef HAVE_CUDA_H */
+
+/* Define to 1 if you have the <cuda_runtime_api.h> header file. */
+/* #undef HAVE_CUDA_RUNTIME_API_H */
+
+/* Define to 1 if you have the declaration of `CTL_HW', and to 0 if you don't.
+   */
+#define HAVE_DECL_CTL_HW 0
+
+/* Define to 1 if you have the declaration of `fabsf', and to 0 if you don't.
+   */
+#define HAVE_DECL_FABSF 1
+
+/* Define to 1 if you have the declaration of `HW_NCPU', and to 0 if you
+   don't. */
+#define HAVE_DECL_HW_NCPU 0
+
+/* Define to 1 if you have the declaration of `PCI_LOOKUP_NO_NUMBERS', and to
+   0 if you don't. */
+#define HAVE_DECL_PCI_LOOKUP_NO_NUMBERS 1
+
+/* Define to 1 if you have the declaration of `pthread_getaffinity_np', and to
+   0 if you don't. */
+#define HAVE_DECL_PTHREAD_GETAFFINITY_NP 1
+
+/* Define to 1 if you have the declaration of `pthread_setaffinity_np', and to
+   0 if you don't. */
+#define HAVE_DECL_PTHREAD_SETAFFINITY_NP 1
+
+/* Define to 1 if you have the declaration of `_SC_LARGE_PAGESIZE', and to 0
+   if you don't. */
+#define HAVE_DECL__SC_LARGE_PAGESIZE 0
+
+/* Define to 1 if you have the declaration of `_SC_NPROCESSORS_CONF', and to 0
+   if you don't. */
+#define HAVE_DECL__SC_NPROCESSORS_CONF 1
+
+/* Define to 1 if you have the declaration of `_SC_NPROCESSORS_ONLN', and to 0
+   if you don't. */
+#define HAVE_DECL__SC_NPROCESSORS_ONLN 1
+
+/* Define to 1 if you have the declaration of `_SC_NPROC_CONF', and to 0 if
+   you don't. */
+#define HAVE_DECL__SC_NPROC_CONF 0
+
+/* Define to 1 if you have the declaration of `_SC_NPROC_ONLN', and to 0 if
+   you don't. */
+#define HAVE_DECL__SC_NPROC_ONLN 0
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the `ffs' function. */
+#define HAVE_FFS 1
+
+/* Define to 1 if you have the `ffsl' function. */
+#define HAVE_FFSL 1
+
+/* Define to 1 if you have the `fls' function. */
+/* #undef HAVE_FLS */
+
+/* Define to 1 if you have the `flsl' function. */
+/* #undef HAVE_FLSL */
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if the system has the type `GROUP_AFFINITY'. */
+/* #undef HAVE_GROUP_AFFINITY */
+
+/* Define to 1 if the system has the type `GROUP_RELATIONSHIP'. */
+/* #undef HAVE_GROUP_RELATIONSHIP */
+
+/* Define to 1 if you have the `host_info' function. */
+/* #undef HAVE_HOST_INFO */
+
+/* Define to 1 if you have the <infiniband/verbs.h> header file. */
+#define HAVE_INFINIBAND_VERBS_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if the system has the type `KAFFINITY'. */
+/* #undef HAVE_KAFFINITY */
+
+/* Define to 1 if you have the <kstat.h> header file. */
+/* #undef HAVE_KSTAT_H */
+
+/* Define to 1 if you have the <langinfo.h> header file. */
+/* #undef HAVE_LANGINFO_H */
+
+/* Define to 1 if we have -lgdi32 */
+/* #undef HAVE_LIBGDI32 */
+
+/* Define to 1 if we have -libverbs */
+/* #undef HAVE_LIBIBVERBS */
+
+/* Define to 1 if we have -lkstat */
+/* #undef HAVE_LIBKSTAT */
+
+/* Define to 1 if we have -llgrp */
+/* #undef HAVE_LIBLGRP */
+
+/* Define to 1 if you have the `pci' library (-lpci). */
+/* #undef HAVE_LIBPCI */
+
+/* Define to 1 if you have the <locale.h> header file. */
+/* #undef HAVE_LOCALE_H */
+
+/* Define to 1 if the system has the type `LOGICAL_PROCESSOR_RELATIONSHIP'. */
+/* #undef HAVE_LOGICAL_PROCESSOR_RELATIONSHIP */
+
+/* Define to 1 if you have the <mach/mach_host.h> header file. */
+/* #undef HAVE_MACH_MACH_HOST_H */
+
+/* Define to 1 if you have the <mach/mach_init.h> header file. */
+/* #undef HAVE_MACH_MACH_INIT_H */
+
+/* Define to 1 if you have the <malloc.h> header file. */
+#define HAVE_MALLOC_H 1
+
+/* Define to 1 if you have the `memalign' function. */
+#define HAVE_MEMALIGN 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <myriexpress.h> header file. */
+/* #undef HAVE_MYRIEXPRESS_H */
+
+/* Define to 1 if you have the `nl_langinfo' function. */
+/* #undef HAVE_NL_LANGINFO */
+
+/* Define to 1 if you have the <numaif.h> header file. */
+#define HAVE_NUMAIF_H 1
+
+/* Define to 1 if the system has the type `NUMA_NODE_RELATIONSHIP'. */
+/* #undef HAVE_NUMA_NODE_RELATIONSHIP */
+
+/* Define to 1 if you have the `openat' function. */
+#define HAVE_OPENAT 1
+
+/* Define to 1 if you have the <pci/pci.h> header file. */
+#define HAVE_PCI_PCI_H 1
+
+/* Define to 1 if you have the <picl.h> header file. */
+/* #undef HAVE_PICL_H */
+
+/* Define to 1 if you have the `posix_memalign' function. */
+#define HAVE_POSIX_MEMALIGN 1
+
+/* Define to 1 if the system has the type `PROCESSOR_CACHE_TYPE'. */
+/* #undef HAVE_PROCESSOR_CACHE_TYPE */
+
+/* Define to 1 if the system has the type `PROCESSOR_GROUP_INFO'. */
+/* #undef HAVE_PROCESSOR_GROUP_INFO */
+
+/* Define to 1 if the system has the type `PROCESSOR_RELATIONSHIP'. */
+/* #undef HAVE_PROCESSOR_RELATIONSHIP */
+
+/* Define to 1 if the system has the type `PSAPI_WORKING_SET_EX_BLOCK'. */
+/* #undef HAVE_PSAPI_WORKING_SET_EX_BLOCK */
+
+/* Define to 1 if the system has the type `PSAPI_WORKING_SET_EX_INFORMATION'.
+   */
+/* #undef HAVE_PSAPI_WORKING_SET_EX_INFORMATION */
+
+/* Define to 1 if you have the <pthread_np.h> header file. */
+/* #undef HAVE_PTHREAD_NP_H */
+
+/* Define to 1 if the system has the type `pthread_t'. */
+#define HAVE_PTHREAD_T 1
+
+/* Define to 1 if you have the `putwc' function. */
+/* #undef HAVE_PUTWC */
+
+/* Define to 1 if the system has the type `RelationProcessorPackage'. */
+/* #undef HAVE_RELATIONPROCESSORPACKAGE */
+
+/* Define to 1 if you have the `setlocale' function. */
+#define HAVE_SETLOCALE 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strftime' function. */
+#define HAVE_STRFTIME 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strncasecmp' function. */
+#define HAVE_STRNCASECMP 1
+
+/* Define to 1 if you have the `sysctl' function. */
+#define HAVE_SYSCTL 1
+
+/* Define to 1 if you have the `sysctlbyname' function. */
+/* #undef HAVE_SYSCTLBYNAME */
+
+/* Define to 1 if the system has the type
+   `SYSTEM_LOGICAL_PROCESSOR_INFORMATION'. */
+/* #undef HAVE_SYSTEM_LOGICAL_PROCESSOR_INFORMATION */
+
+/* Define to 1 if the system has the type
+   `SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX'. */
+/* #undef HAVE_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX */
+
+/* Define to 1 if you have the <sys/cpuset.h> header file. */
+/* #undef HAVE_SYS_CPUSET_H */
+
+/* Define to 1 if you have the <sys/lgrp_user.h> header file. */
+/* #undef HAVE_SYS_LGRP_USER_H */
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/sysctl.h> header file. */
+#define HAVE_SYS_SYSCTL_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/utsname.h> header file. */
+#define HAVE_SYS_UTSNAME_H 1
+
+/* Define to 1 if you have the `uname' function. */
+#define HAVE_UNAME 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if the system has the type `wchar_t'. */
+/* #undef HAVE_WCHAR_T */
+
+/* Define to 1 if you have the <X11/keysym.h> header file. */
+/* #undef HAVE_X11_KEYSYM_H */
+
+/* Define to 1 if you have the <X11/Xlib.h> header file. */
+/* #undef HAVE_X11_XLIB_H */
+
+/* Define to 1 if you have the <X11/Xutil.h> header file. */
+/* #undef HAVE_X11_XUTIL_H */
+
+/* Define to 1 on AIX */
+/* #undef HWLOC_AIX_SYS */
+
+/* Whether C compiler supports symbol visibility or not */
+#define HWLOC_C_HAVE_VISIBILITY 1
+
+/* Define to 1 on Darwin */
+/* #undef HWLOC_DARWIN_SYS */
+
+/* Whether we are in debugging mode or not */
+/* #undef HWLOC_DEBUG */
+
+/* Define to 1 on *FREEBSD */
+/* #undef HWLOC_FREEBSD_SYS */
+
+/* Whether your compiler has __attribute__ or not */
+#define HWLOC_HAVE_ATTRIBUTE 1
+
+/* Whether your compiler has __attribute__ aligned or not */
+#define HWLOC_HAVE_ATTRIBUTE_ALIGNED 1
+
+/* Whether your compiler has __attribute__ always_inline or not */
+#define HWLOC_HAVE_ATTRIBUTE_ALWAYS_INLINE 1
+
+/* Whether your compiler has __attribute__ cold or not */
+#define HWLOC_HAVE_ATTRIBUTE_COLD 0
+
+/* Whether your compiler has __attribute__ const or not */
+#define HWLOC_HAVE_ATTRIBUTE_CONST 1
+
+/* Whether your compiler has __attribute__ deprecated or not */
+#define HWLOC_HAVE_ATTRIBUTE_DEPRECATED 1
+
+/* Whether your compiler has __attribute__ format or not */
+#define HWLOC_HAVE_ATTRIBUTE_FORMAT 1
+
+/* Whether your compiler has __attribute__ hot or not */
+#define HWLOC_HAVE_ATTRIBUTE_HOT 0
+
+/* Whether your compiler has __attribute__ malloc or not */
+#define HWLOC_HAVE_ATTRIBUTE_MALLOC 1
+
+/* Whether your compiler has __attribute__ may_alias or not */
+#define HWLOC_HAVE_ATTRIBUTE_MAY_ALIAS 1
+
+/* Whether your compiler has __attribute__ nonnull or not */
+#define HWLOC_HAVE_ATTRIBUTE_NONNULL 1
+
+/* Whether your compiler has __attribute__ noreturn or not */
+#define HWLOC_HAVE_ATTRIBUTE_NORETURN 1
+
+/* Whether your compiler has __attribute__ no_instrument_function or not */
+#define HWLOC_HAVE_ATTRIBUTE_NO_INSTRUMENT_FUNCTION 1
+
+/* Whether your compiler has __attribute__ packed or not */
+#define HWLOC_HAVE_ATTRIBUTE_PACKED 1
+
+/* Whether your compiler has __attribute__ pure or not */
+#define HWLOC_HAVE_ATTRIBUTE_PURE 1
+
+/* Whether your compiler has __attribute__ sentinel or not */
+#define HWLOC_HAVE_ATTRIBUTE_SENTINEL 1
+
+/* Whether your compiler has __attribute__ unused or not */
+#define HWLOC_HAVE_ATTRIBUTE_UNUSED 1
+
+/* Whether your compiler has __attribute__ warn unused result or not */
+#define HWLOC_HAVE_ATTRIBUTE_WARN_UNUSED_RESULT 1
+
+/* Whether your compiler has __attribute__ weak alias or not */
+#define HWLOC_HAVE_ATTRIBUTE_WEAK_ALIAS 1
+
+/* Define to 1 if your `ffs' function is known to be broken. */
+/* #undef HWLOC_HAVE_BROKEN_FFS */
+
+/* Define to 1 if you have the `cairo' library. */
+/* #undef HWLOC_HAVE_CAIRO */
+
+/* Define to 1 if you have the `clz' function. */
+/* #undef HWLOC_HAVE_CLZ */
+
+/* Define to 1 if you have the `clzl' function. */
+/* #undef HWLOC_HAVE_CLZL */
+
+/* Define to 1 if you have cpuid */
+#define HWLOC_HAVE_CPUID 1
+
+/* Define to 1 if the CPU_SET macro works */
+#define HWLOC_HAVE_CPU_SET 1
+
+/* Define to 1 if the CPU_SET_S macro works */
+/* #undef HWLOC_HAVE_CPU_SET_S */
+
+/* Define to 1 if function `clz' is declared by system headers */
+/* #undef HWLOC_HAVE_DECL_CLZ */
+
+/* Define to 1 if function `clzl' is declared by system headers */
+/* #undef HWLOC_HAVE_DECL_CLZL */
+
+/* Define to 1 if function `ffs' is declared by system headers */
+#define HWLOC_HAVE_DECL_FFS 1
+
+/* Define to 1 if function `ffsl' is declared by system headers */
+#define HWLOC_HAVE_DECL_FFSL 1
+
+/* Define to 1 if function `fls' is declared by system headers */
+/* #undef HWLOC_HAVE_DECL_FLS */
+
+/* Define to 1 if function `flsl' is declared by system headers */
+/* #undef HWLOC_HAVE_DECL_FLSL */
+
+/* Define to 1 if you have the `ffs' function. */
+#define HWLOC_HAVE_FFS 1
+
+/* Define to 1 if you have the `ffsl' function. */
+#define HWLOC_HAVE_FFSL 1
+
+/* Define to 1 if you have the `fls' function. */
+/* #undef HWLOC_HAVE_FLS */
+
+/* Define to 1 if you have the `flsl' function. */
+/* #undef HWLOC_HAVE_FLSL */
+
+/* Define to 1 if you have the `libpci' library. */
+#define HWLOC_HAVE_LIBPCI 1
+
+/* Define to 1 if you have a library providing the termcap interface */
+/* #undef HWLOC_HAVE_LIBTERMCAP */
+
+/* Define to 1 if you have the `libxml2' library. */
+/* #undef HWLOC_HAVE_LIBXML2 */
+
+/* Define to 1 if mbind is available. */
+#define HWLOC_HAVE_MBIND 1
+
+/* Define to 1 if migrate_pages is available. */
+#define HWLOC_HAVE_MIGRATE_PAGES 1
+
+/* Define to 1 if glibc provides the old prototype (without length) of
+   sched_setaffinity() */
+/* #undef HWLOC_HAVE_OLD_SCHED_SETAFFINITY */
+
+/* Define to 1 if struct pci_dev has a `device_class' field. */
+#define HWLOC_HAVE_PCIDEV_DEVICE_CLASS 1
+
+/* Define to 1 if struct pci_dev has a `domain' field. */
+#define HWLOC_HAVE_PCIDEV_DOMAIN 1
+
+/* Define to 1 if `libpci' has the `pci_find_cap' function. */
+#define HWLOC_HAVE_PCI_FIND_CAP 1
+
+/* `Define to 1 if you have pthread_getthrds_np' */
+/* #undef HWLOC_HAVE_PTHREAD_GETTHRDS_NP */
+
+/* Define to 1 if glibc provides a prototype of sched_setaffinity() */
+#define HWLOC_HAVE_SCHED_SETAFFINITY 1
+
+/* Define to 1 if set_mempolicy is available. */
+#define HWLOC_HAVE_SET_MEMPOLICY 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HWLOC_HAVE_STDINT_H 1
+
+/* Define to 1 if you have the `windows.h' header. */
+/* #undef HWLOC_HAVE_WINDOWS_H */
+
+/* Define to 1 if X11 libraries are available. */
+/* #undef HWLOC_HAVE_X11 */
+
+/* Define to 1 if the _syscall3 macro works */
+/* #undef HWLOC_HAVE__SYSCALL3 */
+
+/* Define to 1 on HP-UX */
+/* #undef HWLOC_HPUX_SYS */
+
+/* Define to 1 on Irix */
+/* #undef HWLOC_IRIX_SYS */
+
+/* Define to 1 on Linux */
+#define HWLOC_LINUX_SYS 1
+
+/* Major version of hwloc */
+/* #undef HWLOC_MAJOR_VERSION */
+
+/* Minor version of hwloc */
+/* #undef HWLOC_MINOR_VERSION */
+
+/* Define to 1 on OSF */
+/* #undef HWLOC_OSF_SYS */
+
+/* Release version of hwloc */
+/* #undef HWLOC_RELEASE_VERSION */
+
+/* The size of `unsigned int', as computed by sizeof */
+#define HWLOC_SIZEOF_UNSIGNED_INT 4
+
+/* The size of `unsigned long', as computed by sizeof */
+#define HWLOC_SIZEOF_UNSIGNED_LONG 8
+
+/* Define to 1 on Solaris */
+/* #undef HWLOC_SOLARIS_SYS */
+
+/* The hwloc symbol prefix */
+#define HWLOC_SYM_PREFIX opal_hwloc142_
+
+/* The hwloc symbol prefix in all caps */
+#define HWLOC_SYM_PREFIX_CAPS OPAL_HWLOC142_
+
+/* Whether we need to re-define all the hwloc public symbols or not */
+#define HWLOC_SYM_TRANSFORM 1
+
+/* Define to 1 on unsupported systems */
+/* #undef HWLOC_UNSUPPORTED_SYS */
+
+/* Define to 1 if ncurses works, preferred over curses */
+/* #undef HWLOC_USE_NCURSES */
+
+/* Define to 1 on WINDOWS */
+/* #undef HWLOC_WIN_SYS */
+
+/* Define to 1 on x86_32 */
+/* #undef HWLOC_X86_32_ARCH */
+
+/* Define to 1 on x86_64 */
+#define HWLOC_X86_64_ARCH 1
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LT_OBJDIR ".libs/"
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+/* #undef NO_MINUS_C_MINUS_O */
+
+/* Name of package */
+/* #undef PACKAGE */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "http://www.open-mpi.org/community/help/"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "Open MPI"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "Open MPI 1.7a1"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "openmpi"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.7a1"
+
+/* The size of `unsigned int', as computed by sizeof. */
+#define SIZEOF_UNSIGNED_INT 4
+
+/* The size of `unsigned long', as computed by sizeof. */
+#define SIZEOF_UNSIGNED_LONG 8
+
+/* The size of `void *', as computed by sizeof. */
+#define SIZEOF_VOID_P 8
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Enable extensions on HP-UX. */
+#ifndef _HPUX_SOURCE
+# define _HPUX_SOURCE 1
+#endif
+
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+
+
+/* Version number of package */
+/* #undef VERSION */
+
+/* Define to 1 if the X Window System is missing or not being used. */
+/* #undef X_DISPLAY_MISSING */
+
+/* Are we building for HP-UX? */
+#define _HPUX_SOURCE 1
+
+/* Define to 1 if on MINIX. */
+/* #undef _MINIX */
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+/* #undef _POSIX_1_SOURCE */
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+/* #undef _POSIX_SOURCE */
+
+/* Define this to the process ID type */
+#define hwloc_pid_t pid_t
+
+/* Define this to either strncasecmp or strncmp */
+#define hwloc_strncasecmp strncasecmp
+
+/* Define this to the thread ID type */
+#define hwloc_thread_t pthread_t
+
+
+#endif /* HWLOC_CONFIGURE_H */
+

orte/mca/grpcomm/base/base.h

                                                      orte_grpcomm_internal_stage_t stg);
 
 /* modex support */
-ORTE_DECLSPEC   int orte_grpcomm_base_set_proc_attr(const char *attr_name,
+ORTE_DECLSPEC   int orte_grpcomm_base_set_proc_attr(const char* project,
+                                                    const char* framework,
+                                                    const char *attr_name,
                                                     const void *data,
                                                     size_t size);
 ORTE_DECLSPEC   int orte_grpcomm_base_get_proc_attr(const orte_process_name_t proc,
+                                                    const char* project,
+                                                    const char* framework,
                                                     const char * attribute_name, void **val, 
                                                     size_t *size);
 ORTE_DECLSPEC   void orte_grpcomm_base_store_peer_modex(opal_buffer_t *rbuf, void *cbdata);
 ORTE_DECLSPEC   int orte_grpcomm_base_pack_modex_entries(opal_buffer_t *buf);
 ORTE_DECLSPEC   int orte_grpcomm_base_update_modex_entries(orte_process_name_t *proc_name,
                                                            opal_buffer_t *rbuf);
-ORTE_DECLSPEC   int orte_grpcomm_base_load_modex_data(orte_process_name_t *proc, char *attribute_name,
-                                                      void *data, int num_bytes);
 
 /* comm support */
 ORTE_DECLSPEC int orte_grpcomm_base_comm_start(void);

orte/mca/grpcomm/base/grpcomm_base_modex.c

  * | modex_module_data_t            |
  * |  - opal_list_item_t            |
  * +--------------------------------+
+ * | char *project                  |
+ * | char *framework                |
  * | mca_base_component_t component |
  * | void *module_data              |
  * | size_t module_data_size        |
        false otherwise. */
     bool modex_received_data;
     /* List of modex_module_data_t structures containing all data
-       received from this process, sorted by component name. */
+       received from this process, sorted by project/framework/component name. */
     opal_list_t modex_module_data;
 };
 typedef struct modex_proc_data_t modex_proc_data_t;
 struct modex_attr_data_t {
     /** Structure can be put on lists */
     opal_list_item_t super;
+    /* Project */
+    char * project;
+    /** Framework */
+    char * framework;
     /** Attribute name */
     char * attr_name;
     /** Binary blob of data associated with this proc,component pair */
 static void
 modex_attr_construct(modex_attr_data_t * module)
 {
+    module->project = NULL;
+    module->framework = NULL;
     module->attr_name = NULL;
     module->attr_data = NULL;
     module->attr_data_size = 0;
 static void
 modex_attr_destruct(modex_attr_data_t * module)
 {
+    if (NULL != module->project) {
+        free(module->project);
+    }
+    if (NULL != module->framework) {
+        free(module->framework);
+    }
     if (NULL != module->attr_name) {
         free(module->attr_name);
     }
  */
 static modex_attr_data_t *
 modex_lookup_attr_data(modex_proc_data_t *proc_data,
+                       const char *project,
+                       const char *framework,
                        const char *attr_name,
                        bool create_if_not_found)
 {
     for (attr_data = (modex_attr_data_t *) opal_list_get_first(&proc_data->modex_module_data);
          attr_data != (modex_attr_data_t *) opal_list_get_end(&proc_data->modex_module_data);
          attr_data = (modex_attr_data_t *) opal_list_get_next(attr_data)) {
-        if (0 == strcmp(attr_name, attr_data->attr_name)) {
+        if (0 == strcmp(project, attr_data->project) &&
+            0 == strcmp(framework, attr_data->framework) &&
+            0 == strcmp(attr_name, attr_data->attr_name)) {
             return attr_data;
         }
     }
     if (create_if_not_found) {
         attr_data = OBJ_NEW(modex_attr_data_t);
         if (NULL == attr_data) return NULL;
-        
+        attr_data->project = strdup(project);
+        attr_data->framework = strdup(framework);
         attr_data->attr_name = strdup(attr_name);
         opal_list_append(&proc_data->modex_module_data, &attr_data->super);
         
     OBJ_RELEASE(modex_buffer);
 }
 
-int orte_grpcomm_base_set_proc_attr(const char *attr_name,
+int orte_grpcomm_base_set_proc_attr(const char* project,
+                                    const char* framework,
+                                    const char *attr_name,
                                     const void *data,
                                     size_t size)
 {
     OPAL_THREAD_LOCK(&mutex);
     
     OPAL_OUTPUT_VERBOSE((5, orte_grpcomm_base.output,
-                         "%s grpcomm:set_proc_attr: setting attribute %s data size %lu",
+                         "%s grpcomm:set_proc_attr: setting project %s framework %s attribute %s data size %lu",
                          ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
-                         attr_name, (unsigned long)size));
+                         project, framework, attr_name, (unsigned long)size));
 
+    /* Pack the project name information into the local buffer */
+    if (ORTE_SUCCESS != (rc = opal_dss.pack(modex_buffer, &project, 1, OPAL_STRING))) {
+        ORTE_ERROR_LOG(rc);
+        goto cleanup;
+    }
+    /* Pack the framework name information into the local buffer */
+    if (ORTE_SUCCESS != (rc = opal_dss.pack(modex_buffer, &framework, 1, OPAL_STRING))) {
+        ORTE_ERROR_LOG(rc);
+        goto cleanup;
+    }
     /* Pack the attribute name information into the local buffer */
     if (ORTE_SUCCESS != (rc = opal_dss.pack(modex_buffer, &attr_name, 1, OPAL_STRING))) {
         ORTE_ERROR_LOG(rc);
     /* track the number of entries */
     ++num_entries;
     
-cleanup:
+ cleanup:
     OPAL_THREAD_UNLOCK(&mutex);
     
     return rc;
 }
 
 int orte_grpcomm_base_get_proc_attr(const orte_process_name_t proc,
+                                    const char* project,
+                                    const char* framework,
                                     const char * attribute_name, void **val, 
                                     size_t *size)
 {
     modex_attr_data_t *attr_data;
     
     OPAL_OUTPUT_VERBOSE((5, orte_grpcomm_base.output,
-                         "%s grpcomm:get_proc_attr: searching for attr %s on proc %s",
-                         ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), attribute_name,
+                         "%s grpcomm:get_proc_attr: searching for project %s framework %s attr %s on proc %s",
+                         ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), project, framework, attribute_name,
                          ORTE_NAME_PRINT(&proc)));
 
     proc_data = modex_lookup_orte_proc(&proc);
     
     OPAL_THREAD_LOCK(&proc_data->modex_lock);
     
+    /* pick the corresponding project hash table */
+
     /* look up attribute */
-    attr_data = modex_lookup_attr_data(proc_data, attribute_name, false);
+    attr_data = modex_lookup_attr_data(proc_data, project, framework, attribute_name, false);
     
     /* copy the data out to the user */
     if ((NULL == attr_data) ||
         (attr_data->attr_data_size == 0)) {
         OPAL_OUTPUT_VERBOSE((5, orte_grpcomm_base.output,
-                             "%s grpcomm:get_proc_attr: no attr avail or zero byte size for proc %s attribute %s",
+                             "%s grpcomm:get_proc_attr: no attr avail or zero byte size for proc %s project %s framework %s attribute %s",
                              ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
-                             ORTE_NAME_PRINT(&proc), attribute_name));
+                             ORTE_NAME_PRINT(&proc), project, framework, attribute_name));
         *val = NULL;
         *size = 0;
     } else {
         *val = copy;
         *size = attr_data->attr_data_size;
         OPAL_OUTPUT_VERBOSE((5, orte_grpcomm_base.output,
-                             "%s grpcomm:get_proc_attr: found %d bytes for attr %s on proc %s",
+                             "%s grpcomm:get_proc_attr: found %d bytes for project %s framework %s attr %s on proc %s",
                              ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), (int)attr_data->attr_data_size,
-                             attribute_name, ORTE_NAME_PRINT(&proc)));
+                             project, framework, attribute_name, ORTE_NAME_PRINT(&proc)));
         
     }
     OPAL_THREAD_UNLOCK(&proc_data->modex_lock);
         size_t num_bytes;
         void *bytes = NULL;
         char *attr_name;
-        
+        char *project;
+        char *framework;
+
+        cnt = 1;
+        if (ORTE_SUCCESS != (rc = opal_dss.unpack(rbuf, &project, &cnt, OPAL_STRING))) {
+            ORTE_ERROR_LOG(rc);
+            goto cleanup;
+        }
+
+        cnt = 1;
+        if (ORTE_SUCCESS != (rc = opal_dss.unpack(rbuf, &framework, &cnt, OPAL_STRING))) {
+            ORTE_ERROR_LOG(rc);
+            goto cleanup;
+        }
+
         cnt = 1;
         if (ORTE_SUCCESS != (rc = opal_dss.unpack(rbuf, &attr_name, &cnt, OPAL_STRING))) {
             ORTE_ERROR_LOG(rc);
         }
         
         /*
-         * Lookup the corresponding modex structure
+         * Lookup the corresponding modex structure - create it if not found
          */
-        if (NULL == (attr_data = modex_lookup_attr_data(proc_data, 
+        if (NULL == (attr_data = modex_lookup_attr_data(proc_data, project, framework, 
                                                         attr_name, true))) {
             opal_output(0, "grpcomm:base:update_modex: modex_lookup_attr_data failed\n");
             rc = ORTE_ERR_NOT_FOUND;
     OPAL_THREAD_UNLOCK(&proc_data->modex_lock);
     return rc;
 }
-
-int orte_grpcomm_base_load_modex_data(orte_process_name_t *proc_name, char *attr_name,
-                                      void *data, int num_bytes)
-{
-    modex_proc_data_t *proc_data;
-    modex_attr_data_t *attr_data;
-    int rc = ORTE_SUCCESS;
-    void *bytes;
-    
-    OPAL_OUTPUT_VERBOSE((5, orte_grpcomm_base.output,
-                         "%s grpcomm:base:load_modex_data: loading %ld bytes for attr %s on proc %s",
-                         ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
-                         (long)num_bytes, attr_name, ORTE_NAME_PRINT(proc_name)));
-
-    /* look up the modex data structure */
-    proc_data = modex_lookup_orte_proc(proc_name);
-    if (proc_data == NULL) {
-        /* report the error */
-        opal_output(0, "grpcomm:base:update_modex: received modex info for unknown proc %s\n",
-                    ORTE_NAME_PRINT(proc_name));
-        return ORTE_ERR_NOT_FOUND;
-    }
-    
-    OPAL_THREAD_LOCK(&proc_data->modex_lock);
-    
-    /*
-     * Lookup the corresponding modex structure
-     */
-    if (NULL == (attr_data = modex_lookup_attr_data(proc_data, 
-                                                    attr_name, true))) {
-        opal_output(0, "grpcomm:base:update_modex: modex_lookup_attr_data failed\n");
-        rc = ORTE_ERR_NOT_FOUND;
-        goto cleanup;
-    }
-    if (NULL != attr_data->attr_data) {
-        /* some pre-existing value must be here - release it */
-        free(attr_data->attr_data);
-    }
-    /* create space for the data - this is necessary since the data being
-     * passed to us may be static or released on the other end
-     */
-    bytes = (void*)malloc(num_bytes);
-    memcpy(bytes, data, num_bytes);
-    attr_data->attr_data = bytes;
-    attr_data->attr_data_size = num_bytes;
-    proc_data->modex_received_data = true;            
-    
-cleanup:
-    OPAL_THREAD_UNLOCK(&proc_data->modex_lock);
-    return rc;
-}

orte/mca/grpcomm/cnos/grpcomm_cnos_module.c

 
 static int allgather(orte_grpcomm_collective_t *coll);
 
-static int set_proc_attr(const char *attr_name,
+static int set_proc_attr(const char* project,
+                         const char* framework,
+                         const char *attr_name,
                          const void *data,
                          size_t size);
 
 static int get_proc_attr(const orte_process_name_t proc,
+                         const char* project,
+                         const char* framework,
                          const char * attribute_name, void **val, 
                          size_t *size);
 
 
 static int purge_proc_attrs(void);
 
-static int set_proc_attr(const char *attr_name,
+static int set_proc_attr(const char* project,
+                         const char* framework,
+                         const char *attr_name,
                          const void *data,
                          size_t size)
 {
 }
 
 static int get_proc_attr(const orte_process_name_t proc,
+                         const char* project,
+                         const char* framework,
                          const char * attribute_name, void **val, 
                          size_t *size)
 {

orte/mca/grpcomm/grpcomm.h

  */
 
 /* send an attribute buffer */
-typedef int (*orte_grpcomm_base_module_modex_set_proc_attr_fn_t)(const char* attr_name, 
+typedef int (*orte_grpcomm_base_module_modex_set_proc_attr_fn_t)(const char* project,
+                                                                 const char* framework,
+                                                                 const char* attr_name, 
                                                                  const void *buffer, size_t size);
 
 /* get an attribute buffer */
 typedef int (*orte_grpcomm_base_module_modex_get_proc_attr_fn_t)(const orte_process_name_t name,
+                                                                 const char* project,
+                                                                 const char* framework,
                                                                  const char* attr_name,
                                                                  void **buffer, size_t *size);
 

orte/mca/grpcomm/pmi/grpcomm_pmi_module.c

                  orte_rml_tag_t tag);
 static int pmi_allgather(orte_grpcomm_collective_t *coll);
 static int pmi_barrier(orte_grpcomm_collective_t *coll);
-static int pmi_set_proc_attr(const char* attr_name, 
+static int pmi_set_proc_attr(const char* project,
+                             const char* framework,
+                             const char* attr_name, 
                              const void *buffer, size_t size);
 static int pmi_get_proc_attr(const orte_process_name_t name,
+                             const char* project,
+                             const char* framework,
                              const char* attr_name,
                              void **buffer, size_t *size);
 static int modex(orte_grpcomm_collective_t *coll);
     return ORTE_SUCCESS;
 }
 
-static int pmi_set_proc_attr(const char *attr_name, 
+static int pmi_set_proc_attr(const char* project,
+                             const char* framework,
+                             const char *attr_name, 
                              const void *buffer, size_t size)
 {
     int rc;
 }
 
 static int pmi_get_proc_attr(const orte_process_name_t name,
+                             const char* project,
+                             const char* framework,
                              const char* attr_name,
                              void **buffer, size_t *size)
 {
     }
 
 
-    rc = pmi_set_proc_attr ("HOSTNAME", orte_process_info.nodename, strlen(orte_process_info.nodename));
+    rc = pmi_set_proc_attr ("orte", "grpcomm", "HOSTNAME", orte_process_info.nodename, strlen(orte_process_info.nodename));
     if (ORTE_SUCCESS != rc) {
 	return rc;
     }
      * can be supported
      */
     rml_uri = orte_rml.get_contact_info();
-    rc = pmi_set_proc_attr ("RMLURI", rml_uri, strlen (rml_uri));
+    rc = pmi_set_proc_attr ("orte", "grpcomm", "RMLURI", rml_uri, strlen (rml_uri));
     if (ORTE_SUCCESS != rc) {
 	return rc;
     }
     free(rml_uri);
 
 #if OPAL_HAVE_HWLOC
-    rc = pmi_set_proc_attr ("BIND_LEVEL", &orte_process_info.bind_level, sizeof (orte_process_info.bind_level));
+    rc = pmi_set_proc_attr ("orte", "grpcomm", "BIND_LEVEL", &orte_process_info.bind_level, sizeof (orte_process_info.bind_level));
     if (ORTE_SUCCESS != rc) {
 	return rc;
     }
 
-    rc = pmi_set_proc_attr ("BIND_IDX", &orte_process_info.bind_idx, sizeof (orte_process_info.bind_idx));
+    rc = pmi_set_proc_attr ("orte", "grpcomm", "BIND_IDX", &orte_process_info.bind_idx, sizeof (orte_process_info.bind_idx));
     if (ORTE_SUCCESS != rc) {
 	return rc;
     }
     /* get my pidmap entry */
     pmap = (orte_pmap_t*)opal_pointer_array_get_item(&jmap->pmap, ORTE_PROC_MY_NAME->vpid);
 
-    rc = pmi_set_proc_attr ("LOCALRANK", &pmap->local_rank, sizeof (pmap->local_rank));
+    rc = pmi_set_proc_attr ("orte", "grpcomm", "LOCALRANK", &pmap->local_rank, sizeof (pmap->local_rank));
     if (ORTE_SUCCESS != rc) {
 	return rc;
     }
-    rc = pmi_set_proc_attr ("NODERANK", &pmap->node_rank, sizeof (pmap->node_rank));
+    rc = pmi_set_proc_attr ("orte", "grpcomm", "NODERANK", &pmap->node_rank, sizeof (pmap->node_rank));
     if (ORTE_SUCCESS != rc) {
 	return rc;
     }
 
         name.vpid = v;
 
-	rc = pmi_get_proc_attr (name, "RMLURI", (void **) &rml_uri, &len);
+	rc = pmi_get_proc_attr (name, "orte", "grpcomm", "RMLURI", (void **) &rml_uri, &len);
 	if (ORTE_SUCCESS != rc) {
 	    return rc;
 	}
         }
         free(rml_uri);
 
-	rc = pmi_get_proc_attr (name, "HOSTNAME", &tmp_val, &len);
+	rc = pmi_get_proc_attr (name, "orte", "grpcomm", "HOSTNAME", &tmp_val, &len);
 	if (ORTE_SUCCESS != rc) {
 	    return rc;
 	}
             unsigned int bind_idx;
 
             /* get the proc's locality info, if available */
-	    pmi_get_proc_attr (name, "BIND_LEVEL", &tmp_val, &len);
+	    pmi_get_proc_attr (name, "orte", "grpcomm", "BIND_LEVEL", &tmp_val, &len);
 	    if (ORTE_SUCCESS == rc && 0 < len) {
 		assert (len == sizeof (bind_level));
 		memmove (&bind_level, tmp_val, len);
 		free (tmp_val);
 	    }
 
-	    rc = pmi_get_proc_attr (name, "BIND_IDX", &tmp_val, &len);
+	    rc = pmi_get_proc_attr (name, "orte", "grpcomm", "BIND_IDX", &tmp_val, &len);
 	    if (ORTE_SUCCESS == rc && 0 < len) {
 		assert (len == sizeof (bind_idx));
 		memmove (&bind_idx, tmp_val, len);
 	}
 #endif
         /* get the proc's local/node rank info */
-	rc = pmi_get_proc_attr (name, "LOCALRANK", &tmp_val, &len);
+	rc = pmi_get_proc_attr (name, "orte", "grpcomm", "LOCALRANK", &tmp_val, &len);
 	if (ORTE_SUCCESS != rc) {
 	    return rc;
 	}
 	memmove (&pmap->local_rank, tmp_val, len);
 	free (tmp_val);
 
-	rc = pmi_get_proc_attr (name, "NODERANK", &tmp_val, &len);
+	rc = pmi_get_proc_attr (name, "orte", "grpcomm", "NODERANK", &tmp_val, &len);
 	if (ORTE_SUCCESS != rc) {
 	    return rc;
 	}

orte/mca/grpcomm/portals4_shmem/grpcomm_portals4_shmem_module.c

 
 static int allgather(orte_grpcomm_collective_t *coll);
 
-static int set_proc_attr(const char *attr_name,
+static int set_proc_attr(const char* project,
+                         const char* framework,
+                         const char *attr_name,
                          const void *data,
                          size_t size);
 
 static int get_proc_attr(const orte_process_name_t proc,
+                         const char* project,
+                         const char* framework,
                          const char * attribute_name, void **val, 
                          size_t *size);
 
 
 static int purge_proc_attrs(void);
 
-static int set_proc_attr(const char *attr_name,
+static int set_proc_attr(const char* project,
+                         const char* framework,
+                         const char *attr_name,
                          const void *data,
                          size_t size)
 {
 }
 
 static int get_proc_attr(const orte_process_name_t proc,
+                         const char* project,
+                         const char* framework,
                          const char * attribute_name, void **val, 
                          size_t *size)
 {