1
1

POE is supported on both AIX and Linux. Build POE PLM only if we find the poe binary. Fix hostfile creation and POE command line arguments.

This commit was SVN r24444.
Этот коммит содержится в:
Nysal Jan 2011-02-23 15:38:41 +00:00
родитель 5e082d68f6
Коммит 42a73bb887
4 изменённых файлов: 27 добавлений и 21 удалений

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

@ -11,6 +11,7 @@
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2010 IBM Corporation. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -24,18 +25,22 @@
AC_DEFUN([MCA_orte_plm_poe_CONFIG],[
AC_CONFIG_FILES([orte/mca/plm/poe/Makefile])
# POE is only supported on AIX. We only need executables (no
# POE is only supported on AIX and Linux. We only need executables (no
# header files or libraries), but those can be found (or not) at
# run-time. So if we're on AIX, build this component.
AC_MSG_CHECKING([if on AIX])
# run-time. So if we're on AIX or Linux, and can find the poe executable
# build this component.
case $host_os in
aix3* | aix4* | aix5*)
happy=yes
aix* | linux* )
AC_CHECK_PROG(POE,poe,poe,no)
if test "$POE" = no ; then
happy=no
else
happy=yes
fi
;;
*)
happy=no
;;
esac
AC_MSG_RESULT([$happy])
AS_IF([test "$happy" = "yes"], [$1], [$2])
])

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

@ -12,6 +12,7 @@
* Copyright (c) 2007 Los Alamos National Security, LLC. All rights
* reserved.
* Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2010 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -190,7 +191,12 @@ static int spawn(orte_job_t *jdata)
if (NULL == (node = (orte_node_t*)opal_pointer_array_get_item(map->nodes, i))) {
continue;
}
fprintf(hfp,"%s\n",node->name);
for (j=0; j < node->procs->size; j++) {
if (NULL == (proc = (orte_proc_t*)opal_pointer_array_get_item(node->procs, j))) {
continue;
}
fprintf(hfp,"%s\n",node->name);
}
}
fclose(hfp);
}
@ -220,14 +226,14 @@ static int spawn(orte_job_t *jdata)
/* vpids were assigned byslot */
fprintf(cfp, " OMPI_MCA_mapping=byslot");
}
fprintf(cfp, " OMPI_MCA_orte_rank=%d", (int)proc->name.vpid);
fprintf(cfp, " OMPI_MCA_orte_num_procs=%d", (int)jdata->num_procs);
fprintf(cfp, " OMPI_MCA_orte_rank=%u", proc->name.vpid);
fprintf(cfp, " OMPI_MCA_orte_num_procs=%u", jdata->num_procs);
fprintf(cfp, " OMPI_MCA_orte_nodes=%s", nodelist);
fprintf(cfp, " OMPI_MCA_orte_ppn=%s", ppnlist);
fprintf(cfp, " OMPI_MCA_orte_app_num=%d", (int)proc->app_idx);
for (k=0; NULL != orte_launch_environ[k]; k++) {
fprintf(cfp, " OMPI_MCA_orte_app_num=%u", proc->app_idx);
/*for (k=0; NULL != orte_launch_environ[k]; k++) {
fprintf(cfp, " %s", orte_launch_environ[k]);
}
}*/
fprintf(cfp, " %s", app->app);
for (k=1; NULL != app->argv[k]; k++) {
fprintf(cfp, " %s", app->argv[k]);
@ -263,14 +269,12 @@ static int spawn(orte_job_t *jdata)
if(ORTE_SUCCESS!=rc) { ORTE_ERROR_LOG(rc); goto cleanup; }
rc=poe_argv_append_int(&argv, mca_plm_poe_component.mp_retry, 0, "-retry");
if(ORTE_SUCCESS!=rc) { ORTE_ERROR_LOG(rc); goto cleanup; }
rc=poe_argv_append_int(&argv, mca_plm_poe_component.mp_retrycount, 0, "-retrycount");
if(ORTE_SUCCESS!=rc) { ORTE_ERROR_LOG(rc); goto cleanup; }
rc=poe_argv_append_int(&argv, mca_plm_poe_component.mp_infolevel, 0, "-infolevel");
if(ORTE_SUCCESS!=rc) { ORTE_ERROR_LOG(rc); goto cleanup; }
if(mca_plm_poe_component.verbose>10) {
opal_output(0, "POE cmdline %s\n", opal_argv_join(argv, ' '));
}
opal_output_verbose(10, orte_plm_globals.output,
"%s plm:poe: POE cmdline: %s\n",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), opal_argv_join(argv, ' '));
/* Start job with POE */

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

@ -41,7 +41,6 @@ struct orte_plm_poe_component_t {
orte_plm_base_component_t super;
orte_jobid_t jobid;
int priority;
int verbose;
char* path;
char* env;
char** argv;

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

@ -12,6 +12,7 @@
* Copyright (c) 2007 Los Alamos National Security, LLC. All rights
* reserved.
* Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2010 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -111,9 +112,6 @@ int orte_plm_poe_component_open(void)
mca_base_param_reg_int(c, "debug",
"Whether or not to enable debugging output for the poe plm component (0 or 1)",
false, false, 0, &mca_plm_poe_component.debug);
mca_base_param_reg_int(c, "verbose",
"Verbose level",
true, false, 0, &mca_plm_poe_component.verbose);
mca_base_param_reg_int(c, "priority",
"Priority of the poe plm component",
false , false, 100, &mca_plm_poe_component.priority);