2 * jed_simgrid_platform.h
4 * Created on: Nov 30, 2010
8 #ifndef JED_SIMGRID_PLATFORM_H_
9 #define JED_SIMGRID_PLATFORM_H_
11 #include "simgrid_config.h"
13 #include "xbt/dynar.h"
18 typedef struct jed_simgrid_container s_jed_simgrid_container_t,
19 *jed_simgrid_container_t;
22 struct jed_simgrid_container {
24 xbt_dynar_t container_children;
25 jed_simgrid_container_t parent;
26 xbt_dynar_t resource_list;
34 * selection of a subset of resources from the original set
37 struct jed_res_subset {
38 jed_simgrid_container_t parent;
39 int start_idx; // start idx in resource_list of container
40 int nres; // number of resources spanning starting at start_idx
43 typedef struct jed_res_subset s_jed_res_subset_t, *jed_res_subset_t;
45 struct jedule_struct {
46 jed_simgrid_container_t root_container;
47 xbt_dict_t jedule_meta_info;
50 typedef struct jedule_struct s_jedule_t, *jedule_t;
53 /*********************************************************/
55 void jed_create_jedule(jedule_t *jedule);
57 void jed_free_jedule(jedule_t jedule);
59 void jedule_add_meta_info(jedule_t jedule, char *key, char *value);
61 void jed_simgrid_create_container(jed_simgrid_container_t *container, char *name);
63 void jed_simgrid_add_container(jed_simgrid_container_t parent,
64 jed_simgrid_container_t child);
66 void jed_simgrid_add_resources(jed_simgrid_container_t parent,
67 xbt_dynar_t host_names);
71 * it is assumed that the host_names in the entire system are unique
72 * that means that we don't need parent references
74 * subset_list must be allocated
75 * host_names is the list of host_names associated with an event
77 void jed_simgrid_get_resource_selection_by_hosts(xbt_dynar_t subset_list,
78 xbt_dynar_t host_names);
82 hash host_id -> container
85 hash host_id -> jed_host_id
87 list <- [ jed_host_ids ]
89 list_chunks <- chunk( list ) -> [ 1, 3-5, 7-9 ]
96 #endif /* JED_SIMGRID_PLATFORM_H_ */