This is a pretty good suggestion; I think it could be useful to what we're trying to do with STCI, but I can see that it could be generally useful to others as well. As long as nobody objects on the grounds that this is too much to put into a single RFC, I can work towards the goal of incorporating this suggestion into what we've proposed below.
I suspect/know that a couple of the .m4 files in the current .../config/ subtree contain a mixture both ompi_ and opal_ related variables, so some non-zero amount of thought is probably required to make the right thing happen with these. I'm working on another project today, but will investigate later this week. If anybody has useful suggestions about how to tackle this, I'm open. On 2/10/09 4:38 PM, "George Bosilca" <bosi...@eecs.utk.edu> wrote: > These changes look fine to me. However, I would like to amend this > proposal to include the splitting of the config directory. Over the > last months, I know several project that use OPAL, and they like to > use it as an independent part and not as a subset of ompi. Therefore, > I had to extract everything related to OPAL from the ompi tree. While > the source code is pretty well divided in sub-projects, this is not > the case for the m4 scripts in the config directory. > > I would like to propose to split the config directory in several > parts: opal/config, orte/config and ompi/config and to modify the > autogen script to take them into account. > > Thanks, > george. > > On Feb 10, 2009, at 12:54 , Greg Koenig wrote: > >> RFC: Rename several OMPI_* names to OPAL_* >> >> WHAT: Rename several #define values that encode the prefix "OMPI_" to >> instead encode the prefix "OPAL_" throughout the entire Open MPI >> source code >> tree. Also, eliminate unnecessary #include lines from source code >> files >> under the ".../ompi/mca/btl" subtree. >> >> WHY: (1) These are general source code improvements that update >> #define >> values to more accurately describe which layer the values belong and >> remove >> unnecessary dependencies within the source code; (2) These changes >> will help >> with the effort to move the BTL code into an independent layer. >> >> WHERE: 1.4 trunk >> >> WHEN: Negotiable -- see below, but probably near split for 1.4 >> (No earlier than February 19, 2009) >> >> Timeout: February 19, 2009 >> >> ==================================== >> >> The proposed change involves renaming several #define values that >> encode the >> prefix "OMPI_" to instead encode the prefix "OPAL_" throughout the >> entire >> Open MPI source code tree. These names are holdovers from when the >> three >> existing layers of Open MPI were developed together prior to being >> split >> apart. Additionally, the proposed change eliminates a few unnecessary >> #include lines in BTL source code files under the .../ompi/mca/btl >> subtree. >> >> Specific modifications are detailed following this message text. A >> script >> to carry out these modifications is also attached to this message >> (gzipped >> to pass unmolested through the ORNL e-mail server). >> >> We believe these modifications improve the Open MPI source code by >> renaming >> values such that they correspond to the Open MPI layer to which they >> most >> closely belong, and that this improvement is itself of benefit to >> Open MPI. >> These modifications will also aid our ongoing efforts to extract the >> BTL >> code into a new layer ("ONET") that can be built with just direct >> dependence >> on the OPAL layer. >> >> Although these changes are simple string substitutions, they touch a >> fair >> amount of code in the Open MPI tree. Three people have tested these >> changes >> at our site on various platforms and have not discovered any problems. >> However, we recognize that some members of the community may have >> input/feedback regarding testing and we remain open to suggestions >> related >> to testing. >> >> One challenge that has been brought up regarding this RFC is that >> applying >> patches and/or CMRs to the source code tree after the proposed >> changes are >> performed will be more difficult. To that end, the best opportunity >> to >> apply the modifications proposed in this RFC seems to be in >> conjunction with >> 1.4. (My understanding from the developer conference call this >> morning is >> that there are a few other changes waiting for this switch as >> well.) We are >> open to suggestions about the best time to apply this RFC to avoid >> major >> disruptions. >> >> >> Specific changes follow: >> >> * From .../configure.ac. >> * OMPI_NEED_C_BOOL >> * OMPI_HAVE_WEAK_SYMBOLS >> * OMPI_C_HAVE_WEAK_SYMBOLS >> * OMPI_USE_STDBOOL_H >> * OMPI_HAVE_SA_RESTART >> * OMPI_HAVE_VA_COPY >> * OMPI_HAVE_UNDERSCORE_VA_COPY >> * OMPI_PTRDIFF_TYPE >> * (also, ompi_ptrdiff_t) >> * OMPI_ALIGN_WORD_SIZE_INTEGERS >> * OMPI_WANT_LIBLTDL >> * (also, OMPI_ENABLE_DLOPEN_SUPPORT) >> * OMPI_STDC_HEADERS >> * OMPI_HAVE_SYS_TIME_H >> * OMPI_HAVE_LONG_LONG >> * OMPI_HAVE_SYS_SYNCH_H >> * OMPI_SIZEOF_BOOL >> * OMPI_SIZEOF_INT >> >> * From .../config/ompi_check_attributes.m4. >> * OMPI_HAVE_ATTRIBUTE >> * (also, ompi_cv___attribute__) >> * OMPI_HAVE_ATTRIBUTE_ALIGNED >> * (also, ompi_cv___attribute__aligned) >> * OMPI_HAVE_ATTRIBUTE_ALWAYS_INLINE >> * (also, ompi_cv___attribute__always_inline) >> * OMPI_HAVE_ATTRIBUTE_COLD >> * (also, ompi_cv___attribute__cold) >> * OMPI_HAVE_ATTRIBUTE_CONST >> * (also, ompi_cv___attribute__const) >> * OMPI_HAVE_ATTRIBUTE_DEPRECATED >> * (also, ompi_cv___attribute__deprecated) >> * OMPI_HAVE_ATTRIBUTE_FORMAT >> * (also, ompi_cv___attribute__format) >> * OMPI_HAVE_ATTRIBUTE_HOT >> * (also, ompi_cv___attribute__hot) >> * OMPI_HAVE_ATTRIBUTE_MALLOC >> * (also, ompi_cv___attribute__malloc) >> * OMPI_HAVE_ATTRIBUTE_MAY_ALIAS >> * (also, ompi_cv___attribute__may_alias) >> * OMPI_HAVE_ATTRIBUTE_NO_INSTRUMENT_FUNCTION >> * (also, ompi_cv___attribute__no_instrument_function) >> * OMPI_HAVE_ATTRIBUTE_NONNULL >> * (also, ompi_cv___attribute__nonnull) >> * OMPI_HAVE_ATTRIBUTE_NORETURN >> * (also, ompi_cv___attribute__noreturn) >> * OMPI_HAVE_ATTRIBUTE_PACKED >> * (also, ompi_cv___attribute__packed) >> * OMPI_HAVE_ATTRIBUTE_PURE >> * (also, ompi_cv___attribute__pure) >> * OMPI_HAVE_ATTRIBUTE_SENTINEL >> * (also, ompi_cv___attribute__sentinel) >> * OMPI_HAVE_ATTRIBUTE_UNUSED >> * (also, ompi_cv___attribute__unused) >> * OMPI_HAVE_ATTRIBUTE_VISIBILITY >> * (also, ompi_cv___attribute__visibility) >> * OMPI_HAVE_ATTRIBUTE_WARN_UNUSED_RESULT >> * (also, ompi_cv___attribute__warn_unused_result) >> * OMPI_HAVE_ATTRIBUTE_WEAK_ALIAS >> * (also, ompi_cv___attribute__weak_alias) >> >> * From .../config/ompi_check_ident.m4. >> * OMPI_$1_USE_PRAGMA_IDENT >> * (also, ompi_pragma_ident_happy) >> * OMPI_$1_USE_IDENT >> * (also, ompi_ident_happy) >> * OMPI_$1_USE_PRAGMA_COMMENT >> * (also, ompi_pragma_comment_happy) >> * OMPI_$1_USE_CONST_CHAR_IDENT >> * (also, ompi_static_const_char_happy) >> >> * From .../config/ompi_check_pthreads_pids.m4. >> * OMPI_THREADS_HAVE_DIFFERENT_PIDS >> >> * From .../config/ompi_check_visibility.m4. >> * OMPI_C_HAVE_VISIBILITY >> >> * From .../config/ompi_config_asm.m4. >> * OMPI_ASM_TEXT >> * (also, ompi_cv_asm_text) >> * OMPI_ASM_GLOBAL >> * (also, ompi_cv_asm_global) >> * OMPI_ASM_LSYM >> * (also, ompi_cv_asm_lsym) >> * OMPI_ASM_GSYM >> * (also, ompi_cv_asm_gsym) >> * OMPI_ASM_LABEL_SUFFIX >> * (also, ompi_cv_asm_latel_suffix) >> * OMPI_ASM_ALIGN_LOG >> * OMPI_ASM_TYPE >> * (also, ompi_cv_asm_type) >> * OMPI_ASM_SIZE >> * (also, ompi_asm_size) >> * OMPI_POWERPC_R_REGISTERS >> * (also, ompi_cv_asm_powerpc_r_reg) >> * OMPI_C_GCC_INLINE_ASSEMBLY >> * OMPI_C_DEC_INLINE_ASSEMBLY >> * OMPI_C_XLC_INLINE_ASSEMBLY >> * OMPI_WANT_SMP_LOCKS >> * OMPI_ASM_SUPPORT_64BIT >> * OMPI_ASSEMBLY_FORMAT >> * OMPI_ASSEMBLY_ARCH >> * OMPI_HAVE_ASM_FILE >> >> * From .../config/ompi_config_threads.m4. >> * OMPI_HAVE_POSIX_THREADS >> * OMPI_HAVE_SOLARIS_THREADS >> * OMPI_THREADS_HAVE_DIFFERENT_PIDS >> * OMPI_ENABLE_MPI_THREADS >> * OMPI_ENABLE_PROGRESS_THREADS >> >> * From .../config/ompi_functions.m4. >> * OMPI_ARCH >> >> * From .../config/ompi_setup_cc.m4. >> * OMPI_C_HAVE_BUILTIN_EXPECT >> * OMPI_C_HAVE_BUILTIN_PREFETCH >> * OMPI_CC >> >> * From .../config/ompi_configure_options.m4. >> * OMPI_ENABLE_MEM_DEBUG >> * OMPI_ENABLE_MEM_PROFILE >> * OMPI_ENABLE_DEBUG >> * OMPI_WANT_PRETTY_PRINT_STACKTRACE >> * OMPI_ENABLE_PTY_SUPPORT >> * OMPI_ENABLE_HETEROGENEOUS_SUPPORT >> * OMPI_WANT_HOME_CONFIG_FILES >> >> * From .../opal/include/opal_config_bottom.h. >> * OMPI_HAVE_THREADS >> * OMPI_HAVE_THREAD_SUPPORT >> * OMPI_ALIGNMENT_CHAR >> * OMPI_ALIGNMENT_SHORT >> * OMPI_ALIGNMENT_INT >> * OMPI_ALIGNMENT_LONG >> * OMPI_PATH_MAX >> * OMPI_DISABLE_ENABLE_MEM_DEBUG >> * OMPI_DEBUG_ZERO >> * OMPI_HAVE_BROKEN_QSORT >> >> * Due to changing the values set in the above steps, the .m4 >> configure macro >> files are now named inappropriately. Therefore, update the following >> filenames and change the configure scripts to point to the correct new >> names. >> * .../config/ompi_check_attributes.m4 to >> .../config/opal_check_attributes.m4 >> * .../config/ompi_check_ident.m4 to >> .../config/opal_check_ident.m4 >> * .../config/ompi_check_pthread_pids.m4 to >> .../config/opal_check_pthread_pids.m4 >> * .../config/ompi_check_visibility.m4 to >> .../config/opal_check_visibility.m4 >> * .../config/ompi_config_asm.m4 to >> .../config/opal_config_asm.m4 >> * .../config/ompi_config_threads.m4 to >> .../config/opal_config_threads.m4 >> * .../config/ompi_functions.m4 to >> .../config/opal_functions.m4 >> * .../config/ompi_setup_cc.m4 to >> .../config/opal_setup_cc.m4 >> * .../config/ompi_configure_options.m4 to >> .../config/opal_configure_options.m4 >> >> * Remove unnecessary #include lines from source code files under the >> .../ompi/mca/btl subtree that are not needed. >> * #include "ompi/mca/pml/oml.h" >> >> <koenig-fix1.sh.gz>_______________________________________________ >> devel mailing list >> de...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/devel > > _______________________________________________ > devel mailing list > de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/devel