Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ============================================================================
- Name : labor6.c
- Author : dan
- Version :
- Copyright : Your copyright notice
- Description : Hello MPI World in C
- ============================================================================
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- #include "mpi.h"
- int main(int argc, char **argv) {
- int masca, dest, sursa,doi_la_k,k;
- int count, myrank;
- /* tag for messages */
- char mesaj[20]="Hello";/* storage for message */
- MPI_Init(&argc, &argv);
- MPI_Status status;
- MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
- MPI_Comm_size(MPI_COMM_WORLD, &count);
- masca=(1<<3)-1;
- /* initializeaza cu 1 toti bitii mastii */
- for (k=2;k>=0;k--) {
- doi_la_k=(1<<k);
- masca=(masca^doi_la_k);
- /* seteaza pe 0 al k-lea bit al mastii */
- if ((myrank & masca)==0) {
- /* daca ultimii k biti sunt 0 */
- if ((myrank & doi_la_k)==0) {
- dest=myrank^doi_la_k;
- MPI_Send(mesaj, strlen(mesaj) + 1, MPI_CHAR, dest, 99,MPI_COMM_WORLD);
- printf("%d trimite catre %d \n", myrank,dest);
- } else {
- sursa = myrank^doi_la_k;
- MPI_Recv(mesaj, strlen(mesaj) + 1, MPI_CHAR, sursa, 99,MPI_COMM_WORLD, &status);
- }
- }
- }
- MPI_Finalize();
- return 0;
- }
Add Comment
Please, Sign In to add comment