DistDir
|
Functions | |
int | example_basic1 () |
Basic example of exchange between two 2D domain decomposition each using 2 MPI processes. More... | |
int | example_basic10 () |
Basic example of exchange between two 2D domain decomposition. More... | |
int | example_basic11 () |
Basic example of exchange between two 2D domain decomposition each using 2 MPI processes. More... | |
int | example_basic2 () |
Basic example of exchange between two 2D domain decomposition each using 2 MPI processes. More... | |
int | example_basic3 () |
Basic example of exchange between two 3D domain decomposition each using 2 MPI processes. More... | |
int | example_basic4 () |
Basic example of exchange between two 2D domain decomposition. More... | |
int | example_basic5 () |
Basic example of exchange between two 2D domain decomposition each using the same 2 MPI processes. More... | |
int | example_basic6 () |
Basic example of exchange between two 3D domain decomposition each using 2 MPI processes. More... | |
int | example_basic7 () |
Basic example of exchange between two 3D domain decomposition each using 2 MPI processes. More... | |
int | example_basic8 () |
Basic example of exchange with transform between two 3D domain decomposition each using 2 MPI processes. More... | |
int | example_basic9 () |
Basic example of exchange between two 2D domain decomposition. 2 MPI processes send to 1 MPI process. More... | |
int | example_multi_grid1 () |
Basic example of exchange between two 2D domain decomposition. More... | |
Standalone example of applications using DistDir library
int example_basic1 | ( | ) |
Basic example of exchange between two 2D domain decomposition each using 2 MPI processes.
The example uses a total of 4 MPI processes over a 4x4 global 2D domain. Processes 0,1 have the following domain decomposition:
Rank: 0 Indices: 0, 1, 4, 5, 8, 9, 12, 13 Rank: 1 Indices: 2, 3, 6, 7, 10, 11, 14, 15
Processes 2,3 have the following domain decomposition:
Rank: 2 Indices: 0, 1, 2, 3, 4, 5, 6, 7, 8 Rank: 3 Indices: 9, 10, 11, 12, 13, 14, 15
Ranks 0,1 send data to ranks 2,3
Exchange of integers and doubles are tested.
int example_basic10 | ( | ) |
Basic example of exchange between two 2D domain decomposition.
The example uses a total of 4 MPI processes over a 4x4 global 3D domain. Processes 0-3 have the following domain decomposition on the send side:
Rank: 0 Indices: 0, 1, 4, 5 Rank: 1 Indices: 2, 3, 6, 7 Rank: 2 Indices: 8, 9, 12, 13 Rank: 3 Indices: 10, 11, 14, 15
Processes 0 have the following domain decomposition on the receiver size:
Rank: 4 Indices: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Ranks 0-3 send data to ranks 0
Exchange of integers is tested.
int example_basic11 | ( | ) |
Basic example of exchange between two 2D domain decomposition each using 2 MPI processes.
The example uses a total of 4 MPI processes over a 4x4 global 2D domain. Processes 0,1 have the following domain decomposition:
Rank: 0 Indices: 15, 14, 11, 10, 7, 6, 3, 2 Rank: 1 Indices: 13, 12, 9, 8, 5, 4, 1, 0
Processes 2,3 have the following domain decomposition:
Rank: 2 Indices: 15, 14, 13, 12, 11, 10, 9, 8 Rank: 3 Indices: 7, 6, 5, 4, 3, 2, 1, 0
Ranks 0,1 send data to ranks 2,3
Exchange of integers and doubles are tested.
int example_basic2 | ( | ) |
Basic example of exchange between two 2D domain decomposition each using 2 MPI processes.
The example uses a total of 4 MPI processes over a 4x4 global 2D domain. Processes 0,1 have the following domain decomposition:
Rank: 0 Indices: 0, 2, 4, 6, 8, 10, 12, 14 Rank: 1 Indices: 1, 3, 5, 7, 9, 11, 13, 15
Processes 2,3 have the following domain decomposition:
Rank: 2 Indices: 0, 1, 2, 3, 4, 5, 6, 7 Rank: 3 Indices: 8, 9, 10, 11, 12, 13, 14, 15
Ranks 0,1 send data to ranks 2,3
Exchange of integers and doubles are tested.
int example_basic3 | ( | ) |
Basic example of exchange between two 3D domain decomposition each using 2 MPI processes.
The example uses a total of 4 MPI processes over a 4x4x2 global 3D domain. Processes 0,1 have the following domain decomposition:
Rank: 0 Indices: 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 Rank: 1 Indices: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31
Processes 2,3 have the following domain decomposition:
Rank: 2 Indices: 0, 1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, 20, 21, 22, 23 Rank: 3 Indices: 8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31
Ranks 0,1 send data to ranks 2,3
Exchange of integers is tested.
int example_basic4 | ( | ) |
Basic example of exchange between two 2D domain decomposition.
The example uses a total of 6 MPI processes over a 4x4 global 3D domain. Processes 0-3 have the following domain decomposition:
Rank: 0 Indices: 0, 1, 4, 5 Rank: 1 Indices: 2, 3, 6, 7 Rank: 2 Indices: 8, 9, 12, 13 Rank: 3 Indices: 10, 11, 14, 15
Processes 4,5 have the following domain decomposition:
Rank: 4 Indices: 0, 1, 4, 5, 8, 9, 12, 13 Rank: 5 Indices: 2, 3, 6, 7, 10, 11, 14, 15
Ranks 0-3 send data to ranks 4,5
Exchange of integers is tested.
int example_basic5 | ( | ) |
Basic example of exchange between two 2D domain decomposition each using the same 2 MPI processes.
The example uses a total of 2 MPI processes over a 4x4 global 2D domain. The transposition is tested, assuming that the MPI processes hold two domain decompositions transposed between each others. Processes 0,1 have the following first domain decomposition:
Rank: 0 Indices: 0, 1, 4, 5, 8, 9, 12, 13 Rank: 1 Indices: 2, 3, 6, 7, 10, 11, 14, 15
Processes 0,1 have the following second domain decomposition:
Rank: 0 Indices: 0, 1, 2, 3, 4, 5, 6, 7, 8 Rank: 1 Indices: 9, 10, 11, 12, 13, 14, 15
Ranks 0,1 send data from the first to the second domain decomposition.
Exchange of integers is tested.
int example_basic6 | ( | ) |
Basic example of exchange between two 3D domain decomposition each using 2 MPI processes.
The example uses a total of 4 MPI processes over a 4x4x2 global 3D domain. The example should give the same results of example_basic3 but a different method is used to generate the mapping. Processes 0,1 have the following domain decomposition:
Rank: 0 Indices: 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 Rank: 1 Indices: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31
Processes 2,3 have the following domain decomposition:
Rank: 2 Indices: 0, 1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, 20, 21, 22, 23 Rank: 3 Indices: 8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31
Ranks 0,1 send data to ranks 2,3
Exchange of integers is tested.
int example_basic7 | ( | ) |
Basic example of exchange between two 3D domain decomposition each using 2 MPI processes.
The example uses a total of 4 MPI processes over a 4x4x5 global 3D domain. Processes 0-3 have the following domain decomposition:
Rank: 0 Indices: 0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29 Rank: 1 Indices: 2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27, 30, 31 Rank: 2 Indices: 32, 33, 36, 37, 40, 41, 44, 45, 48, 49, 52, 53, 56, 57, 60, 61, 64, 65, 68, 69, 72, 73, 76, 77 Rank: 3 Indices: 34, 35, 38, 39, 42, 43, 46, 47, 50, 51, 54, 55, 58, 59, 62, 63, 66, 67, 70, 71, 74, 75, 78, 79
Processes 4-7 have the following domain decomposition:
Rank: 4 Indices: 0, 1, 2, 3, 4, 5, 6, 7 Rank: 5 Indices: 8, 9, 10, 11, 12, 13, 14, 15 Rank: 6 Indices: 16, 17, 18, 19, 20, 21, 22, 23, 32, 33, 34, 35, 36, 37, 38, 39, 48, 49, 50, 51, 52, 53, 54, 55, 64, 65, 66, 67, 68, 69, 70, 71 Rank: 7 Indices: 24, 25, 26, 27, 28, 29, 30, 31, 40, 41, 42, 43, 44, 45, 46, 47, 56, 57, 58, 59, 60, 61, 62, 63, 72, 73, 74, 75, 76, 77, 78 79
Ranks 0-3 send data to ranks 4-7
Exchange of integers is tested.
int example_basic8 | ( | ) |
Basic example of exchange with transform between two 3D domain decomposition each using 2 MPI processes.
The example uses a total of 4 MPI processes over a 4x4 global 2D domain. Processes 0,1 have the following domain decomposition:
Rank: 0 Indices: 0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29 Rank: 1 Indices: 2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27, 30, 31
And they use cache blocking memory layout (nblocks, nlevels, nproma) with nproma equal to 4.
Processes 2,3 have the following domain decomposition:
Rank: 2 Indices: 0, 1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, 20, 21, 22, 23 Rank: 3 Indices: 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31
Ranks 0,1 send data to ranks 2,3
Exchange of integers is tested.
int example_basic9 | ( | ) |
Basic example of exchange between two 2D domain decomposition. 2 MPI processes send to 1 MPI process.
The example uses a total of 3 MPI processes over a 4x4 global 2D domain. Processes 0,1 have the following domain decomposition:
Rank: 0 Indices: 0, 2, 4, 6, 8, 10, 12, 14 Rank: 1 Indices: 1, 3, 5, 7, 9, 11, 13, 15
Processes 2 have the following domain decomposition:
Rank: 2 Indices: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Ranks 0,1 send data to ranks 2
Exchange of integers are tested.
int example_multi_grid1 | ( | ) |
Basic example of exchange between two 2D domain decomposition.
The example uses a total of 8 MPI processes over two blocks of 4x4 global domain. Processes 0-3 have the following domain decomposition on the send side:
Rank: 0 Indices: 0, 1, 4, 5 Rank: 1 Indices: 2, 3, 6, 7 Rank: 2 Indices: 8, 9, 12, 13 Rank: 3 Indices: 10, 11, 14, 15
Processes 0 have the following domain decomposition on the receiver size:
Rank: 4 Indices: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Ranks 0-3 send data to ranks 0
Processes 4-7 has the same domain decomposition on the send side of processes 0-3, but on a different domain block and process 4 has the same domain decomposition on the receiver side of process 0 but on a different domain block.
Exchange of integers is tested.