1
1
- mca_base_param_file_prefix
     (Default: NULL)
     This is the fullname of the "-am" mpirun option. Used to specify a ':'
     separated list of AMCA parameter set files.
  - mca_base_param_file_path
     (Default: $SYSCONFDIR/amca-param-sets/:$CWD)
     The path to search for AMCA files with relative paths. A warning will be
     printed if the AMCA file cannot be found.

* Added a new function "mca_base_param_recache_files" the re-reads the file
configurations. This is used internally to help bootstrap the MCA system.

* Added a new orterun/mpirun command line option '-am' that aliases for the
mca_base_param_file_prefix MCA parameter

* Exposed the opal_path_access function as it is generally useful in other
places in the code.

* New function "opal_cmd_line_make_opt_mca" which will allow you to append a
new command line option with MCA parameter identifiers to set at the same
time. Previously this could only be done at command line declaration time.

* Added a new directory under the $pkgdatadir named "amca-param-sets" where all
the 'shipped with' Open MPI AMCA parameter sets are placed. This is the first
place to search for AMCA sets with relative paths.

* An example.conf AMCA parameter set file is located in
contrib/amca-param-sets/.

* Jeff Squyres contributed an OpenIB AMCA set for benchmarking.

Note: You will need to autogen with this commit as it adds a configure param.
  Sorry :(

This commit was SVN r13867.
Этот коммит содержится в:
Josh Hursey 2007-03-01 13:39:20 +00:00
родитель 74555cda51
Коммит 0404444dbe
18 изменённых файлов: 467 добавлений и 39 удалений

Просмотреть файл

@ -1114,6 +1114,11 @@ AC_SUBST(CXXCPPFLAGS)
AC_SUBST(FFLAGS)
AC_SUBST(FCFLAGS)
#
# Aggregate MCA parameters directory
#
AC_SUBST([AMCA_PARAM_SETS_DIR], ['$(pkgdatadir)/amca-param-sets'])
############################################################################
# final wrapper compiler config
############################################################################

Просмотреть файл

@ -1,5 +1,5 @@
#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
@ -16,7 +16,8 @@
# $HEADER$
#
amca_paramdir = $(AMCA_PARAM_SETS_DIR)
dist_amca_param_DATA = amca-param-sets/example.conf
EXTRA_DIST = \
dist/make_dist_tarball \

5
contrib/amca-param-sets/example.conf Обычный файл
Просмотреть файл

@ -0,0 +1,5 @@
#
# This is an example file illustrating how to setup an Aggregate MCA parameters
# file.
#
#

Просмотреть файл

@ -9,6 +9,7 @@
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2007 Cisco, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -22,6 +23,9 @@ AM_CPPFLAGS = $(btl_openib_CPPFLAGS) -DPKGDATADIR=\"$(pkgdatadir)\"
AM_LFLAGS = -Pbtl_openib_ini_yy
LEX_OUTPUT_ROOT = lex.btl_openib_ini_yy
amca_paramdir = $(AMCA_PARAM_SETS_DIR)
dist_amca_param_DATA = btl-openib-benchmark
dist_pkgdata_DATA = \
help-mpi-btl-openib.txt \
mca-btl-openib-hca-params.ini

19
ompi/mca/btl/openib/btl-openib-benchmark Обычный файл
Просмотреть файл

@ -0,0 +1,19 @@
#
# These values are suitable for benchmarking with the openib and sm
# btls with a small number of MPI processes. If you're only going to
# use one process per node, remove "sm". These values are *NOT*
# scalable to large numbers of processes!
#
btl=openib,self,sm
btl_openib_max_btls=20
btl_openib_rd_num=128
btl_openib_rd_low=75
btl_openib_rd_win=50
btl_openib_max_eager_rdma=32
mpool_base_use_mem_hooks=1
mpi_leave_pinned=1
#
# Note that we are not limiting the max free list size, so for netpipe
# (for example), this is no problem. But we may want to explore the
# parameter space for other popular benchmarks.
#

Просмотреть файл

@ -18,6 +18,8 @@
# Use the top-level Makefile.options
amca_paramdir = $(AMCA_PARAM_SETS_DIR)
dist_amca_param_DATA = netpipe-btl-template.txt
sources = \

Просмотреть файл

@ -0,0 +1,5 @@
#
# To use:
# -am sample-btl-template.conf
#
btl_template_verbose=42

Просмотреть файл

@ -23,3 +23,6 @@ WARNING: A user-supplied value attempted to override the read-only MCA
parameter named "%s".
The user-supplied value was ignored.
[missing-param-file]
Process %d Unable to locate the parameter file "%s" in the following search path:
%s

Просмотреть файл

@ -45,7 +45,8 @@ static void add_to_env(char **params, char **values, char ***env);
*/
int mca_base_cmd_line_setup(opal_cmd_line_t *cmd)
{
int ret;
int ret = OPAL_SUCCESS;
ret = opal_cmd_line_make_opt3(cmd, '\0', "mca", "mca", 2,
"Pass context-specific MCA parameters; they are considered global if --gmca is not used and only one context is specified (arg0 is the parameter name; arg1 is the parameter value)");
if (OPAL_SUCCESS != ret) {
@ -54,6 +55,23 @@ int mca_base_cmd_line_setup(opal_cmd_line_t *cmd)
ret = opal_cmd_line_make_opt3(cmd, '\0', "gmca", "gmca", 2,
"Pass global MCA parameters that are applicable to all contexts (arg0 is the parameter name; arg1 is the parameter value)");
if (OPAL_SUCCESS != ret) {
return ret;
}
{
opal_cmd_line_init_t entry =
{"mca", "base", "param_file_prefix", '\0', "am", NULL, 1,
NULL, OPAL_CMD_LINE_TYPE_STRING,
"Aggregate MCA parameter set file list"
};
ret = opal_cmd_line_make_opt_mca(cmd, entry);
if (OPAL_SUCCESS != ret) {
return ret;
}
}
return ret;
}

Просмотреть файл

@ -21,9 +21,16 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
#include "opal/install_dirs.h"
#include "opal/util/os_path.h"
#include "opal/util/path.h"
#include "opal/class/opal_value_array.h"
#include "opal/util/show_help.h"
#include "opal/class/opal_hash_table.h"
@ -40,6 +47,16 @@
#include "opal/constants.h"
#include "opal/util/output.h"
/*
* A boolean to temporarily skip over the Aggregate MCA Paramater Set
* reading.
* We need to do this as a global variable since all other entry
* functions to the _param_ funcitons make sure that the init function
* has been called. By calling init the system will pick up the
* wrong files
*/
bool opal_mca_base_param_use_amca_sets = true;
/*
* Public variables
*
@ -55,6 +72,7 @@ opal_list_t mca_base_param_file_values;
static opal_value_array_t mca_base_params;
static const char *mca_prefix = "OMPI_MCA_";
static char *home = NULL;
static char *cwd = NULL;
static bool initialized = false;
@ -64,6 +82,7 @@ static bool initialized = false;
#if defined(__WINDOWS__)
static int read_keys_from_registry(HKEY hKey, char *sub_key, char *current_key);
#endif /* defined(__WINDOWS__) */
static int fixup_files(char **file_list, char * path, bool rel_path_search);
static int read_files(char *file_list);
static int param_register(const char *type_name,
const char *component_name,
@ -117,9 +136,6 @@ OBJ_CLASS_INSTANCE(mca_base_param_info_t, opal_list_item_t,
*/
int mca_base_param_init(void)
{
int id;
char *files, *new_files = NULL;
if (!initialized) {
/* Init the value array for the param storage */
@ -135,25 +151,82 @@ int mca_base_param_init(void)
initialized = true;
mca_base_param_recache_files(false);
}
return OPAL_SUCCESS;
}
int mca_base_param_recache_files(bool rel_path_search)
{
int id;
char *files, *new_files = NULL, *new_agg_files = NULL;
char * new_agg_path = NULL, *agg_default_path = NULL;
/* We may need this later */
#if !defined(__WINDOWS__)
home = getenv("HOME");
asprintf(&files,
"%s"OPAL_PATH_SEP".openmpi"OPAL_PATH_SEP"mca-params.conf:%s"OPAL_PATH_SEP"openmpi-mca-params.conf",
home, OPAL_SYSCONFDIR);
#else
home = getenv("USERPROFILE");
asprintf(&files,
"%s"OPAL_PATH_SEP".openmpi"OPAL_PATH_SEP"mca-params.conf;%s"OPAL_PATH_SEP"openmpi-mca-params.conf",
home, OPAL_SYSCONFDIR);
#endif /* !defined(__WINDOWS__) */
cwd = (char *) malloc(sizeof(char) * MAXPATHLEN);
if( NULL == (cwd = getcwd(cwd, MAXPATHLEN) )) {
opal_output(0, "Error: Unable to get the current working directory\n");
cwd = strdup(".");
}
asprintf(&files,
"%s"OPAL_PATH_SEP".openmpi"OPAL_PATH_SEP"mca-params.conf%c%s"OPAL_PATH_SEP"openmpi-mca-params.conf",
home, OPAL_ENV_SEP, OPAL_SYSCONFDIR);
/* Initialize a parameter that says where MCA param files can
be found */
id = mca_base_param_reg_string_name("mca", "param_files",
"Path for MCA configuration files containing default parameter values",
false, false, files, &new_files);
/* Aggregate MCA parameter files
* A prefix search path to look up aggregate MCA parameter file
* requests that do not specify an absolute path
*/
id = mca_base_param_reg_string_name("mca", "base_param_file_prefix",
"Aggregate MCA parameter file sets",
false, false, NULL, &new_agg_files);
asprintf(&agg_default_path,
"%s"OPAL_PATH_SEP"amca-param-sets%c%s",
OPAL_PKGDATADIR, OPAL_ENV_SEP, cwd);
id = mca_base_param_reg_string_name("mca", "base_param_file_path",
"Aggregate MCA parameter Search path",
false, false, agg_default_path, &new_agg_path);
if( opal_mca_base_param_use_amca_sets && NULL != new_agg_files ) {
char *tmp_str = NULL;
/*
* Resolve all relative paths.
* the file list returned will contain only absolute paths
*/
if( OPAL_SUCCESS != fixup_files(&new_agg_files, new_agg_path, rel_path_search) ) {
#if 0
/* JJH We need to die! */
abort();
#else
;
#endif
}
else {
/* Prepend the files to the search list */
asprintf(&tmp_str, "%s%c%s", new_agg_files, OPAL_ENV_SEP, new_files);
free(new_files);
new_files = strdup(tmp_str);
free(tmp_str);
}
}
read_files(new_files);
#if defined(__WINDOWS__)
@ -162,6 +235,8 @@ int mca_base_param_init(void)
free(files);
free(new_files);
if( NULL != new_agg_files ) {
free(new_agg_files);
}
return OPAL_SUCCESS;
@ -786,6 +861,93 @@ int mca_base_param_finalize(void)
/*************************************************************************/
static int fixup_files(char **file_list, char * path, bool rel_path_search) {
int exit_status = OPAL_SUCCESS;
char **files = NULL;
char **search_path = NULL;
char * tmp_file = NULL;
char **argv = NULL;
int mode = R_OK; /* The file exists, and we can read it */
int count, i, argc = 0;
search_path = opal_argv_split(path, OPAL_ENV_SEP);
files = opal_argv_split(*file_list, OPAL_ENV_SEP);
count = opal_argv_count(files);
/* Read in reverse order, so we can preserve the original ordering */
for (i = 0 ; i < count; ++i) {
/* Absolute paths preserved */
if ( opal_path_is_absolute(files[i]) ) {
if( NULL == opal_path_access(files[i], NULL, mode) ) {
opal_show_help("help-mca-param.txt", "missing-param-file",
true, getpid(), files[i], path);
exit_status = OPAL_ERROR;
goto cleanup;
}
else {
opal_argv_append(&argc, &argv, files[i]);
}
}
/* Resolve all relative paths:
* - If filename contains a "/" (e.g., "./foo" or "foo/bar")
* - look for it relative to cwd
* - if exists, use it
* - ow warn/error
*/
else if (!rel_path_search && NULL != strchr(files[i], OPAL_PATH_SEP[0]) ) {
if( NULL == (tmp_file = opal_path_access(files[i], cwd, mode) ) ) {
opal_show_help("help-mca-param.txt", "missing-param-file",
true, getpid(), files[i], cwd);
exit_status = OPAL_ERROR;
goto cleanup;
}
else {
opal_argv_append(&argc, &argv, tmp_file);
}
}
/* Resolve all relative paths:
* - Use path resolution
* - if found and readable, use it
* - otherwise, warn/error
*/
else {
if( NULL != (tmp_file = opal_path_find(files[i], search_path, mode, NULL)) ) {
opal_argv_append(&argc, &argv, tmp_file);
free(tmp_file);
tmp_file = NULL;
}
else {
opal_show_help("help-mca-param.txt", "missing-param-file",
true, getpid(), files[i], path);
exit_status = OPAL_ERROR;
goto cleanup;
}
}
}
free(*file_list);
*file_list = opal_argv_join(argv, OPAL_ENV_SEP);
cleanup:
if( NULL != files ) {
opal_argv_free(files);
files = NULL;
}
if( NULL != argv ) {
opal_argv_free(argv);
argv = NULL;
}
if( NULL != search_path ) {
opal_argv_free(search_path);
search_path = NULL;
}
if( NULL != tmp_file ) {
free(tmp_file);
tmp_file = NULL;
}
return exit_status;
}
static int read_files(char *file_list)
{

Просмотреть файл

@ -119,6 +119,14 @@ typedef struct mca_base_param_info_t mca_base_param_info_t;
#if defined(c_plusplus) || defined(__cplusplus)
extern "C" {
#endif
/*
* Whether or not to temporarily skip over the Aggregate MCA Paramater Set
* reading. This is useful when we know the MCA parameters it will use
* are incorrect which occurs with some support tools.
*/
OPAL_DECLSPEC extern bool opal_mca_base_param_use_amca_sets;
/**
* Make a real object for the info
*/
@ -135,6 +143,16 @@ extern "C" {
*/
OPAL_DECLSPEC int mca_base_param_init(void);
/**
* Recache the MCA param files
*
* @param rel_path_search If a relative path is found, search the path even
* if the relative path in pointing to the current working directory.
* @retval OPAL_SUCCESS
*
*/
OPAL_DECLSPEC int mca_base_param_recache_files(bool rel_path_search);
/**
* Register an integer MCA parameter.
*

Просмотреть файл

@ -178,6 +178,26 @@ int opal_cmd_line_create(opal_cmd_line_t *cmd,
return OPAL_SUCCESS;
}
/*
* Append a command line entry to the previously constructed command line
*/
int opal_cmd_line_make_opt_mca(opal_cmd_line_t *cmd,
opal_cmd_line_init_t entry)
{
int ret;
/* Ensure we got an entry */
if ('\0' == entry.ocl_cmd_short_name &&
NULL == entry.ocl_cmd_single_dash_name &&
NULL == entry.ocl_cmd_long_name) {
return OPAL_SUCCESS;
}
ret = make_opt(cmd, &entry);
return OPAL_SUCCESS;
}
/*
* Create a command line option, --long-name and/or -s (short name).

Просмотреть файл

@ -277,6 +277,18 @@ extern "C" {
OPAL_DECLSPEC int opal_cmd_line_create(opal_cmd_line_t *cmd,
opal_cmd_line_init_t *table);
/**
* Create a command line option.
*
* @param cmd OPAL command line handle.
* @param entry Command line entry to add to the command line.
*
* @retval OPAL_SUCCESS Upon success.
*
*/
OPAL_DECLSPEC int opal_cmd_line_make_opt_mca(opal_cmd_line_t *cmd,
opal_cmd_line_init_t entry);
/**
* \deprecated
*

Просмотреть файл

@ -29,7 +29,6 @@
#include "opal/util/output.h"
static void path_env_load(char *path, int *pargc, char ***pargv);
static char *path_access(char *fname, char *path, int mode);
static char *list_env_get(char *var, char **list);
bool opal_path_is_absolute( const char *path )
@ -60,7 +59,7 @@ char *opal_path_find(char *fname, char **pathv, int mode, char **envv)
/* If absolute path is given, return it without searching. */
if( opal_path_is_absolute(fname) ) {
return path_access(fname, "", mode);
return opal_path_access(fname, "", mode);
}
/* Initialize. */
@ -85,7 +84,7 @@ char *opal_path_find(char *fname, char **pathv, int mode, char **envv)
}
if (NULL != env) {
if (!delimit) {
fullpath = path_access(fname, env, mode);
fullpath = opal_path_access(fname, env, mode);
} else {
pfix = (char*) malloc(strlen(env) + strlen(delimit) + 1);
if (NULL == pfix) {
@ -93,13 +92,13 @@ char *opal_path_find(char *fname, char **pathv, int mode, char **envv)
}
strcpy(pfix, env);
strcat(pfix, delimit);
fullpath = path_access(fname, pfix, mode);
fullpath = opal_path_access(fname, pfix, mode);
free(pfix);
}
}
}
else {
fullpath = path_access(fname, pathv[i], mode);
fullpath = opal_path_access(fname, pathv[i], mode);
}
i++;
}
@ -170,12 +169,17 @@ char *opal_path_findv(char *fname, int mode, char **envv, char *wrkdir)
* -Full pathname of located file Success
* -NULL Failure
*/
static char *path_access(char *fname, char *path, int mode)
char *opal_path_access(char *fname, char *path, int mode)
{
char *fullpath;
char *fullpath = NULL;
/* Allocate space for the full pathname. */
if( NULL == path ) {
fullpath = opal_os_path( false, fname, NULL );
}
else {
fullpath = opal_os_path( false, path, fname, NULL );
}
if( NULL == fullpath )
return NULL;

Просмотреть файл

@ -83,6 +83,19 @@ extern "C" {
*/
OPAL_DECLSPEC bool opal_path_is_absolute( const char *path );
/**
* Forms a complete pathname and checks it for existance and
* permissions
*
* @param fname File name
* @param path Path prefix, if NULL then fname is an absolute path
* @param mode Target permissions which must be satisfied (see access(2))
*
* @retval NULL Failure
* @retval Full pathname of the located file on Success
*/
OPAL_DECLSPEC char *opal_path_access(char *fname, char *path, int mode);
#if defined(c_plusplus) || defined(__cplusplus)
}
#endif

Просмотреть файл

@ -712,6 +712,52 @@ int orte_pls_rsh_launch(orte_jobid_t jobid)
free(uri);
free(param);
/* pass along the Aggregate MCA Parameter Sets */
{
int loc_id;
char * amca_param_path = NULL;
char * amca_param_prefix = NULL;
/* Add the 'prefix' param */
loc_id = mca_base_param_find("mca", NULL, "base_param_file_prefix");
mca_base_param_lookup_string(loc_id, &amca_param_prefix);
if( NULL != amca_param_prefix ) {
/* Could also use the short version '-am'
* but being verbose has some value
*/
opal_argv_append(&argc, &argv, "-mca");
opal_argv_append(&argc, &argv, "mca_base_param_file_prefix");
opal_argv_append(&argc, &argv, amca_param_prefix);
}
/* Add the 'path' param */
loc_id = mca_base_param_find("mca", NULL, "base_param_file_path");
mca_base_param_lookup_string(loc_id, &amca_param_path);
if( NULL != amca_param_path ) {
opal_argv_append(&argc, &argv, "-mca");
opal_argv_append(&argc, &argv, "mca_base_param_file_path");
opal_argv_append(&argc, &argv, amca_param_path);
}
/* Add the ORTED hint 'path' param */
loc_id = mca_base_param_find("mca", NULL, "base_param_file_path_orted");
mca_base_param_lookup_string(loc_id, &amca_param_path);
if( NULL != amca_param_path ) {
opal_argv_append(&argc, &argv, "-mca");
opal_argv_append(&argc, &argv, "mca_base_param_file_path_orted");
opal_argv_append(&argc, &argv, amca_param_path);
}
if( NULL != amca_param_path ) {
free(amca_param_path);
amca_param_path = NULL;
}
if( NULL != amca_param_prefix ) {
free(amca_param_prefix);
amca_param_prefix = NULL;
}
}
local_exec_index_end = argc;
if (!(remote_csh || remote_sh)) {
opal_argv_append(&argc, &argv, ")");

Просмотреть файл

@ -200,6 +200,7 @@ int main(int argc, char *argv[])
char *segment;
int i;
orte_buffer_t answer;
char * orted_amca_param_path = NULL;
/* initialize the globals */
memset(&orted_globals, 0, sizeof(orted_globals_t));
@ -207,12 +208,17 @@ int main(int argc, char *argv[])
/* save the environment for use when launching application processes */
orted_globals.saved_environ = opal_argv_copy(environ);
/* setup mca param system */
/* setup mca param system
* Do not parse the Aggregate Parameter Sets in this pass.
* we will get to them in a moment
*/
opal_mca_base_param_use_amca_sets = false;
mca_base_param_init();
/* setup to check common command line options that just report and die */
cmd_line = OBJ_NEW(opal_cmd_line_t);
opal_cmd_line_create(cmd_line, orte_cmd_line_opts);
mca_base_cmd_line_setup(cmd_line);
if (ORTE_SUCCESS != (ret = opal_cmd_line_parse(cmd_line, false,
argc, argv))) {
char *args = NULL;
@ -223,6 +229,64 @@ int main(int argc, char *argv[])
return ret;
}
/*
* Since this process can now handle MCA/GMCA parameters, make sure to
* process them.
*/
mca_base_cmd_line_process_args(cmd_line, &environ, &environ);
/*
* orterun may have given us an additional path to use when looking for
* Aggregate MCA parameter sets. Look it up, and prepend it to the
* search list.
*/
mca_base_param_reg_string_name("mca", "base_param_file_path_orted",
"[INTERNAL] Current working directory from MPIRUN to help in finding Aggregate MCA parameters",
true, false,
NULL,
&orted_amca_param_path);
if( NULL != orted_amca_param_path ) {
int loc_id;
char * amca_param_path = NULL;
char * tmp_str = NULL;
/* Lookup the current Aggregate MCA Parameter set path */
loc_id = mca_base_param_find("mca", NULL, "base_param_file_path");
mca_base_param_lookup_string(loc_id, &amca_param_path);
asprintf(&tmp_str, "%s%c%s", orted_amca_param_path, OPAL_ENV_SEP, amca_param_path);
mca_base_param_set_string(loc_id, tmp_str);
loc_id = mca_base_param_find("mca", NULL, "base_param_file_path");
mca_base_param_lookup_string(loc_id, &amca_param_path);
if( NULL != amca_param_path) {
free(amca_param_path);
amca_param_path = NULL;
}
if( NULL != orted_amca_param_path) {
free(orted_amca_param_path);
orted_amca_param_path = NULL;
}
if( NULL != tmp_str) {
free(tmp_str);
tmp_str = NULL;
}
/*
* Need to recache the files since the user might have given us
* Aggregate MCA parameters that need to be reinitalized.
*/
opal_mca_base_param_use_amca_sets = true;
mca_base_param_recache_files(true);
}
else {
opal_mca_base_param_use_amca_sets = true;
mca_base_param_recache_files(false);
}
/* check for help request */
if (orted_globals.help) {
char *args = NULL;

Просмотреть файл

@ -317,9 +317,13 @@ int orterun(int argc, char *argv[])
opal_list_t attributes;
opal_list_item_t *item;
uint8_t flow;
char * cwd = NULL;
/* Setup MCA params */
/* Setup MCA params
* Do not parse the Aggregate Parameter Sets in this pass.
* we will get to them in a moment
*/
opal_mca_base_param_use_amca_sets = true;
mca_base_param_init();
orte_register_params(false);
@ -335,6 +339,29 @@ int orterun(int argc, char *argv[])
parse_locals(argc, argv);
/*
* Get the current working directory
*/
cwd = (char *) malloc(sizeof(char) * MAXPATHLEN);
if( NULL == (cwd = getcwd(cwd, MAXPATHLEN) )) {
cwd = strdup("");
}
/*
* Need to recache the files since the user might have given us
* Aggregate MCA parameters that need to be reinitalized.
* In addition we need to let the orted know about the current working
* directory so that it has another place to look for any Aggregate MCA
* parameter set files
*/
mca_base_param_reg_string_name("mca", "base_param_file_path_orted",
"[INTERNAL] Current working directory from MPIRUN to help in finding Aggregate MCA parameters",
true, false,
cwd,
&cwd);
opal_mca_base_param_use_amca_sets = true;
mca_base_param_recache_files(false);
/* Convert the list of apps to an array of orte_app_context_t
pointers */
array_size = orte_pointer_array_get_size(apps_pa);