X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0f5e8daaa6e9f74521068aa75837200bcd182ea6..cc01c6a871dbbfd0cc84e26eb9f94aeb539e613e:/examples/amok/saturate/env.c diff --git a/examples/amok/saturate/env.c b/examples/amok/saturate/env.c index 45abca5ea7..9309cbaf42 100644 --- a/examples/amok/saturate/env.c +++ b/examples/amok/saturate/env.c @@ -15,12 +15,14 @@ #include "amok/bandwidth.h" #include "amok/hostmanagement.h" -XBT_LOG_NEW_DEFAULT_CATEGORY(saturate,"Messages specific to this example"); +XBT_LOG_NEW_DEFAULT_CATEGORY(saturate, + "Messages specific to this example"); -static void env_hosttohost_bw(int argc, char*argv[]) { +static void env_hosttohost_bw(int argc, char *argv[]) +{ /* where are the sensors */ - xbt_dynar_t hosts = xbt_dynar_new(sizeof(xbt_host_t),&free_host); + xbt_dynar_t hosts = xbt_dynar_new(sizeof(xbt_host_t), &free_host); int nb_hosts; /* results */ @@ -30,108 +32,114 @@ static void env_hosttohost_bw(int argc, char*argv[]) { int i; xbt_host_t h1; - gras_socket_t peer; /* socket to sensor */ + gras_socket_t peer; /* socket to sensor */ - /* wait to ensure that all server sockets are there before starting the experiment */ + /* wait to ensure that all server sockets are there before starting the experiment */ gras_os_sleep(0.5); /* Get the sensor location from argc/argv */ - for (i=1; iname=strdup(argv[i]); - host->port=atoi(argv[i+1]); - INFO2("New sensor: %s:%d",host->name,host->port); - xbt_dynar_push(hosts,&host); + for (i = 1; i < argc - 1; i += 2) { + xbt_host_t host = xbt_new(s_xbt_host_t, 1); + host->name = strdup(argv[i]); + host->port = atoi(argv[i + 1]); + INFO2("New sensor: %s:%d", host->name, host->port); + xbt_dynar_push(hosts, &host); } nb_hosts = xbt_dynar_length(hosts); INFO0(">>> start Test1: ENV end to end mesurements"); - xbt_dynar_foreach(hosts,i,h1) { - peer = gras_socket_client(h1->name,h1->port); - amok_bw_test(peer,buf_size,exp_size,msg_size,min_duration,&sec,&bw); - INFO6("Bandwidth between me and %s:%d (%d bytes in msgs of %d bytes) took %f sec, achieving %.3f kb/s", - h1->name,h1->port, - exp_size,msg_size, - sec,((double)bw)/1024.0); + xbt_dynar_foreach(hosts, i, h1) { + peer = gras_socket_client(h1->name, h1->port); + amok_bw_test(peer, buf_size, exp_size, msg_size, min_duration, &sec, + &bw); + INFO6 + ("Bandwidth between me and %s:%d (%d bytes in msgs of %d bytes) took %f sec, achieving %.3f kb/s", + h1->name, h1->port, exp_size, msg_size, sec, + ((double) bw) / 1024.0); } - xbt_dynar_map(hosts,kill_buddy_dynar); + xbt_dynar_map(hosts, kill_buddy_dynar); xbt_dynar_free(&hosts); } + /********************************************************************************************/ -static void env_Pairwisehost_bw(int argc, char*argv[]) { +static void env_Pairwisehost_bw(int argc, char *argv[]) +{ xbt_ex_t e; /* where are the sensors */ - xbt_dynar_t hosts = xbt_dynar_new(sizeof(xbt_host_t),&free_host); + xbt_dynar_t hosts = xbt_dynar_new(sizeof(xbt_host_t), &free_host); int nb_hosts; /* getting the name of maestro for the saturation and the concurrent bandwidth measurements */ - char* host_test=argv[0]; + char *host_test = argv[0]; /* results */ double sec, bw; /* iterators */ - int i,j; - xbt_host_t h1,h2; + int i, j; + xbt_host_t h1, h2; /* socket to sensor */ gras_socket_t peer; - /* wait to ensure that all server sockets are there before starting the experiment */ + /* wait to ensure that all server sockets are there before starting the experiment */ gras_os_sleep(0.5); - INFO1(">>>>>< le maestro est: %s ",argv[0]); + INFO1(">>>>>< le maestro est: %s ", argv[0]); /* Get the sensor location from argc/argv */ - for (i=1; iname=strdup(argv[i]); - host->port=atoi(argv[i+1]); - INFO2("New sensor: %s:%d",host->name,host->port); - xbt_dynar_push(hosts,&host); + for (i = 1; i < argc - 1; i += 2) { + xbt_host_t host = xbt_new(s_xbt_host_t, 1); + host->name = strdup(argv[i]); + host->port = atoi(argv[i + 1]); + INFO2("New sensor: %s:%d", host->name, host->port); + xbt_dynar_push(hosts, &host); } nb_hosts = xbt_dynar_length(hosts); INFO0(">>> start Test2: ENV pairwise host bandwidth mesurements"); - xbt_dynar_foreach(hosts,i,h1) { - - TRY { - amok_bw_saturate_start(h1->name,h1->port, - host_test,h1->port,//"Ginette" - msg_size,120); // sturation of the link with msg_size to compute a concurent bandwidth MA //MB - } CATCH(e) { - RETHROW0("Cannot ask hosts to saturate the link: %s"); - } - // gras_os_sleep(1.0); - - xbt_dynar_foreach(hosts,j,h2) { - if (i==j) continue; - - peer = gras_socket_client(h2->name,h2->port); - amok_bw_test(peer,buf_size,exp_size,msg_size,min_duration,&sec,&bw); - INFO6("Bandwidth between me and %s // measurement between me and %s (%d bytes in msgs of %d bytes) took %f sec, achieving %.3f kb/s", - h2->name,h1->name, - exp_size,msg_size, - sec,((double)bw)/1024.0); - + xbt_dynar_foreach(hosts, i, h1) { + + TRY { + amok_bw_saturate_start(h1->name, h1->port, host_test, h1->port, //"Ginette" + msg_size, 120); // sturation of the link with msg_size to compute a concurent bandwidth MA //MB + } + CATCH(e) { + RETHROW0("Cannot ask hosts to saturate the link: %s"); + } + // gras_os_sleep(1.0); + + xbt_dynar_foreach(hosts, j, h2) { + if (i == j) + continue; + + peer = gras_socket_client(h2->name, h2->port); + amok_bw_test(peer, buf_size, exp_size, msg_size, min_duration, &sec, + &bw); + INFO6 + ("Bandwidth between me and %s // measurement between me and %s (%d bytes in msgs of %d bytes) took %f sec, achieving %.3f kb/s", + h2->name, h1->name, exp_size, msg_size, sec, + ((double) bw) / 1024.0); + + } + amok_bw_saturate_stop(h1->name, h1->port, NULL, NULL); } - amok_bw_saturate_stop(h1->name,h1->port,NULL,NULL); -} - xbt_dynar_map(hosts,kill_buddy_dynar); + xbt_dynar_map(hosts, kill_buddy_dynar); xbt_dynar_free(&hosts); } -int maestro(int argc,char *argv[]) { +int maestro(int argc, char *argv[]) +{ - gras_init(&argc,argv); + gras_init(&argc, argv); amok_bw_init(); amok_hm_init(); - gras_socket_server(3333); /* only so that messages from the transport layer in gras identify us */ + gras_socket_server(3333); /* only so that messages from the transport layer in gras identify us */ //env_Pairwisehost_bw(argc,argv); //env_hosttohost_bw(argc,argv);