.


:




:

































 

 

 

 


.




, , MPI. , :

 

. main ( ):

 

MPI_Init(&argc, &argv);

 

, main . MPI- mpirun , MPI_Init.

 

. , , MPI:

 

MPI_Abort( , MPI);

 

MPI_Abort , . MPI_COMM_WORLD, ( ) , , -, . MPI_ERR_OTHER, , MPI.

 

:

 

MPI_Finalize();

 

, :

ü exit;

ü MPI_Init return main;

ü main void, return, MPI_Finalize() main.

 

: ( , ) :

 

int size, rank;

MPI_Comm_size(MPI_COMM_WORLD, &size);

MPI_Comm_rank(MPI_COMM_WORLD, &rank);

 

pi_mpi.c . , , MPI_Bcast MPI_Reduce. : MPI_Bcast ; MPI_Reduce ).

2.4. "-"

: , - . MPI , , :

 

1 :

 

int buf[10];

MPI_Send(buf, 5, MPI_INT, 1, 0, MPI_COMM_WORLD);

 

2 :

 

int buf[10];

MPI_Status status;

MPI_Recv(buf, 10, MPI_INT, 0, 0, MPI_COMM_WORLD, &status);

 

:

 

1. , 1 , 2 . , , , , , , , .

 

2. . , . MPI_Send , ( 5 ). MPI_Recv . - , - .

 

3. . MPI_Send MPI_Recv . MPI MPI_INT, MPI_CHAR, MPI_DOUBLE , MPI_Datatype. "MPI_" (int, char, double,...), . "" MPI , , , MPI .

 

4. , . MPI 0 ( -1). 0 1, 1 0.

 

5. . 0 32767, . , , , - -:

ü ;

ü , , . "#define" "const int".

 

6. (). MPI_Send MPI_Recv.

 

7. . : , -, .

2.5. : MPI_Sendrecv

- . ( ):

 

MPI_Comm_size(MPI_COMM_WORLD, &size);

MPI_Comm_rank(MPI_COMM_WORLD, &rank);

if(rank % 2) {

/*

* ,

*

*/

MPI_Send(..., (rank+1) % size,...);

MPI_Recv(..., (rank+size-1) % size,...);

} else {

/* :

* ,

* .

*/

MPI_Recv(..., (rank-1) % size,...);

MPI_Send(..., (rank+1) % size,...);

}

 

:

 

MPI_Send(..., anyRank,...); /* */

MPI_Recv(..., anyRank,...); /* */

 

, MPI , . - MPI_Sendrecv. 12 : 5 , MPI_Send, 7 , MPI_Recv. , IF-ELSE . , :

ü , ;

ü MPI_Sendrecv ; , "";

ü MPI_Sendrecv MPI_Send MPI_Recv, . "" .

 

MPI_Sendrecv_replace - . , count : , . :

ü ;

ü ;

ü .

 

MPI_Sendrecv_replace .

(deadlock, ) , , . :

 

-- 1 -- -- 2 --

Recv( 2) Recv( 1)

Send( 2) Send( 1)

 

: , ; ; ... SIG_KILL.

"" MPI :

ü ;

ü , ;

ü .

 

(). , - , ( , ). : , ; .

, / / , .





:


: 2016-07-29; !; : 421 |


:

:

. .
==> ...

1477 - | 1436 -


© 2015-2024 lektsii.org - -

: 0.012 .