
Go to the source code of this file.
Functions | |
| void | free_list_child (tree_t *tree) |
| void | free_tab_child (tree_t *tree) |
| void | free_tree (tree_t *tree) |
| long int | choose (long n, long k) |
| void | set_node (tree_t *node, tree_t **child, int arity, tree_t *parent, int id, double val, tree_t *tab_child) |
| void | display_node (tree_t *node) |
| void | clone_tree (tree_t *newptr, tree_t *oldptr) |
| double * | aggregate_obj_weight (tree_t *new_tab_node, double *tab, int M) |
| double ** | aggregate_com_mat (tree_t *new_tab_node, double **tab, int M) |
| void | free_tab_double (double **tab, int N) |
| void | free_tab_int (int **tab, int N) |
| void | display_tab (double **tab, int N) |
| double | eval_grouping (double **tab, tree_t **cur_group, int arity, int N) |
| group_list_t * | new_group_list (tree_t **tab, double val, group_list_t *next) |
| void | add_to_list (group_list_t *list, tree_t **cur_group, int arity, double val) |
| void | list_all_possible_groups (double **tab, tree_t *tab_node, int id, int arity, int depth, tree_t **cur_group, int N, group_list_t *list) |
| void | update_val (double **tab, tree_t *parent, int N) |
| int | independent_groups (group_list_t **selection, int d, group_list_t *elem, int arity) |
| void | display_selection (group_list_t **selection, int M, int arity, double val) |
| void | display_grouping (tree_t *father, int M, int arity, double val) |
| int | recurs_select_independent_groups (group_list_t **tab, int i, int n, int arity, int d, int M, double val, double *best_val, group_list_t **selection, group_list_t **best_selection) |
| int | test_independent_groups (group_list_t **tab, int i, int n, int arity, int d, int M, double val, double *best_val, group_list_t **selection, group_list_t **best_selection) |
| void | delete_group_list (group_list_t *list) |
| int | group_list_id (const void *x1, const void *x2) |
| int | group_list_asc (const void *x1, const void *x2) |
| int | group_list_dsc (const void *x1, const void *x2) |
| int | weighted_degree_asc (const void *x1, const void *x2) |
| int | weighted_degree_dsc (const void *x1, const void *x2) |
| int | select_independent_groups (group_list_t **tab_group, int n, int arity, int M, double *best_val, group_list_t **best_selection, int bound, double max_duration) |
| int | select_independent_groups_by_largest_index (group_list_t **tab_group, int n, int arity, int M, double *best_val, group_list_t **best_selection, int bound, double max_duration) |
| void | list_to_tab (group_list_t *list, group_list_t **tab, int n) |
| void | display_tab_group (group_list_t **tab, int n, int arity) |
| int | independent_tab (tree_t **tab1, tree_t **tab2, int n) |
| void | compute_weighted_degree (group_list_t **tab, int n, int arity) |
| void | group (double **tab, tree_t *tab_node, tree_t *parent, int id, int arity, int n, double *best_val, tree_t **cur_group, int N) |
| void | fast_group (double **tab, tree_t *tab_node, tree_t *parent, int id, int arity, int n, double *best_val, tree_t **cur_group, int N, int *nb_groups, int max_groups) |
| void | fast_grouping (double **tab, tree_t *tab_node, tree_t *new_tab_node, int arity, int N, int M, long int k) |
| int | adjacency_asc (const void *x1, const void *x2) |
| int | adjacency_dsc (const void *x1, const void *x2) |
| void | super_fast_grouping (double **tab, tree_t *tab_node, tree_t *new_tab_node, int arity, int N, int M, int k) |
| double ** | build_cost_matrix (double **comm_matrix, double *obj_weight, double comm_speed, int N) |
| void | group_nodes (double **comm_matrix, tree_t *tab_node, tree_t *new_tab_node, int depth, int arity, int N, int M, double *obj_weigth, double comm_speed) |
| void | complete_com_mat (double ***tab, int N, int K) |
| void | complete_obj_weight (double **tab, int N, int K) |
| void | create_dumb_tree (tree_t *node, int depth, tm_topology_t *topology) |
| void | complete_tab_node (tree_t **tab, int N, int K, int depth, tm_topology_t *topology) |
| void | set_deb_tab_child (tree_t *tree, tree_t *child, int depth) |
| tree_t * | build_level_topology (tree_t *tab_node, double **com_mat, int N, int arity, int depth, tm_topology_t *topology, double *obj_weight, double *comm_speed) |
| double | speed (int depth) |
| tree_t * | build_tree_from_topology (tm_topology_t *topology, double **tab, int N, double *obj_weight, double *comm_speed) |
| void free_list_child | ( | tree_t * | tree | ) |
Definition at line 21 of file tm_tree.C.
References _tree_t::arity, _tree_t::child, _tree_t::dumb, and free().
Referenced by free_tree().


