X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b511b8e4a7d720584d9d9a72b874709869bc10d0..97ca6bcf28feeeef86e2db040ee58b9ad24be474:/examples/gras/pmm/pmm.c diff --git a/examples/gras/pmm/pmm.c b/examples/gras/pmm/pmm.c index b41dfad43f..35253ab7b4 100755 --- a/examples/gras/pmm/pmm.c +++ b/examples/gras/pmm/pmm.c @@ -16,7 +16,7 @@ #define NEIGHBOR_COUNT PROC_MATRIX_SIZE - 1 #define SLAVE_COUNT (PROC_MATRIX_SIZE*PROC_MATRIX_SIZE) -#define DATA_MATRIX_SIZE 9 +#define DATA_MATRIX_SIZE 18 const int submatrix_size = DATA_MATRIX_SIZE/PROC_MATRIX_SIZE; XBT_LOG_NEW_DEFAULT_CATEGORY(pmm,"Parallel Matrix Multiplication"); @@ -92,7 +92,7 @@ int master (int argc,char *argv[]) { /* Init the GRAS's infrastructure */ gras_init(&argc, argv); - amok_hm_init(); + amok_pm_init(); register_messages(); /* Initialize data matrices */ @@ -101,10 +101,13 @@ int master (int argc,char *argv[]) { C = xbt_matrix_double_new_zeros(DATA_MATRIX_SIZE,DATA_MATRIX_SIZE); /* Create the connexions */ + xbt_assert0(argc>1, "Usage: master "); gras_socket_server(atoi(argv[1])); - peers=amok_hm_group_new("pmm"); - INFO0("Wait for peers for 10 sec"); - gras_msg_handleall(10); /* friends, we're ready. Come and play */ + peers=amok_pm_group_new("pmm"); + + /* friends, we're ready. Come and play */ + INFO0("Wait for peers for 5 sec"); + gras_msg_handleall(5); INFO1("Got %ld pals",xbt_dynar_length(peers)); for (i=0; @@ -112,6 +115,7 @@ int master (int argc,char *argv[]) { i++) { xbt_dynar_get_cpy(peers,i,&grid[i]); + INFO2("Connecting to %s:%d.",grid[i]->name,grid[i]->port); socket[i]=gras_socket_client(grid[i]->name,grid[i]->port); INFO2("Connected to %s:%d.",grid[i]->name,grid[i]->port); } @@ -123,8 +127,9 @@ int master (int argc,char *argv[]) { for (i=SLAVE_COUNT; iname,h->port); + xbt_dynar_remove_at(peers,i,&h); + INFO2("Too much slaves. Killing %s:%d", h->name, h->port); + amok_pm_kill_hp(h->name,h->port); free(h); } @@ -167,7 +172,7 @@ int master (int argc,char *argv[]) { line++; } - gras_msg_send(socket[i],gras_msgtype_by_name("pmm_slave"),&assignment); + gras_msg_send(socket[i],"pmm_slave",&assignment); xbt_matrix_free(assignment.A); xbt_matrix_free(assignment.B); } @@ -176,7 +181,7 @@ int master (int argc,char *argv[]) { /* Retrieve the results */ for( i=0;i< SLAVE_COUNT;i++){ - gras_msg_wait(6000,gras_msgtype_by_name("result"),&from,&result); + gras_msg_wait(6000,"result",&from,&result); VERB2("%d slaves are done already. Waiting for %d",i+1, SLAVE_COUNT); xbt_matrix_copy_values(C,result.C, submatrix_size,submatrix_size, submatrix_size*result.linepos, @@ -193,7 +198,7 @@ int master (int argc,char *argv[]) { INFO1("Matrix size too big (%d>30) to be displayed here",DATA_MATRIX_SIZE); } - amok_hm_group_shutdown ("pmm"); /* Ok, we're out of here */ + amok_pm_group_shutdown ("pmm"); /* Ok, we're out of here */ for(i=0; i