1
1

yoda spml will disqalify itself if bml/btls are not started by ompi

Starting bml/btls in yoda is pointless because btls require modex()
exchange. modex() is only done during mpi_init()

Refs trac:3763

This commit was SVN r29541.

The following Trac tickets were found above:
  Ticket 3763 --> https://svn.open-mpi.org/trac/ompi/ticket/3763
Этот коммит содержится в:
Mike Dubman 2013-10-28 18:55:50 +00:00
родитель 68dac45a37
Коммит b5c95e8eb6
3 изменённых файлов: 10 добавлений и 15 удалений

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

@ -27,6 +27,8 @@
#include "oshmem/mca/spml/spml.h"
#include "oshmem/mca/spml/base/base.h"
#include "ompi/mca/bml/base/base.h"
typedef struct opened_component_t {
opal_list_item_t super;
@ -147,7 +149,12 @@ int mca_spml_base_select(bool enable_progress_threads, bool enable_mpi_threads)
if (NULL == tmp_val) {
continue;
}
orte_errmgr.abort(1, "SPML %s cannot be selected", tmp_val);
if (0 == strncmp(tmp_val, "yoda", 4) && !mca_bml_base_inited()) {
orte_errmgr.abort(1, "SPML %s cannot be selected becasue no btls are available. Please make sure that ob1 pml is selected by ompi (-mca pml ob1)", tmp_val);
}
else {
orte_errmgr.abort(1, "SPML %s cannot be selected", tmp_val);
}
}
if (0 == i) {
orte_errmgr.abort(2,

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

@ -74,7 +74,6 @@ struct mca_spml_yoda_t {
/* number of outstanding put requests */
int32_t n_active_puts;
bool enabled;
bool force_bml;
struct yoda_btl *btl_type_map;
int n_btls;
};

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

@ -112,15 +112,9 @@ mca_spml_yoda_component_init(int* priority,
}
/* We use BML/BTL and need to start it */
mca_spml_yoda.force_bml = false;
if (!mca_bml_base_inited()) {
SPML_VERBOSE(10, "starting bml\n");
if (OMPI_SUCCESS
!= mca_bml_base_init(enable_progress_threads,
enable_mpi_threads)) {
return NULL ;
}
mca_spml_yoda.force_bml = true;
SPML_VERBOSE(10, "can not select yoda because ompi has no bml component");
return NULL;
}
mca_spml_yoda.n_active_puts = 0;
@ -132,11 +126,6 @@ int mca_spml_yoda_component_fini(void)
{
int rc;
/* Shutdown BML */
if ((mca_spml_yoda.force_bml == true) &&
(OMPI_SUCCESS != (rc = mca_bml.bml_finalize())))
return rc;
if(!mca_spml_yoda.enabled)
return OSHMEM_SUCCESS; /* never selected.. return success.. */
mca_spml_yoda.enabled = false; /* not anymore */