- INFO1("Receive a step message from master: step = %d ",step);
-
- if (step < PROC_MATRIX_SIZE ){
- /* a line brodcast */
- gras_os_sleep(3); // IL FAUT EXPRIMER LE TEMPS D'ATTENTE EN FONCTION DE "SLAVE_COUNT"
- if(myline==step){
- INFO2("step(%d) = Myline(%d)",step,myline);
- for (l=1;l < PROC_MATRIX_SIZE ;l++){
- gras_msg_send(socket_row[l-1], gras_msgtype_by_name("dataB"), &mydataB);
- bB=mydataB;
- INFO1("send my data B (%.3g) to my (vertical) neighbors",bB);
- }
- }
- if(myline != step){
- INFO2("step(%d) <> Myline(%d)",step,myline);
- TRY {
- gras_msg_wait(600,gras_msgtype_by_name("dataB"),
- &from,&bB);
- } CATCH(e) {
- RETHROW0("I Can't get a data message from line : %s");
- }
- INFO2("Receive data B (%.3g) from my neighbor: %s",bB,gras_socket_peer_name(from));
- }
- /* a row brodcast */
- if(myrow==step){
- for (l=1;l < PROC_MATRIX_SIZE ;l++){
- gras_msg_send(socket_line[l-1],gras_msgtype_by_name("dataA"), &mydataA);
- bA=mydataA;
- INFO1("send my data A (%.3g) to my (horizontal) neighbors",bA);
- }
- }
-
- if(myrow != step){
- TRY {
- gras_msg_wait(1200,gras_msgtype_by_name("dataA"),
- &from,&bA);
- } CATCH(e) {
- RETHROW0("I Can't get a data message from row : %s");
- }
- INFO2("Receive data A (%.3g) from my neighbor : %s ",bA,gras_socket_peer_name(from));
- }
- bC+=bA*bB;
- INFO1(">>>>>>>> My BC = %.3g",bC);
+ xbt_host_free(assignment.line[i]);
+ }
+ for (i=0,j=0 ; i<PROC_MATRIX_SIZE ; i++){
+ if (strcmp(gras_os_myname(),assignment.row[i]->name)) {
+ socket_row[j]=gras_socket_client(assignment.row[i]->name,
+ assignment.row[i]->port);
+ j++;
+ }
+ xbt_host_free(assignment.row[i]);
+ }