Tugas Kuliah Pemrosesan Paralel

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&quot;);
      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&quot;);
    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;
}

lah ngapain dipost disini ren ???

lho? nggak apa apa dong, namanya juga weblog. Suka-suka yang punya dong.

bener….namanya juga blog…gw dukung Ren…lain kali postingnya minimal sehari sebelum dikumpulin biar bisa share…. :)

hmm, gimana ya? ntar kalo ketauan dosen gimana?

ga pa pa katanya….. :D

woi cah….. :):)
mentang-mentang sepatu baru….
:d:d:d:d

oke deh, tau yang nilai sig nya paling tinggi se IPB…=))

Tau ga Ren kalo tugas PP tu dicontek dari bahan kuliah dosen luar negeri :D . Gw pernah browsing2 trus nemu. Pertama kaget sih, kedua bersyukur, hahaha.