1
1
NOTE: JEFF SHOULD CHECK THIS!

I found that orterun was not tracking the index number of the app_contexts it was creating. Hence, the app_context->idx field was always sitting at zero. This index is used by the mapper to decide which app_context to use for each process - thus, with the value of each index being zero, the mapper only used the first app_context that was created. All others were ignored.

Not sure when this might have gotten changed. Could be it was a problem that always existed, but didn't get exposed until something else was changed.

Anyway, it seems to work now - could stand further testing.

This commit was SVN r9389.
Этот коммит содержится в:
Ralph Castain 2006-03-23 16:53:11 +00:00
родитель d9dc534c08
Коммит 2a18ebd9e1

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

@ -842,6 +842,9 @@ static int parse_locals(int argc, char* argv[])
app = OBJ_NEW(orte_app_context_t);
rc = create_app(temp_argc, temp_argv, &app, &made_app, &env);
/** keep track of the number of apps - point this app_context to that index */
app->idx = app_num;
app_num++;
if (ORTE_SUCCESS != rc) {
/* Assume that the error message has already been
printed; no need to cleanup -- we can just
@ -869,6 +872,8 @@ static int parse_locals(int argc, char* argv[])
if (opal_argv_count(temp_argv) > 1) {
app = OBJ_NEW(orte_app_context_t);
rc = create_app(temp_argc, temp_argv, &app, &made_app, &env);
app->idx = app_num;
app_num++;
if (ORTE_SUCCESS != rc) {
/* Assume that the error message has already been printed;
no need to cleanup -- we can just exit */