- host.speed_per_pstate = xbt_dynar_new(sizeof(double), NULL);
- xbt_dynar_push(host.speed_per_pstate,&cluster->speed);
- host.pstate = 0;
-
- //host.power_peak = cluster->power;
- host.core_amount = cluster->core_amount;
- host.coord = "";
- sg_platf_new_host(&host);
- xbt_dynar_free(&host.speed_per_pstate);
- XBT_DEBUG("</host>");
-
- XBT_DEBUG("<link\tid=\"%s\"\tbw=\"%f\"\tlat=\"%f\"/>", link_id, cluster->bw, cluster->lat);
-
- s_surf_parsing_link_up_down_t info_lim, info_loop;
- // All links are saved in a matrix;
- // every row describes a single node; every node
- // may have multiple links.
- // the first column may store a link from x to x if p_has_loopback is set
- // the second column may store a limiter link if p_has_limiter is set
- // other columns are to store one or more link for the node
-
- //add a loopback link
- if(cluster->loopback_bw!=0 || cluster->loopback_lat!=0){
- char *tmp_link = bprintf("%s_loopback", link_id);
- XBT_DEBUG("<loopback\tid=\"%s\"\tbw=\"%f\"/>", tmp_link, cluster->limiter_link);
-
- memset(&link, 0, sizeof(link));
- link.id = tmp_link;
- link.bandwidth = cluster->loopback_bw;
- link.latency = cluster->loopback_lat;
- link.policy = SURF_LINK_FATPIPE;
- sg_platf_new_link(&link);
- info_loop.link_up = info_loop.link_down = Link::byName(tmp_link);
- free(tmp_link);
- auto as_cluster = static_cast<AsCluster*>(current_as);
- xbt_dynar_set(as_cluster->privateLinks_, rankId*as_cluster->nb_links_per_node_, &info_loop);
- }
+ host.speed_per_pstate.push_back(cluster->speed);
+ host.pstate = 0;
+ host.core_amount = cluster->core_amount;
+ host.coord = "";
+ sg_platf_new_host(&host);
+ XBT_DEBUG("</host>");
+
+ XBT_DEBUG("<link\tid=\"%s\"\tbw=\"%f\"\tlat=\"%f\"/>", link_id, cluster->bw, cluster->lat);
+
+ s_surf_parsing_link_up_down_t info_lim;
+ s_surf_parsing_link_up_down_t info_loop;
+ // All links are saved in a matrix;
+ // every row describes a single node; every node may have multiple links.
+ // the first column may store a link from x to x if p_has_loopback is set
+ // the second column may store a limiter link if p_has_limiter is set
+ // other columns are to store one or more link for the node
+
+ //add a loopback link
+ if(cluster->loopback_bw!=0 || cluster->loopback_lat!=0){
+ char *tmp_link = bprintf("%s_loopback", link_id);
+ XBT_DEBUG("<loopback\tid=\"%s\"\tbw=\"%f\"/>", tmp_link, cluster->loopback_bw);
+
+ memset(&link, 0, sizeof(link));
+ link.id = tmp_link;
+ link.bandwidth = cluster->loopback_bw;
+ link.latency = cluster->loopback_lat;
+ link.policy = SURF_LINK_FATPIPE;
+ sg_platf_new_link(&link);
+ info_loop.linkUp = Link::byName(tmp_link);
+ info_loop.linkDown = Link::byName(tmp_link);
+ free(tmp_link);
+
+ auto as_cluster = static_cast<AsCluster*>(current_as);
+ as_cluster->privateLinks_.insert({rankId*as_cluster->linkCountPerNode_, info_loop});
+ }