- //xbt_matrix_dump(B,"B:seq",0,xbt_matrix_dump_display_double);
-
-
- /* Get arguments and create sockets */
- port=atoi(argv[1]);
- //scatter();
- //scatter_parl();
- //multiplication();
- //gather();
- //display(A);
- /************************* Init Data Send *********************************/
- int step_ack;
- gras_os_sleep(5);
-
- for( i=1;i<argc && i<=SLAVE_COUNT;i++){
- grid[i-1]=xbt_host_from_string(argv[i]);
- socket[i-1]=gras_socket_client(grid[i-1]->name,grid[i-1]->port);
-
- INFO2("Connected to %s:%d.",grid[i-1]->name,grid[i-1]->port);
+ /* Create the connexions */
+ xbt_assert0(argc>1, "Usage: master <port>");
+ gras_socket_server(atoi(argv[1]));
+ peers=amok_pm_group_new("pmm");
+ INFO0("Wait for peers for 7 sec");
+ gras_msg_handleall(7); /* friends, we're ready. Come and play */
+ INFO1("Got %ld pals",xbt_dynar_length(peers));
+
+ for (i=0;
+ i<xbt_dynar_length(peers) && i<SLAVE_COUNT;
+ 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);
+ }
+ xbt_assert2(i==SLAVE_COUNT,
+ "Not enough slaves for this setting (got %d of %d). Change the deployment file",
+ i,SLAVE_COUNT);
+
+ /* Kill surnumerous slaves */
+ for (i=SLAVE_COUNT; i<xbt_dynar_length(peers); ) {
+ xbt_peer_t h;
+
+ xbt_dynar_get_cpy(peers,i,&h);
+ INFO2("Killing %s:%d", h->name, h->port);
+ amok_pm_kill_hp(h->name,h->port);
+ free(h);