You are on page 1of 11

UTS Kapita Selekta | Anggit Satrio PM - 108091000068 1.

#include <mpi.h> #include <stdio.h> int main(argc,argv) int argc; char *argv[]; { int rank, rc; rc = MPI_Init(&argc,&argv); if (rc != MPI_SUCCESS) { printf ("Error starting MPI program. Terminating.\n"); MPI_Abort(MPI_COMM_WORLD, rc); } MPI_Comm_rank(MPI_COMM_WORLD,&rank); printf ("prosesor - %d , Pemrograman Paralel itu sangat mudah\n",rank); MPI_Finalize(); }

2.
#include <mpi.h> #include <stdio.h> int main (int argc, char *argv[]){ int rank; char i[256]="Teruskan pesan ini ke 15 prosesor lainnya"; MPI_Init (&argc, &argv); MPI_Comm_rank (MPI_COMM_WORLD, &rank);

UTS Kapita Selekta | Anggit Satrio PM - 108091000068

MPI_Bcast ((void *)&i, 1, MPI_CHAR, 0, MPI_COMM_WORLD); printf (" broadcast prosesor - %d | %s", rank, i); MPI_Barrier (MPI_COMM_WORLD); MPI_Finalize(); return 0; }

3.
#include <mpi.h> #include <stdio.h> int main (int argc, char *argv[]){ int rank,len; char i[256]="Teruskan pesan ini ke 15 prosesor lainnya"; char name[MPI_MAX_PROCESSOR_NAME]; int version, sub_version; MPI_Init (&argc, &argv); MPI_Comm_rank (MPI_COMM_WORLD, &rank); MPI_Get_processor_name(name, &len); MPI_Get_version(&version, &sub_version); MPI_Bcast ((void *)&version, 1, MPI_INT, 0, MPI_COMM_WORLD); MPI_Bcast ((void *)&name, 2, MPI_CHAR, 0, MPI_COMM_WORLD); printf (" broadcast -> prosesor %d dengan name,version); nama= %s dan versi=%d\n", rank,

UTS Kapita Selekta | Anggit Satrio PM - 108091000068

MPI_Barrier (MPI_COMM_WORLD); MPI_Finalize(); return 0; }

4.
#include <mpi.h> #include <stdio.h> int main (int argc, char *argv[]){ int rank,angka,hasil,size,i; MPI_Status s; MPI_Init (&argc, &argv); MPI_Comm_size (MPI_COMM_WORLD, &size); MPI_Comm_rank (MPI_COMM_WORLD, &rank); if(rank==0){ angka=5; MPI_Bcast ((void *)&angka, 1, MPI_INT, 0, MPI_COMM_WORLD); printf ("broadcast -> prosesor %d mengirimkan data = %d\n", rank,angka); printf ("lalu...\n"); for (i = 1; i < size; i++){ MPI_Recv ((void *)&angka, 1, MPI_INT, i, 6000, MPI_COMM_WORLD, &s); printf ("Prosesor ke-%d mengirimkan data = %d\n", i, angka); } }

UTS Kapita Selekta | Anggit Satrio PM - 108091000068


else{ angka=5; hasil=angka+rank; MPI_Send ((void *)&hasil, 1, MPI_INT, 0, 6000, MPI_COMM_WORLD); } MPI_Barrier (MPI_COMM_WORLD); MPI_Finalize(); return 0; }

5.
#include <mpi.h> #include <stdio.h> #include <windows.h> int main (int argc, char *argv[]) { double t1,t2; int rank,angka,hasil,size,i,k;

