Bu Blogda Ara

7 Şubat 2010 Pazar

send a subvector from process 0 to process 1

/* count.c -- send a subvector from process 0 to process 1
*
* Input: none
* Output: contents of vector received by process 1
*
* Note: Program should only be run with 2 processes.
*
* See Chap 6, pp. 89 & ff. in PPMPI
*/
#include
#include "mpi.h"

main(int argc, char* argv[]) {
float vector[100];
MPI_Status status;
int p;
int my_rank;
int i;

MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &p);
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);

/* Initialize vector and send */
if (my_rank == 0) {
for (i = 0; i < 50; i++)
vector[i] = 0.0;
for (i = 50; i < 100; i++)
vector[i] = 1.0;
MPI_Send(vector+50, 50, MPI_FLOAT, 1, 0,
MPI_COMM_WORLD);
} else { /* my_rank == 1 */
MPI_Recv(vector+50, 50, MPI_FLOAT, 0, 0,
MPI_COMM_WORLD, &status);
for (i = 50; i < 100; i++)
printf("%3.1f ",vector[i]);
printf("\n");
}

MPI_Finalize();
} /* main */

Hiç yorum yok:

Yorum Gönder