1 #ifndef __TM_MAPPING_H__
2 #define __TM_MAPPING_H__
3 #include "tm_tree.h"
4 #include "tm_topology.h"
5 #include "tm_timings.h"
6 #include "tm_verbose.h"
7
8 tm_affinity_mat_t * new_affinity_mat(double **mat, double *sum_row, int order, long int nnz);
9 void build_synthetic_proc_id(tm_topology_t *topology);
10 tm_topology_t *build_synthetic_topology(int *arity, int nb_levels, int *core_numbering, int nb_core_per_nodes);
11 int compute_nb_leaves_from_level(int depth,tm_topology_t *topology);
12 void depth_first(tm_tree_t *comm_tree, int *proc_list,int *i);
13 int fill_tab(int **new_tab,int *tab, int n, int start, int max_val, int shift);
14 long int init_mat(char *filename,int N, double **mat, double *sum_row);
15 void map_topology(tm_topology_t *topology,tm_tree_t *comm_tree, int level,
16 int *sigma, int nb_processes, int **k, int nb_compute_units);
17 int nb_leaves(tm_tree_t *comm_tree);
18 int nb_lines(char *filename);
19 int nb_processing_units(tm_topology_t *topology);
20 void print_1D_tab(int *tab,int N);
21 tm_solution_t * tm_compute_mapping(tm_topology_t *topology,tm_tree_t *comm_tree);
22 void tm_free_affinity_mat(tm_affinity_mat_t *aff_mat);
23 tm_affinity_mat_t *tm_load_aff_mat(char *filename);
24 void update_comm_speed(double **comm_speed,int old_size,int new_size);
25
26
27 typedef struct{
28 int *constraints;
29 int length;
30 int id;
31 }constraint_t;
32
33 #endif