| void free_tab_child | ( | tree_t * | tree | ) |
Definition at line 36 of file tm_tree.C.
References free(), and _tree_t::tab_child.
Referenced by free_tree().


| void free_tree | ( | tree_t * | tree | ) |
Definition at line 45 of file tm_tree.C.
References free(), free_list_child(), and free_tab_child().
Referenced by parse_dup_op(), and TreeMatchMapping().


| long int choose | ( | long | n, | |
| long | k | |||
| ) |
Definition at line 52 of file tm_tree.C.
Referenced by group_nodes().

| void set_node | ( | tree_t * | node, | |
| tree_t ** | child, | |||
| int | arity, | |||
| tree_t * | parent, | |||
| int | id, | |||
| double | val, | |||
| tree_t * | tab_child | |||
| ) |
Definition at line 62 of file tm_tree.C.
References _tree_t::arity, _tree_t::child, _tree_t::dumb, _tree_t::id, _tree_t::parent, _tree_t::tab_child, _tree_t::uniq, and _tree_t::val.
Referenced by build_level_topology(), build_synthetic_topology_old(), build_tree_from_topology(), and create_dumb_tree().

| void display_node | ( | tree_t * | node | ) |
Definition at line 74 of file tm_tree.C.
References _tree_t::arity, _tree_t::child, _tree_t::id, _tree_t::parent, _tree_t::uniq, and _tree_t::val.
Definition at line 78 of file tm_tree.C.
References _tree_t::arity, _tree_t::child, _tree_t::dumb, _tree_t::id, _tree_t::parent, _tree_t::uniq, and _tree_t::val.
Referenced by complete_tab_node().

Definition at line 94 of file tm_tree.C.
References _tree_t::arity, _tree_t::child, _tree_t::id, and malloc().
Referenced by build_level_topology().


Definition at line 116 of file tm_tree.C.
References _tree_t::arity, _tree_t::child, _tree_t::id, and malloc().
Referenced by build_level_topology().


| void free_tab_double | ( | double ** | tab, | |
| int | N | |||
| ) |
Definition at line 148 of file tm_tree.C.
References free().
Referenced by build_level_topology(), and group_nodes().


Definition at line 181 of file tm_tree.C.
References _tree_t::id.
Referenced by fast_group(), group(), list_all_possible_groups(), and update_val().

| group_list_t* new_group_list | ( | tree_t ** | tab, | |
| double | val, | |||
| group_list_t * | next | |||
| ) |
Definition at line 210 of file tm_tree.C.
References malloc(), _group_list_t::next, _group_list_t::sum_neighbour, _group_list_t::tab, and _group_list_t::val.
Referenced by add_to_list().


| void add_to_list | ( | group_list_t * | list, | |
| tree_t ** | cur_group, | |||
| int | arity, | |||
| double | val | |||
| ) |
Definition at line 221 of file tm_tree.C.
References elem, malloc(), new_group_list(), _group_list_t::next, and _group_list_t::val.
Referenced by list_all_possible_groups().


| void list_all_possible_groups | ( | double ** | tab, | |
| tree_t * | tab_node, | |||
| int | id, | |||
| int | arity, | |||
| int | depth, | |||
| tree_t ** | cur_group, | |||
| int | N, | |||
| group_list_t * | list | |||
| ) |
Definition at line 243 of file tm_tree.C.
References add_to_list(), eval_grouping(), and parent().
Referenced by group_nodes().


Definition at line 267 of file tm_tree.C.
References _tree_t::arity, _tree_t::child, eval_grouping(), and _tree_t::val.
Referenced by bucket_grouping(), fast_grouping(), group_nodes(), and super_fast_grouping().


| int independent_groups | ( | group_list_t ** | selection, | |
| int | d, | |||
| group_list_t * | elem, | |||
| int | arity | |||
| ) |
Definition at line 287 of file tm_tree.C.
References _tree_t::id, and _group_list_t::tab.
Referenced by recurs_select_independent_groups(), and test_independent_groups().

| void display_selection | ( | group_list_t ** | selection, | |
| int | M, | |||
| int | arity, | |||
| double | val | |||
| ) |
Definition at line 307 of file tm_tree.C.
Referenced by select_independent_groups().

Definition at line 318 of file tm_tree.C.
Referenced by fast_grouping(), and super_fast_grouping().

| int recurs_select_independent_groups | ( | group_list_t ** | tab, | |
| int | i, | |||
| int | n, | |||
| int | arity, | |||
| int | d, | |||
| int | M, | |||
| double | val, | |||
| double * | best_val, | |||
| group_list_t ** | selection, | |||
| group_list_t ** | best_selection | |||
| ) |
Definition at line 330 of file tm_tree.C.
References elem, independent_groups(), and _group_list_t::val.
Referenced by select_independent_groups(), and test_independent_groups().


