1
1

Merge pull request #2458 from hppritcha/topic/pmix_cray_no_dlopen

pmix/cray: abort job if using aprun for general case
Этот коммит содержится в:
Howard Pritchard 2016-11-25 14:03:20 -07:00 коммит произвёл GitHub
родитель f339632216 eee9f7ae3a
Коммит 7ce3ca25ef
3 изменённых файлов: 42 добавлений и 0 удалений

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

@ -9,6 +9,8 @@
# $HEADER$
#
dist_opaldata_DATA = help-pmix-cray.txt
sources = \
pmix_cray.h \
pmix_cray_component.c \

17
opal/mca/pmix/cray/help-pmix-cray.txt Обычный файл
Просмотреть файл

@ -0,0 +1,17 @@
-*- text -*-
#
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2016 Los Alamos National Security, LLC. All rights
# reserved.
#
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This is the US/English general help file for OPAL PMIX Cray module.
#
[aprun-not-supported]
Direct launch with aprun only works when either the PMI_NO_FORK environment
variable is set, or Open MPI is built with dlopen support disabled.

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

@ -21,6 +21,7 @@
#include "opal/constants.h"
#include "opal/mca/pmix/pmix.h"
#include "opal/util/show_help.h"
#include "pmix_cray.h"
#include <sys/syscall.h>
#include <pmi.h>
@ -79,6 +80,28 @@ opal_pmix_cray_component_t mca_pmix_cray_component = {
static int pmix_cray_component_open(void)
{
/*
* Turns out that there's a lot of reliance on libevent
* and the default behavior of Cray PMI to fork
* in a constructor breaks libevent.
*
* Open MPI will not launch correctly on Cray XE/XC systems
* under these conditions:
*
* 1) direct launch using aprun, and
* 2) PMI_NO_FORK env. variable is not set, nor was
* 3) --disable-dlopen used as part of configury
*
* Under SLURM, PMI_NO_FORK is always set, so we can combine
* the check for conditions 1) and 2) together
*/
#if OPAL_ENABLE_DLOPEN_SUPPORT
if (NULL == getenv("PMI_NO_FORK")) {
opal_show_help("help-pmix-cray.txt", "aprun-not-supported", true);
exit(-1);
}
#endif
return OPAL_SUCCESS;
}