Fix the app_context problem.
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.
Этот коммит содержится в:
родитель
d9dc534c08
Коммит
2a18ebd9e1
@ -842,6 +842,9 @@ static int parse_locals(int argc, char* argv[])
|
|||||||
|
|
||||||
app = OBJ_NEW(orte_app_context_t);
|
app = OBJ_NEW(orte_app_context_t);
|
||||||
rc = create_app(temp_argc, temp_argv, &app, &made_app, &env);
|
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) {
|
if (ORTE_SUCCESS != rc) {
|
||||||
/* Assume that the error message has already been
|
/* Assume that the error message has already been
|
||||||
printed; no need to cleanup -- we can just
|
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) {
|
if (opal_argv_count(temp_argv) > 1) {
|
||||||
app = OBJ_NEW(orte_app_context_t);
|
app = OBJ_NEW(orte_app_context_t);
|
||||||
rc = create_app(temp_argc, temp_argv, &app, &made_app, &env);
|
rc = create_app(temp_argc, temp_argv, &app, &made_app, &env);
|
||||||
|
app->idx = app_num;
|
||||||
|
app_num++;
|
||||||
if (ORTE_SUCCESS != rc) {
|
if (ORTE_SUCCESS != rc) {
|
||||||
/* Assume that the error message has already been printed;
|
/* Assume that the error message has already been printed;
|
||||||
no need to cleanup -- we can just exit */
|
no need to cleanup -- we can just exit */
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user