From 01ed516ad36c9b7860e8fd0139eeac9e6dc26f13 Mon Sep 17 00:00:00 2001 From: Jeff Squyres Date: Sun, 11 Jul 2004 04:35:31 +0000 Subject: [PATCH] - Remove bogus/outdated man page info - Added in MCA type information for all currently existing MCA component frameworks This commit was SVN r1622. --- src/tools/ompi_info/modules.cc | 56 +++++++-- src/tools/ompi_info/ompi_info.cc | 210 +++---------------------------- 2 files changed, 66 insertions(+), 200 deletions(-) diff --git a/src/tools/ompi_info/modules.cc b/src/tools/ompi_info/modules.cc index 73d315b631..d19347f1a6 100644 --- a/src/tools/ompi_info/modules.cc +++ b/src/tools/ompi_info/modules.cc @@ -11,6 +11,10 @@ #include #include "mca/base/base.h" +#include "mca/allocator/allocator.h" +#include "mca/allocator/base/base.h" +#include "mca/mpool/mpool.h" +#include "mca/mpool/base/base.h" #include "mca/pcm/pcm.h" #include "mca/pcm/base/base.h" #include "mca/oob/oob.h" @@ -21,6 +25,8 @@ #include "mca/ptl/base/base.h" #include "mca/coll/coll.h" #include "mca/coll/base/base.h" +#include "mca/ns/ns.h" +#include "mca/ns/base/base.h" #include "tools/ompi_info/ompi_info.h" using namespace std; @@ -70,22 +76,33 @@ void ompi_info::open_modules() } } - // Open all modules + // Find / open all components mca_base_open(); module_map["base"] = NULL; - mca_pcm_base_open(); - module_map["pcm"] = &mca_pcm_base_modules_available; + mca_allocator_base_open(); + module_map["allocator"] = &mca_allocator_base_components; - // oob module opening not implemented yet - mca_oob_base_open(); - module_map["oob"] = &mca_oob_base_components; - - // coll module opening not implemented yet mca_coll_base_open(); module_map["coll"] = &mca_coll_base_components_opened; +#if 0 + // common component framework not implemented yet + mca_common_base_open(); + module_map["common"] = &mca_common_base_components_opened; +#else + module_map["common"] = NULL; +#endif + +#if 0 + // waiting for gpr to be implemented + mca_gpr_base_open(); + module_map["gpr"] = &mca_ns_base_components_available; +#else + module_map["gpr"] = NULL; +#endif + #if 0 // io module opening not implemented yet mca_io_base_open(); @@ -94,6 +111,12 @@ void ompi_info::open_modules() module_map["io"] = NULL; #endif + mca_ns_base_open(); + module_map["ns"] = &mca_ns_base_components_available; + + mca_mpool_base_open(); + module_map["mpool"] = &mca_mpool_base_components; + #if 0 // one module opening not implemented yet mca_one_base_open(); @@ -102,11 +125,23 @@ void ompi_info::open_modules() module_map["one"] = NULL; #endif - // pml module opening not implemented yet + mca_oob_base_open(); + module_map["oob"] = &mca_oob_base_components; + +#if 0 + // op component framework not yet implemented + mca_op_base_open(); + module_map["op"] = &mca_oob_base_components; +#else + module_map["op"] = NULL; +#endif + + mca_pcm_base_open(); + module_map["pcm"] = &mca_pcm_base_modules_available; + mca_pml_base_open(); module_map["pml"] = &mca_pml_base_modules_available; - // ptl module opening not implemented yet mca_ptl_base_open(); module_map["ptl"] = &mca_ptl_base_modules_available; @@ -129,6 +164,7 @@ void ompi_info::close_modules() if (opened_modules) { mca_pcm_base_close(); mca_oob_base_close(); + mca_ns_base_close(); mca_coll_base_close(); mca_pml_base_close(); mca_ptl_base_close(); diff --git a/src/tools/ompi_info/ompi_info.cc b/src/tools/ompi_info/ompi_info.cc index 348cdd89ee..d0e0ad5a5b 100644 --- a/src/tools/ompi_info/ompi_info.cc +++ b/src/tools/ompi_info/ompi_info.cc @@ -24,189 +24,6 @@ #include "mca/base/base.h" #include "tools/ompi_info/ompi_info.h" - -/* - * This will ultimately end up being the manual for ompi_info - * - * ompi_info - Display configuration information about OMPI/MPI - * SYNTAX - * ompi_info [-arch] [-config] [-help|-h] [-param ] - * [-parsable|-pretty] [-path ] [-version ] - * OPTIONS - * -all Show all configuration information - * -arch Show architecture that OMPI was configured for - * -config Show some information about OMPI configuration - * -help Show help message - * -param Show MCA parameter(s) for a given MCA type and module - * -parsable Show output in an easily parsable format - * -path Print a given configuration path - * -pretty Show output in a prettyprint format (default) - * -version Print some or part of a version number of a given item - * DESCRIPTION - * The ompi_info command is used to display information about a OMPI/MPI - * installation. Particularly with the MCA run-time module selection sys- - * tem, the ompi_info command can be useful to scripts and resource managers - * to determine the capabilities of the installed OMPI/MPI in order to pass - * run-time parameters to MPI programs. - * Output can be displayed in a "pretty" format (i.e., suitable for human - * reading) and also in a parsable format (i.e., suitable for easy parsing - * by scripts or other automated mechanisms). There are no other OMPI API - * functions to retrieve this data (in any language); the ompi_info command - * is the best mechanism to obtain any configuration information about - * OMPI/MPI. The parsable output was designed such that common utilities - * such as grep, awk, cut, and sed can easily be used to extract relevant - * information. - * Running ompi_info with no arguments will display a subset of configura- - * tion parameters in the "pretty" format (see the EXAMPLES section, - * below). Several command line options are available to limit exactly - * which information is displayed. These options, when used in conjunc- - * tion with the parsable output, can provide automated mechanisms spe- - * cific information about the capabilities of OMPI/MPI. - * GENERAL PARAMETERS - * The -pretty and -parsable switches are used to select whether to dis- - * play the output in "pretty" or machine-parsable format, respectively. - * If neither is specified, -pretty is the default. - * The -arch switch will display the architecture that OMPI/MPI was config- - * ured and compiled on. - * The -config switch will display a set of configuration information - * about the MPI capabilities of OMPI/MPI, such as whether there are C, - * C++, and Fortran MPI bindings available, whether there is MPI profiling - * support for C, C++, and Fortran, whether ROMIO support is available, - * whether IMPI support is available, whether debugging support is avail- - * able (mostly for OMPI/MPI maintainers), and whether OMPI/MPI is "purify - * clean" (meaning that it is suitable for use with memory checking debug- - * gers). Most of these are options to the OMPI/MPI configure script, and - * are configure/compile-time selections that cannot be changed once OMPI - * has been installed. While there is no fine-grained control to individ- - * ually request each of these pieces of information, using -config in - * conjunction with -parsable and commands such as grep can return any - * individual piece of information. - * PARAM PARAMETERS - * The -param switch can be used to show available MCA parameters and - * their default values. The type and module arguments can be used to - * specify a particular MCA type and/or module, or use the special keyword - * "all" to indicate all available MCA types/modules (respectively). - * Available MCA types are: - * all Show all MCA types - * base Intrinsic OMPI/MPI parameters - * boot Boot modules (e.g., ompi_boot) - * coll MPI collectives - * cr Checkpoint / restart - * RPI MPI point-to-point. - * The names of the modules that are available are dependant upon which - * modules are available for any given type. See EXAMPLES, below, for - * example usage. - * PATH PARAMETERS - * The -path switch returns various paths that were compiled into OMPI/MPI. - * These were all decided when OMPI was configured, and cannot be changed - * at run-time. However, knowing the location of these directories can be - * useful in order to find OMPI data files, binaries, include files, etc. - * The -path switch takes a parameter: item. Pomcable values for item - * are: - * prefix Display the prefix directory for OMPI/MPI - * bindir Display the directory where the OMPI/MPI executables were - * installed - * libdir Display the directory where the OMPI/MPI libraries were - * installed - * incdir Display the directory where the OMPI/MPI include files were - * installed - * pkglibdir Display the directory where the OMPI/MPI dynamic libraries - * were installed - * sysconfdir Display the directory where the OMPI/MPI help and configura- - * tion files were installed - * Note that although OMPI's GNU configure script defaults to certain val- - * ues for all of these directories based on the prefix (e.g., bindir is - * typically $prefix/bin), they can all be overriden by command line - * switches to configure, and should therefore never be assumed. Use ompi- - * info to determine what values were selected at configure time. - * VERSION PARAMETERS - * Since each MCA module in OMPI/MPI is an independant entity in itself, it - * may have an entirely different version number than OMPI/MPI itself. - * Indeed, each MCA module has three version numbers: the version of the - * base MCA API that it supports, the version of the component type API - * it it supports, and its own version number. Most users will only - * care about the last one (the module's own version number). - * The -path switch takes two parameters: item and scope. - * The item can be the main OMPI version itself, any of the MCA types, or a - * specific MCA module. There are currently four kinds of MCA modules - * that can be queried: boot, coll, pml, and cr. Hence, the version num- - * bers that can be obtained from the -version switch are: - * ompi The version of OMPI/MPI - * boot The three versions of each boot MCA module - * boot:name The three versions of a specific boot MCA module - * coll The three versions of each coll MCA module - * coll:name The three versions of a specific coll MCA module - * pml The three versions of each pml MCA module - * pml:name The three versions of a specific pml MCA module - * cr The three versions of each cr MCA module - * cr:name The three versions of a specific cr MCA module - * The scope argument describes what part of the version number to dis- - * play. This allows either the full version number to be displayed, or - * any specific individual component of the version number. Valid values - * for scope are: - * full Display the full version number (i.e., all components). A - * sequence of rules are used to run all the components - * together into a single string. Generally: major and minor - * are always displayed, but other components are only dis- - * played if they are not zero. - * major Display the major version number - * minor Display the minor version number - * release Display the release version number - * alpha Display the alpha version number. In the full scope, if - * nonzero, this number will be preceeded by "a". - * beta Display the beta version number. In the full scope, if - * nonzero, this number will be preceeded by "b". - * cvs Display whether OMPI was installed from a CVS checkout. In - * pretty mode, this will be the string "cvs" if true, or - * blank if false. In parsable mode, this will be 1 if true, - * 0 if false. - * EXAMPLES - * ompi_info - * With no parameters, ompi_info displays a default set of information - * about the OMPI/MPI installation. This information includes: - * - Version of OMPI/MPI - * - Installation prefix directory - * - Architecture that OMPI/MPI is installed for - * - User who configured OMPI/MPI - * - Time/datestamp when OMPI/MPI was configured - * - Host that OMPI/MPI was configured on - * - Whether MPI bindings are provided for C, C++, Fortran - * - Whether MPI profiling is available for C, C++, Fortran - * - Whether ROMIO support is included - * - Whether IMPI support is included - * - Whether debug support is included (mainly for OMPI/MPI maintainers) - * - Whether OMPI/MPI is "purify clean" (suitable for memory-checking - * debuggers) - * - List all boot, coll, and pml MCA modules that are available, and - * their corresponding versions - * ompi_info -parsable - * Display the same default set of information but in a machine-read- - * able format. - * ompi_info -all - * Display all information that is available to ompi_info. - * ompi_info -param all all - * Show all MCA parameters (and their corresponding default values) - * for all available MCA types and modules. - * ompi_info -param pml all - * Show all MCA parameters (and their corresponding default values) - * for all pml MCA modules. - * ompi_info -param pml tcp - * Show all MCA parameters (and their corresponding default values) - * for the tcp pml MCA module. - * ompi_info -param pml tcp -parsable - * Show all MCA parameters (and their corresponding default values) - * for the tcp pml MCA module in a machine-readable format. - * ompi_info -path bindir -path sysconfdir -parsable - * Display the directories where the OMPI/MPI executables and help/con- - * figuration files were installed in a machine-readable format. - * ompi_info -version ompi full -parsable - * Display the full version of OMPI/MPI in a machine-readable format. - * ompi_info -version pml:tcp full - * Show the full version of the TCP RPI MCA module. - * SEE ALSO - * mpirun(1), ompi_boot(1), ompi_wipe(1) - */ - using namespace std; using namespace ompi_info; @@ -300,13 +117,17 @@ int main(int argc, char *argv[]) ompi_info::mca_types.push_back("base"); - ompi_info::mca_types.push_back("pcm"); - ompi_info::mca_types.push_back("oob"); - ompi_info::mca_types.push_back("registry"); - + ompi_info::mca_types.push_back("allocator"); ompi_info::mca_types.push_back("coll"); + ompi_info::mca_types.push_back("common"); + ompi_info::mca_types.push_back("gpr"); ompi_info::mca_types.push_back("io"); + ompi_info::mca_types.push_back("mpool"); + ompi_info::mca_types.push_back("ns"); ompi_info::mca_types.push_back("one"); + ompi_info::mca_types.push_back("oob"); + ompi_info::mca_types.push_back("op"); + ompi_info::mca_types.push_back("pcm"); ompi_info::mca_types.push_back("pml"); ompi_info::mca_types.push_back("ptl"); ompi_info::mca_types.push_back("topo"); @@ -349,12 +170,21 @@ int main(int argc, char *argv[]) ompi_info::do_arch(cmd_line); ompi_info::do_config(false); ompi_info::open_modules(); - ompi_info::show_module_version("oob", module_all, ver_full, type_all); - ompi_info::show_module_version("pcm", module_all, ver_full, type_all); - ompi_info::show_module_version("registry", module_all, ver_full, type_all); + ompi_info::show_module_version("base", module_all, ver_full, type_all); + ompi_info::show_module_version("allocator", module_all, ver_full, type_all); ompi_info::show_module_version("coll", module_all, ver_full, type_all); + ompi_info::show_module_version("common", module_all, ver_full, type_all); + ompi_info::show_module_version("gpr", module_all, ver_full, type_all); + ompi_info::show_module_version("io", module_all, ver_full, type_all); + ompi_info::show_module_version("mpool", module_all, ver_full, type_all); + ompi_info::show_module_version("ns", module_all, ver_full, type_all); + ompi_info::show_module_version("one", module_all, ver_full, type_all); + ompi_info::show_module_version("oob", module_all, ver_full, type_all); + ompi_info::show_module_version("op", module_all, ver_full, type_all); + ompi_info::show_module_version("pcm", module_all, ver_full, type_all); ompi_info::show_module_version("pml", module_all, ver_full, type_all); ompi_info::show_module_version("ptl", module_all, ver_full, type_all); + ompi_info::show_module_version("topo", module_all, ver_full, type_all); } // All done