| int test_independent_groups | ( | group_list_t ** | tab, | |
| int | i, | |||
| int | n, | |||
| int | arity, | |||
| int | d, | |||
| int | M, | |||
| double | val, | |||
| double * | best_val, | |||
| group_list_t ** | selection, | |||
| group_list_t ** | best_selection | |||
| ) |
Definition at line 361 of file tm_tree.C.
References elem, independent_groups(), recurs_select_independent_groups(), and _group_list_t::val.
Referenced by select_independent_groups_by_largest_index().


| void delete_group_list | ( | group_list_t * | list | ) |
Definition at line 382 of file tm_tree.C.
References free(), _group_list_t::next, and _group_list_t::tab.
Referenced by group_nodes().


| int group_list_id | ( | const void * | x1, | |
| const void * | x2 | |||
| ) |
Definition at line 392 of file tm_tree.C.
References e1, _tree_t::id, and _group_list_t::tab.
Referenced by group_nodes().

| int group_list_asc | ( | const void * | x1, | |
| const void * | x2 | |||
| ) |
Definition at line 403 of file tm_tree.C.
References e1, and _group_list_t::val.
Referenced by group_nodes().

| int group_list_dsc | ( | const void * | x1, | |
| const void * | x2 | |||
| ) |
Definition at line 415 of file tm_tree.C.
References e1, and _group_list_t::val.
Referenced by group_nodes().

| int weighted_degree_asc | ( | const void * | x1, | |
| const void * | x2 | |||
| ) |
| int weighted_degree_dsc | ( | const void * | x1, | |
| const void * | x2 | |||
| ) |
Definition at line 439 of file tm_tree.C.
References e1, and _group_list_t::wg.
Referenced by group_nodes().

| int select_independent_groups | ( | group_list_t ** | tab_group, | |
| int | n, | |||
| int | arity, | |||
| int | M, | |||
| double * | best_val, | |||
| group_list_t ** | best_selection, | |||
| int | bound, | |||
| double | max_duration | |||
| ) |
Definition at line 450 of file tm_tree.C.
References display_selection(), free(), malloc(), recurs_select_independent_groups(), and _group_list_t::val.
Referenced by group_nodes().


| int select_independent_groups_by_largest_index | ( | group_list_t ** | tab_group, | |
| int | n, | |||
| int | arity, | |||
| int | M, | |||
| double * | best_val, | |||
| group_list_t ** | best_selection, | |||
| int | bound, | |||
| double | max_duration | |||
| ) |
Definition at line 481 of file tm_tree.C.
References free(), malloc(), MAX(), test_independent_groups(), and _group_list_t::val.
Referenced by group_nodes().


| void list_to_tab | ( | group_list_t * | list, | |
| group_list_t ** | tab, | |||
| int | n | |||
| ) |
Definition at line 515 of file tm_tree.C.
References _group_list_t::next.
Referenced by group_nodes().

| void display_tab_group | ( | group_list_t ** | tab, | |
| int | n, | |||
| int | arity | |||
| ) |
Definition at line 540 of file tm_tree.C.
Referenced by compute_weighted_degree().

| void compute_weighted_degree | ( | group_list_t ** | tab, | |
| int | n, | |||
| int | arity | |||
| ) |
Definition at line 556 of file tm_tree.C.
References independent_tab(), _group_list_t::sum_neighbour, _group_list_t::val, and _group_list_t::wg.
Referenced by group_nodes().


| void group | ( | double ** | tab, | |
| tree_t * | tab_node, | |||
| tree_t * | parent, | |||
| int | id, | |||
| int | arity, | |||
| int | n, | |||
| double * | best_val, | |||
| tree_t ** | cur_group, | |||
| int | N | |||
| ) |
Definition at line 588 of file tm_tree.C.
References _tree_t::arity, _tree_t::child, eval_grouping(), and group.

| void fast_group | ( | double ** | tab, | |
| tree_t * | tab_node, | |||
| tree_t * | parent, | |||
| int | id, | |||
| int | arity, | |||
| int | n, | |||
| double * | best_val, | |||
| tree_t ** | cur_group, | |||
| int | N, | |||
| int * | nb_groups, | |||
| int | max_groups | |||
| ) |
Definition at line 634 of file tm_tree.C.
References _tree_t::arity, _tree_t::child, and eval_grouping().
Referenced by fast_grouping().


| void fast_grouping | ( | double ** | tab, | |
| tree_t * | tab_node, | |||
| tree_t * | new_tab_node, | |||
| int | arity, | |||
| int | N, | |||
| int | M, | |||
| long int | k | |||
| ) |
Definition at line 679 of file tm_tree.C.
References _tree_t::arity, _tree_t::child, CmiLog2(), display_grouping(), fast_group(), free(), PUP::l, malloc(), MAX(), _tree_t::parent, and update_val().
Referenced by group_nodes().


