- 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("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);
- }
+ /* 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=0;l < PROC_MATRIX_SIZE-1 ;l++){
+ INFO1("mydataB=%p",mydataB);
+ gras_msg_send(socket_row[l],
+ gras_msgtype_by_name("dataB"),
+ &mydataB);
+ INFO1("mydataB=%p",mydataB);
+
+ xbt_matrix_free(bB);
+ INFO1("mydataB=%p",mydataB);
+ xbt_matrix_dump(mydataB,"myB",0,xbt_matrix_dump_display_double);
+ bB = xbt_matrix_new_sub(mydataB,
+ submatrix_size,submatrix_size,
+ 0,0,NULL);
+
+ INFO0("send my data B to my (vertical) neighbors");