1
1

Minor indent cleanup in init_query()

Only use Portals on communicators with more than one rank
Fix computation of number of children when using the hypercube tree

This commit was SVN r29616.
Этот коммит содержится в:
Brian Barrett 2013-11-06 15:21:09 +00:00
родитель c356bdeeae
Коммит cf8de1ef0f
2 изменённых файлов: 19 добавлений и 17 удалений

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

@ -101,7 +101,7 @@ static inline int
ompi_coll_portals4_get_nchildren(int cube_dim, int hibit, int rank, int size) ompi_coll_portals4_get_nchildren(int cube_dim, int hibit, int rank, int size)
{ {
int guess = cube_dim - (hibit + 1); int guess = cube_dim - (hibit + 1);
if ((rank | (1 << cube_dim)) >= size) guess--; if ((rank | (1 << (cube_dim - 1))) >= size) guess--;
if (guess < 0) return 0; if (guess < 0) return 0;
return guess; return guess;
} }

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

@ -434,8 +434,10 @@ portals4_comm_query(struct ompi_communicator_t *comm,
{ {
mca_coll_portals4_module_t *portals4_module; mca_coll_portals4_module_t *portals4_module;
/* For now, we don't support intercommunicators */ /* For now, we don't support intercommunicators and we probably
if (OMPI_COMM_IS_INTER(comm)) { never should handle the single proc case, since there's the
self module... */
if (OMPI_COMM_IS_INTER(comm) || ompi_comm_size(comm) < 2) {
return NULL; return NULL;
} }