MPI_Status s; MPI_Init (&argc, &argv); MPI_Comm_size (MPI_COMM_WORLD, &size); MPI_Comm_rank (MPI_COMM_WORLD, &rank); if(rank==0){ angka=5; t1=MPI_Wtime(); MPI_Bcast ((void *)&angka, 1, MPI_INT, 0, MPI_COMM_WORLD); printf (" broadcast -> prosesor %d mengirimkan data = %d\n", rank,angka); printf ("lalu...\n");

UTS Kapita Selekta | Anggit Satrio PM - 108091000068


for (i = 1; i < size; i++) { MPI_Recv ((void *)&angka, 1, MPI_INT, i, 6000, MPI_COMM_WORLD, &s); %d dengan waktu : %1.15f\n", i,

t2=MPI_Wtime(); printf ("Prosesor ke-%d mengirimkan data = angka,t2-t1); } }else{

for(k=0;k<5;k++){ angka=5; hasil=angka+rank; MPI_Send ((void *)&hasil, 1, MPI_INT, 0, 6000, MPI_COMM_WORLD); } } MPI_Barrier (MPI_COMM_WORLD); MPI_Finalize(); return 0; }

6.
#include #include #include #include <mpi.h> <stdio.h> <windows.h> <math.h>

int main (int argc, char *argv[]){ int rank,angka,size,i=1,k=1,a,b;

UTS Kapita Selekta | Anggit Satrio PM - 108091000068


float hasil; MPI_Status s; MPI_Init (&argc, &argv); MPI_Comm_size (MPI_COMM_WORLD, &size); MPI_Comm_rank (MPI_COMM_WORLD, &rank); if(rank==0){ for (i = 1; i < size; i++){ a=rand()%26; b=rand()%26; MPI_Send ((void *)&a, 1, MPI_INT, i, 6000, MPI_COMM_WORLD); MPI_Send ((void *)&b, 2, MPI_INT, i, 6000, MPI_COMM_WORLD); printf ("Prosesor ke-%d mengirimkan data ke-%d berupa %d dan %d\n", rank,i, a,b); } }else{ MPI_Recv ((void *)&a, 1, MPI_INT, 0, 6000, MPI_COMM_WORLD, &s); MPI_Recv ((void *)&b, 2, MPI_INT, 0, 6000, MPI_COMM_WORLD, &s); hasil=2*(sin(0.5)*(a+b))*(cos(0.5)*(a+b)); printf("hasil dari rumus trid identity dari procesor %d adalah %1.2f\n",rank,hasil); } // Wait for every process to reach this code MPI_Barrier (MPI_COMM_WORLD); MPI_Finalize(); return 0; }

UTS Kapita Selekta | Anggit Satrio PM - 108091000068

7.
#include #include #include #include <mpi.h> <stdio.h> <windows.h> <math.h>

int main (int argc, char *argv[]){ int rank,angka,size,i=1,k=1,a,b; float hasil; double t1,t2; MPI_Status s; MPI_Init (&argc, &argv); MPI_Comm_size (MPI_COMM_WORLD, &size); MPI_Comm_rank (MPI_COMM_WORLD, &rank); t1=MPI_Wtime(); if(rank==0){ for (i = 1; i < size; i++){ a=rand()%26; b=rand()%26; MPI_Send ((void *)&a, 1, MPI_INT, i, 6000, MPI_COMM_WORLD); MPI_Send ((void *)&b, 2, MPI_INT, i, 6000, MPI_COMM_WORLD); printf ("Prosesor ke-%d mengirimkan data ke-%d berupa %d dan %d\n", rank,i, a,b); } for(i=1;i<size;i++){ MPI_Recv ((void *)&hasil, 1, MPI_FLOAT, i, 6000, MPI_COMM_WORLD, &s); t2=MPI_Wtime();

UTS Kapita Selekta | Anggit Satrio PM - 108091000068

printf("Hasil dari pengiriman dari procesor %d adalah %1.3f dengan waktu %1.5f\n",i,hasil,t2-t1); } } else{ MPI_Recv ((void *)&a, 1, MPI_INT, 0, 6000, MPI_COMM_WORLD, &s); MPI_Recv ((void *)&b, 2, MPI_INT, 0, 6000, MPI_COMM_WORLD, &s); hasil=2*(sin(0.5)*(a+b))*(cos(0.5)*(a+b)); printf("hasil dari rumus trid identity dari procesor %d adalah %1.2f\n",rank,hasil); MPI_Send ((void *)&hasil, 1, MPI_FLOAT, 0, 6000, MPI_COMM_WORLD); printf("Kirim ke procesor 0 data hasil = %1.2f\n",hasil); } MPI_Barrier (MPI_COMM_WORLD); MPI_Finalize(); return 0; }

8.
#include #include #include #include <mpi.h> <stdio.h> <windows.h> <math.h>

UTS Kapita Selekta | Anggit Satrio PM - 108091000068

int main (int argc, char *argv[]){ int rank,angka,size,i=1,k=1,a,b; float hasil; MPI_Status s; MPI_Init (&argc, &argv); MPI_Comm_size (MPI_COMM_WORLD, &size); MPI_Comm_rank (MPI_COMM_WORLD, &rank); if(rank==0){ for (i = 1; i < size; i++){ a=rand()%26; b=rand()%26; MPI_Send ((void *)&a, 1, MPI_INT, i, 6000, MPI_COMM_WORLD); MPI_Send ((void *)&b, 2, MPI_INT, i, 6000, MPI_COMM_WORLD); printf ("Prosesor ke-%d mengirimkan data ke-%d berupa %d dan %d\n", rank,i, a,b); } } else{ MPI_Recv ((void *)&a, 1, MPI_INT, 0, 6000, MPI_COMM_WORLD, &s); MPI_Recv ((void *)&b, 2, MPI_INT, 0, 6000, MPI_COMM_WORLD, &s); hasil=2*(cos(0.5)*(a+b))*(cos(0.5)*(a-b)); printf("hasil dari rumus trid identity 2 dari procesor %d adalah %1.2f\n",rank,hasil); } MPI_Barrier (MPI_COMM_WORLD); MPI_Finalize(); return 0; }

UTS Kapita Selekta | Anggit Satrio PM - 108091000068

9.
#include #include #include #include <mpi.h> <stdio.h> <windows.h> <math.h>

int main (int argc, char *argv[]){ int rank,angka,size,i=1,k=1,a,b; float hasil; double t1,t2; MPI_Status s; MPI_Init (&argc, &argv); MPI_Comm_size (MPI_COMM_WORLD, &size); MPI_Comm_rank (MPI_COMM_WORLD, &rank); t1=MPI_Wtime(); if(rank==0){ for (i = 1; i < size; i++){ a=rand()%26; b=rand()%26; MPI_Send ((void *)&a, 1, MPI_INT, i, 6000, MPI_COMM_WORLD); MPI_Send ((void *)&b, 2, MPI_INT, i, 6000, MPI_COMM_WORLD); printf ("Prosesor ke-%d mengirim data ke = %d\n", rank,i, a,b); } for(i=1;i<size;i++){ MPI_Recv ((void *)&hasil, 1, MPI_FLOAT, i, 6000, MPI_COMM_WORLD, &s); t2=MPI_Wtime(); %d berupa = %d dan

UTS Kapita Selekta | Anggit Satrio PM - 108091000068


printf("Hasil dari pengiriman dari procesor %d adalah %1.3f dengan waktu %1.5f\n",i,hasil,t2-t1); } } else{ MPI_Recv ((void *)&a, 1, MPI_INT, 0, 6000, MPI_COMM_WORLD, &s); MPI_Recv ((void *)&b, 2, MPI_INT, 0, 6000, MPI_COMM_WORLD, &s); hasil=2*(cos(0.5)*(a+b))*(cos(0.5)*(a-b)); printf("hasil dari rumus trid identity 2 dari procesor %d adalah %1.2f\n",rank,hasil); MPI_Send ((void *)&hasil, 1, MPI_FLOAT, 0, 6000, MPI_COMM_WORLD); printf("Kirim ke procesor 0 data hasil = %1.2f\n",hasil); } MPI_Barrier (MPI_COMM_WORLD); MPI_Finalize(); return 0; }

You might also like