+ /* Initialize data matrices */
+ A = xbt_matrix_double_new_id(DATA_MATRIX_SIZE,DATA_MATRIX_SIZE);
+ B = xbt_matrix_double_new_seq(DATA_MATRIX_SIZE,DATA_MATRIX_SIZE);
+ C = xbt_matrix_double_new_zeros(DATA_MATRIX_SIZE,DATA_MATRIX_SIZE);
+
+ /* Create the connexions */
+ xbt_assert0(argc>1, "Usage: master <port>");
+ gras_socket_server(atoi(argv[1]));
+ peers=amok_pm_group_new("pmm");
+
+ /* friends, we're ready. Come and play */
+ if (gras_if_RL()) {
+ init_delay = 5;
+ } else {
+ init_delay = 15; /* no idea why I have to wait that long in simulation */
+ }
+ INFO1("Wait for peers for %.0f sec",init_delay);
+ gras_msg_handleall(init_delay);
+ 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_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);