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!).
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
- All components have been updated to the new system.
- ompi_info output generation has been updated to the new MCA
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,
- Declare your framework with MCA_BASE_FRAMEWORK_DECLARE (see
- 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):
Commits of interest:
A diff compared to the SVN HEAD is attached; it's currently around 74k
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?