Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: [OMPI devel] RFC: MCA system revamp phase 1
From: Nathan Hjelm (hjelmn_at_[hidden])
Date: 2013-03-20 15:29:01

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,
- 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
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