Tadi saya sudah mengumpulkan tugas ini :
// Nama : Muhamad Rendra // NRP : G6410xxxx // Perkalian Matriks Dengan Collective Communication #include <stdio.h> #include <mpi.h>
int main (int argc, char **argv)
{
int size, my_rank, i , m[16],a[4],b[4], hasil ;
MPI_Init(&argc,&argv);
MPI_Comm_size (MPI_COMM_WORLD, &size);
MPI_Comm_rank (MPI_COMM_WORLD, &my_rank);
if (size != 4)
{
if(my_rank == 0)printf("Error : Jumlah proses harus 4\n"
;
MPI_Finalize();
return 0;
}
if (my_rank == 0)
for (i = 0;i<4;i++)
{
m[i] = 4*i+1;
m[i+4] = 4*i+2;
m[i+8] = 4*i+3;
m[i+12] = 4*i+4;
b[i]=i+17;
}
MPI_Scatter(m,4,MPI_INT,&a,4,MPI_INT,0,MPI_COMM_WORLD);
MPI_Bcast(b,4,MPI_INT,0,MPI_COMM_WORLD);
hasil = 0;
for (i=0;i<4;i++)
hasil+=a[i]*b[i];
MPI_Gather(&hasil,1,MPI_INT,b,1,MPI_INT,0,MPI_COMM_WORLD);
if(my_rank == 0)
printf("Hasilnya : \n%d\n%d\n%d\n%d\n",b[0],b[1],b[2],b[3]);
MPI_Finalize();
return 0;
}
// Nama : Muhamad Rendra
// NRP : G6410xxxx
// Perkalian Matriks Dengan Point To Point Communication
#include <stdio.h>
#include <mpi.h>
int main (int argc, char **argv)
{
int size, my_rank, i , m[16],a[4],b[4], hasil ;
MPI_Init(&argc,&argv);
MPI_Comm_size (MPI_COMM_WORLD, &size);
MPI_Comm_rank (MPI_COMM_WORLD, &my_rank);
MPI_Status stat;
if (size != 4)
{
if(my_rank == 0)printf(" Error : Jumlah proses harus 4\n"
;
MPI_Finalize();
return 0;
}
if (my_rank == 0)
{
for (i = 0;i<4;i++)
{
m[i] = 4*i+1;
m[i+4] = 4*i+2;
m[i+8] = 4*i+3;
m[i+12] = 4*i+4;
b[i]=i+17;
a[i] = m[i];
}
for (i = 1;i<4;i++)
{
MPI_Send(&m[i*4],4,MPI_INT,i,66,MPI_COMM_WORLD);
MPI_Send(b,4,MPI_INT,i,67,MPI_COMM_WORLD);
}
}
else
{
MPI_Recv(a,4,MPI_INT,0,66,MPI_COMM_WORLD,&stat);
MPI_Recv(b,4,MPI_INT,0,67,MPI_COMM_WORLD,&stat);
}
hasil = 0;
for (i=0;i<4;i++)
hasil+=a[i]*b[i];
if(my_rank == 0)
{
for(i=1;i<4;i++)
MPI_Recv(&b[i],1,MPI_INT,i,68,MPI_COMM_WORLD,&stat);
b[0] = hasil;
printf("Hasilnya : \n%d\n%d\n%d\n%d\n",b[0],b[1],b[2],b[3]);
}
else
MPI_Send(&hasil,1,MPI_INT,0,68,MPI_COMM_WORLD);
MPI_Finalize();
return 0;
}

8 comments
Comments feed for this article
Trackback link
http://rendra.net/2005/05/11/tugas-kuliah-pemrosesan-paralel/trackback/
May 12, 2005 at 11:38 am
Iman
lah ngapain dipost disini ren ???
May 12, 2005 at 7:24 pm
Rendra
lho? nggak apa apa dong, namanya juga weblog. Suka-suka yang punya dong.
May 13, 2005 at 4:35 pm
aafyn
bener….namanya juga blog…gw dukung Ren…lain kali postingnya minimal sehari sebelum dikumpulin biar bisa share….
May 13, 2005 at 6:47 pm
Rendra
hmm, gimana ya? ntar kalo ketauan dosen gimana?
May 17, 2005 at 9:33 pm
aafyn
ga pa pa katanya…..
June 3, 2005 at 3:23 pm
rachman
woi cah…..





mentang-mentang sepatu baru….
June 4, 2005 at 12:38 pm
Rendra
oke deh, tau yang nilai sig nya paling tinggi se IPB…
March 19, 2008 at 10:45 pm
dindut
Tau ga Ren kalo tugas PP tu dicontek dari bahan kuliah dosen luar negeri
. Gw pernah browsing2 trus nemu. Pertama kaget sih, kedua bersyukur, hahaha.