DistDir
Functions
Examples

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...
 

Detailed Description

Standalone example of applications using DistDir library

Function Documentation

◆ example_basic1()

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.

◆ example_basic10()

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.

◆ example_basic11()

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.

◆ example_basic2()

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.

◆ example_basic3()

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.

◆ example_basic4()

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.

◆ example_basic5()

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.

◆ example_basic6()

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.

◆ example_basic7()

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.

◆ example_basic8()

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.

◆ example_basic9()

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.

◆ example_multi_grid1()

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.