- INFO0("XXXXXXXXXXXXXXXXXXXXXX begin Multiplication");
-
- for (step=0; step < PROC_MATRIX_SIZE; step++){
- for (i=0; i< SLAVE_COUNT; i++){
- TRY {
- gras_msg_send(socket[i], gras_msgtype_by_name("step"), &step);
- } CATCH(e) {
- gras_socket_close(socket[i]);
- RETHROW0("Unable to send the msg : %s");
- }
- }
- INFO1("XXXXXX Next step (%d)",step);
-
- /* wait for computing and slave messages exchange */
-
- i=0;
- while ( i< SLAVE_COUNT) {
- TRY {
- gras_msg_wait(1300,gras_msgtype_by_name("step_ack"),&from,&step_ack);
- } CATCH(e) {
- RETHROW0("Can't get a Ack step message from slave : %s");
- }
- i++;
- DEBUG3("Got step ack from %s (got %d of %d)",
- gras_socket_peer_name(from), i, SLAVE_COUNT);
- }
- }
- /********************************* gather ***************************************/
-
- ask_result=0;
- for( i=1;i< argc;i++){
- gras_msg_send(socket[i],gras_msgtype_by_name("ask_result"),&ask_result);
- INFO1("Send (Ask Result) message to %s",gras_socket_peer_name(socket[i]));
- }