From c0d0196a1d0cd62c796934394f950fd54c4890d3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Baptiste=20Herv=C3=A9?= Date: Mon, 30 Jul 2012 13:53:11 +0200 Subject: [PATCH] Platform generation : add the uniform topology --- include/simgrid/platf_generator.h | 1 + src/surf/platf_generator.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/include/simgrid/platf_generator.h b/include/simgrid/platf_generator.h index cb84081603..c5f6d87841 100644 --- a/include/simgrid/platf_generator.h +++ b/include/simgrid/platf_generator.h @@ -27,6 +27,7 @@ XBT_PUBLIC(void) platf_graph_interconnect_star(void); XBT_PUBLIC(void) platf_graph_interconnect_line(void); XBT_PUBLIC(void) platf_graph_interconnect_ring(void); XBT_PUBLIC(void) platf_graph_interconnect_clique(void); +XBT_PUBLIC(void) platf_graph_interconnect_uniform(double alpha); // WARNING : Only for debbugging ; should be removed when platform // generation works correctly diff --git a/src/surf/platf_generator.c b/src/surf/platf_generator.c index d399f816dd..a0367701ad 100644 --- a/src/surf/platf_generator.c +++ b/src/surf/platf_generator.c @@ -166,7 +166,25 @@ void platf_graph_interconnect_clique(void) { } } +void platf_graph_interconnect_uniform(double alpha) { + /* Creates a topology where the probability to connect two nodes is uniform (unrealistic, but simple) + alpha : Probability for two nodes to get connected */ + xbt_dynar_t dynar_nodes = NULL; + xbt_node_t first_node = NULL; + xbt_node_t second_node = NULL; + unsigned int i,j; + dynar_nodes = xbt_graph_get_nodes(platform_graph); + xbt_dynar_foreach(dynar_nodes, i, first_node) { + xbt_dynar_foreach(dynar_nodes, j, second_node) { + if(j>=i) + break; + if(RngStream_RandU01(rng_stream) < alpha) { + platf_node_connect(first_node, second_node); + } + } + } +} /* Functions used to generate interesting random values */ -- 2.20.1