| int adjacency_asc | ( | const void * | x1, | |
| const void * | x2 | |||
| ) |
| int adjacency_dsc | ( | const void * | x1, | |
| const void * | x2 | |||
| ) |
Definition at line 725 of file tm_tree.C.
References e1, and adjacency_t::val.
Referenced by super_fast_grouping().

| void super_fast_grouping | ( | double ** | tab, | |
| tree_t * | tab_node, | |||
| tree_t * | new_tab_node, | |||
| int | arity, | |||
| int | N, | |||
| int | M, | |||
| int | k | |||
| ) |
Definition at line 735 of file tm_tree.C.
References adjacency_dsc(), assert, display_grouping(), free(), adjacency_t::i, adjacency_t::j, PUP::l, malloc(), qsort(), try_add_edge(), update_val(), _tree_t::val, and adjacency_t::val.

| double** build_cost_matrix | ( | double ** | comm_matrix, | |
| double * | obj_weight, | |||
| double | comm_speed, | |||
| int | N | |||
| ) |
Definition at line 795 of file tm_tree.C.
References malloc().
Referenced by group_nodes().


| void group_nodes | ( | double ** | comm_matrix, | |
| tree_t * | tab_node, | |||
| tree_t * | new_tab_node, | |||
| int | depth, | |||
| int | arity, | |||
| int | N, | |||
| int | M, | |||
| double * | obj_weigth, | |||
| double | comm_speed | |||
| ) |
Definition at line 834 of file tm_tree.C.
References _tree_t::arity, assert, bucket_grouping(), build_cost_matrix(), _tree_t::child, choose(), compute_weighted_degree(), delete_group_list(), fast_grouping(), free(), free_tab_double(), group_list_asc(), group_list_dsc(), group_list_id(), int, PUP::l, list, list_all_possible_groups(), list_to_tab(), malloc(), n, _group_list_t::next, _tree_t::parent, qsort(), select_independent_groups(), select_independent_groups_by_largest_index(), _group_list_t::tab, update_val(), _group_list_t::val, and weighted_degree_dsc().
Referenced by build_level_topology().


Definition at line 979 of file tm_tree.C.
References malloc().
Referenced by build_level_topology().


Definition at line 1002 of file tm_tree.C.
References malloc().
Referenced by build_level_topology().


| void create_dumb_tree | ( | tree_t * | node, | |
| int | depth, | |||
| tm_topology_t * | topology | |||
| ) |
Definition at line 1033 of file tm_tree.C.
References tm_topology_t::arity, assert, calloc(), _tree_t::dumb, malloc(), tm_topology_t::nb_levels, _tree_t::parent, and set_node().
Referenced by complete_tab_node().


| void complete_tab_node | ( | tree_t ** | tab, | |
| int | N, | |||
| int | K, | |||
| int | depth, | |||
| tm_topology_t * | topology | |||
| ) |
Definition at line 1057 of file tm_tree.C.
References clone_tree(), create_dumb_tree(), free(), _tree_t::id, and malloc().
Referenced by build_level_topology().


Definition at line 1084 of file tm_tree.C.
References _tree_t::tab_child.
Referenced by build_level_topology().

| tree_t* build_level_topology | ( | tree_t * | tab_node, | |
| double ** | com_mat, | |||
| int | N, | |||
| int | arity, | |||
| int | depth, | |||
| tm_topology_t * | topology, | |||
| double * | obj_weight, | |||
| double * | comm_speed | |||
| ) |
Definition at line 1106 of file tm_tree.C.
References aggregate_com_mat(), aggregate_obj_weight(), tm_topology_t::arity, calloc(), complete_com_mat(), complete_obj_weight(), complete_tab_node(), free(), free_tab_double(), group_nodes(), malloc(), set_deb_tab_child(), set_node(), and speed().
Referenced by build_tree_from_topology().


| double speed | ( | int | depth | ) |
Definition at line 1200 of file tm_tree.C.
Referenced by arg_init(), build_level_topology(), build_synthetic_topology_old(), and GreedyRefineLB::fillData().

| tree_t* build_tree_from_topology | ( | tm_topology_t * | topology, | |
| double ** | tab, | |||
| int | N, | |||
| double * | obj_weight, | |||
| double * | comm_speed | |||
| ) |
Definition at line 1213 of file tm_tree.C.
References tm_topology_t::arity, build_level_topology(), malloc(), tm_topology_t::nb_levels, and set_node().
Referenced by TreeMatchMapping(), and TreeMatchLB::work().


1.5.5