b13ff5ef82eeb623b8d71b8925059b67d0d70e53
[scilab.git] / scilab / modules / mpi / tests / unit_tests / mpi_send_boolean_sparse.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- MPI TEST -->
9 // This test sends a matrix of double [42,41] and, on each slave,
10 // it adds +1 to each element
11 // and send it back to the master
12 // 
13
14 MPI_Init();
15 rnk =    MPI_Comm_rank();
16 sizeNodes =    MPI_Comm_size();
17
18 assert_checkequal(MPI_Comm_size(), 2);
19
20 SLV = rnk;                // handy shortcuts, master is rank 0
21 Master = ~ SLV;            // slaves are all other
22
23 if Master
24
25     for slaveId = 1:sizeNodes-1
26         dense=[ %T, %F, %T, %F
27                 %F, %T, %F, %T
28                 %T, %F, %T, %F
29                 %F, %T, %F, %T];
30         value = sparse(dense);
31         MPI_Send(value, slaveId)
32     end
33
34     for slaveId = 1:sizeNodes-1
35         tag=0
36         valueBack=MPI_Recv(slaveId, tag);
37         assert_checkequal(valueBack, ~value);
38     end
39 else
40     rankSource=0;
41     tag=0;
42     value=MPI_Recv(rankSource, tag)
43     value = ~value;
44     
45     // Send back to the master
46     MPI_Send(value,0)
47
48 end
49
50 MPI_Finalize()
51