What: This is the first of a series of changes intended to update the MCA parameter and frameworks/components systems. The specific changes in this RFC are itemized below.
Where: Just about the entire code base. Why: To support the MPI-3 MPI_T_* tools interface. Also, a cleanup/revamp of the MCA param system has been on to to-do list for a long, long time. Timeout: One week from today at 3pm US Mountain time (see below!). -------- More detail: This RFC contains the following changes: MCA Variable System (aka "MCA param system"): - Replaces the MCA parameter system. A "shim" layer will be provided in the trunk (for a time) and v1.7 (for the duration of the series). - All calls to mca_base_param_* have been changed to mca_base_var_*. - Support for an override variable file "openmpi-mca-params-override.conf" with values that cannot otherwise be reset. - Support for enumerated integer values. For examples, please look at ompi/mca/coll/tuned . - All components have been updated to the new system. - ompi_info output generation has been updated to the new MCA variable system. MCA Framework System: - Formalizes the framework interface. Frameworks can now provide functions for variable registration, open, and close. - Three functions are provided to interface with frameworks: mca_base_framework_register (registers MCA variables for the framework itself), mca_base_framework_open, mca_base_framework_close. - Declare your framework with MCA_BASE_FRAMEWORK_DECLARE (see mca_base_framework.h) - All frameworks have been updated to the new system. - All frameworks MUST conform to the new interface. This may include 1.7 frameworks! The work can be found @ github ("svn-commit" branch): http://github.com/hjelmn/ompi-mca-var Commits of interest: https://github.com/hjelmn/ompi-mca-var/commit/ac96dfaa08f1119ba17e55ad7ef35b0448801033 https://github.com/hjelmn/ompi-mca-var/commit/6450f9a5d5b080528ba8603ca6338d302bca5dc8 https://github.com/hjelmn/ompi-mca-var/commit/73e621b3684b1cbaee56a65b46a855af8ca76808 https://github.com/hjelmn/ompi-mca-var/commit/e44d6aaa4709883c8644a02e8379a56f0b637850 https://github.com/hjelmn/ompi-mca-var/commit/8577ab48be59b418f482ffdc2a2ea719895d8ad6 https://github.com/hjelmn/ompi-mca-var/commit/50a0874fbf4907c2e16c799e013e3499c9458503 https://github.com/hjelmn/ompi-mca-var/commit/be525bef85f89078df164807df09b70daedbb23a A diff compared to the SVN HEAD is attached; it's currently around 74k lines (!). It may take some time to understand the impacts on your components and frameworks. That said, these changes *are* coming and there will be time to fix issues on the trunk before these updates are CMRed to 1.7. So I am setting the timeout for a week from today at 3:00 PM US Mountain Daylight time. *** Because the commit is so invasive, I will be asking for quiet time *** while I commit the changes. Please let me know if there is anything that should be done to improve documentation. I will use git svn dcommit (the master repository is git-svn) to push the 8 commits found on the svn-commit branch. I can break it into more commits if there are any objections. I will then remove the .gitignore file (any any other files not relevant to svn). Questions? Comments? Hate mail? -Nathan Hjelm HPC-3, LANL
mca_revamp.patch.bz2
Description: Binary data