-/* Copyright (c) 2013-2019. The SimGrid Team.
+/* Copyright (c) 2013-2020. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
return NULL;
}
- tree->tree_root = MPI_UNDEFINED;
- tree->tree_nextsize = MPI_UNDEFINED;
-
- /*
- * Set root
- */
- tree->tree_root = root;
-
/*
* Initialize tree
*/
return NULL;
}
- tree->tree_root = MPI_UNDEFINED;
- tree->tree_nextsize = MPI_UNDEFINED;
-
/*
* Initialize tree
*/
ompi_coll_tuned_topo_build_bmtree( MPI_Comm comm,
int root )
{
- int childs = 0;
+ int children = 0;
int rank;
int size;
int mask = 1;
if( remote >= size ) remote -= size;
bmtree->tree_prev = remote;
}
- /* And now let's fill my childs */
+ /* And now let's fill my children */
while( mask < size ) {
remote = (index ^ mask);
if( remote >= size ) break;
remote += root;
if( remote >= size ) remote -= size;
- if (childs==MAXTREEFANOUT) {
- XBT_DEBUG("coll:tuned:topo:build_bmtree max fanout incorrect %d needed %d", MAXTREEFANOUT, childs);
+ if (children==MAXTREEFANOUT) {
+ XBT_DEBUG("coll:tuned:topo:build_bmtree max fanout incorrect %d needed %d", MAXTREEFANOUT, children);
+ delete bmtree;
return NULL;
}
- bmtree->tree_next[childs] = remote;
+ bmtree->tree_next[children] = remote;
mask <<= 1;
- childs++;
+ children++;
}
- bmtree->tree_nextsize = childs;
+ bmtree->tree_nextsize = children;
bmtree->tree_root = root;
return bmtree;
}
*/
ompi_coll_tree_t* ompi_coll_tuned_topo_build_in_order_bmtree(MPI_Comm comm, int root)
{
- int childs = 0;
+ int children = 0;
int rank, vrank;
int size;
int mask = 1;
bmtree = new ompi_coll_tree_t;
if (not bmtree) {
XBT_DEBUG("coll:tuned:topo:build_bmtree PANIC out of memory");
+ delete bmtree;
return NULL;
}
bmtree->tree_prev = (remote + root) % size;
break;
} else if (remote < size) {
- bmtree->tree_next[childs] = (remote + root) % size;
- childs++;
- if (childs == MAXTREEFANOUT) {
- XBT_DEBUG("coll:tuned:topo:build_bmtree max fanout incorrect %d needed %d", MAXTREEFANOUT, childs);
+ bmtree->tree_next[children] = (remote + root) % size;
+ children++;
+ if (children == MAXTREEFANOUT) {
+ XBT_DEBUG("coll:tuned:topo:build_bmtree max fanout incorrect %d needed %d", MAXTREEFANOUT, children);
delete bmtree;
return NULL;
}
}
mask <<= 1;
}
- bmtree->tree_nextsize = childs;
+ bmtree->tree_nextsize = children;
bmtree->tree_root = root;
return bmtree;
fflush(stdout);
return NULL;
}
- chain->tree_root = MPI_UNDEFINED;
- chain->tree_nextsize = -1;
for(i=0;i<fanout;i++) chain->tree_next[i] = -1;
/*