X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/11362ada741bf755963d71a8236fa63d88726b96..ef9f1f9d8218d82bb3c1d55ca3fd53df9a723edb:/examples/gras/pmm/pmm.c diff --git a/examples/gras/pmm/pmm.c b/examples/gras/pmm/pmm.c index dc7da5bd15..7d20b7c8d2 100755 --- a/examples/gras/pmm/pmm.c +++ b/examples/gras/pmm/pmm.c @@ -10,13 +10,13 @@ #include "gras.h" #include "xbt/matrix.h" -#include "amok/hostmanagement.h" +#include "amok/peermanagement.h" #define PROC_MATRIX_SIZE 3 #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"); @@ -33,8 +33,8 @@ typedef struct s_result result_t; GRAS_DEFINE_TYPE(s_pmm_assignment,struct s_pmm_assignment { int linepos; int rowpos; - xbt_host_t line[NEIGHBOR_COUNT]; - xbt_host_t row[NEIGHBOR_COUNT]; + xbt_peer_t line[NEIGHBOR_COUNT]; + xbt_peer_t row[NEIGHBOR_COUNT]; xbt_matrix_t A GRAS_ANNOTE(subtype,double); xbt_matrix_t B GRAS_ANNOTE(subtype,double); }); @@ -86,13 +86,13 @@ int master (int argc,char *argv[]) { gras_socket_t from; - xbt_dynar_t hosts; /* group of slaves */ - xbt_host_t grid[SLAVE_COUNT]; /* The slaves as an array */ + xbt_dynar_t peers; /* group of slaves */ + xbt_peer_t grid[SLAVE_COUNT]; /* The slaves as an array */ gras_socket_t socket[SLAVE_COUNT]; /* sockets for brodcast to slaves */ /* Init the GRAS's infrastructure */ gras_init(&argc, argv); - amok_hm_init(); + amok_pm_init(); register_messages(); /* Initialize data matrices */ @@ -101,17 +101,21 @@ 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])); - hosts=amok_hm_group_new("pmm"); - INFO0("Wait for peers for 10 sec"); - gras_msg_handleall(10); /* friends, we're ready. Come and play */ - INFO1("Got %ld pals",xbt_dynar_length(hosts)); + 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; - iname,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); } @@ -120,11 +124,12 @@ int master (int argc,char *argv[]) { i,SLAVE_COUNT); /* Kill surnumerous slaves */ - 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); } @@ -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; iname, assignment.line[i]->port); - xbt_host_free(assignment.line[i]); + xbt_peer_free(assignment.line[i]); } for (i=0 ; iname, assignment.row[i]->port); - xbt_host_free(assignment.row[i]); + xbt_peer_free(assignment.row[i]); } for (step=0; step