;
Tampilkan postingan dengan label MPI Programming. Tampilkan semua postingan
Tampilkan postingan dengan label MPI Programming. Tampilkan semua postingan

Kompilasi Kode MPI di Linux

Diposting oleh wiratama Senin, Juni 18, 2012 0 komentar

Pada linux Ubuntu kita dapat melakuakn kompilasi kode MPI melalui konsol command line.Arahkan ke folder dimana file namafile.c berada.Selanjutnya dengan menggunakan mpicc,kita dapat melakukan kompilasi kode MPI tersebut.Cara menggunakan mpicc sama seperti menggunakan gcc karena mpicc dibuat sebagai wrapper untuk MPI,Berikut ini perintah

      mpicc namafile.c -o namafile -Wall
ini menunjukan bahwa kita melakukan kompilasi file namafile.c dan output filenya adalah namafile.Tanda -Wall untuk menampilakn semua peringatan yang dikeluarkan oleh kompilator.

Mengenal Tipe Data MPI

Diposting oleh wiratama 0 komentar

Tipe data MPI banyak digunakan untuk melakuakn pengiriman dan penerimaan data dari node cluster pada mesin paralel.Tipe data MPI dapat ditulis seperti berikut:

      MPI_Datatype dataku;
berikut merupaka salah satu contoh dari MPI_Datatype yang digunakan untuk mengirimkan kumpulan data array keseluruh node:

float a[size][size]={1.0,2.0.,3.0,4.0,5.0,6.0,7.0,8.0,9.0};
  MPI_Datatype rowtype;
for (i=0; i< numtask; i++){
MPI_Send(&a[i][0],1,rowtype,i,1,MPI_COMM_WORLD)
}

Secara umum telah menyediakan tipe data sesuai dengan implementasi dalam bahasa pemrograman.Beberapa tipe data yang disediakan dapat dikategorikan,yaitu:

  • Tipe data Dasar
  • Tipe Data Turunan
Tipe data Dasar
Tipe data dasar dapat digunakan secara langsung pada kode program kita.Tipe data berikut contoh tipe data MPI untuk bahasa C

Tipe dasar MPI                                                       Pada Bahasa C
MPI_CHAR                                                             signed char
MPI_SHORT                                                           signed short int
MPI_INT                                                                 signed int
MPI_LONG                                                             signed long int
MPI_UNSIGNED_CHAR                                      unsigned char
MPI_UNSIGNED_SHORT                                    unsigned short 
MPI_UNSIGNED                                                   unsigned int
MPI_FLOAT                                                          float
MPI_DOUBLE                                                      double
MPI_LONG_DOUBLE                                         long double 
MPI_BYTE  
MPI_UNSIGNED_LONG                                     unsigned long int
MPI_PACKED  

Berikut ini merupakan contoh penggunaannya untuk menerima dan mengirim data melalui MPI_Recv dan MPI_Send:

        INT token,total=100;
        DOUBLE array[100];
        MPI_Recv(&token,1,MPI_INT,1,0,MPI_COMM_WORLD,NULL);
        MPI_Send(array,total,MPI_DOUBLE,1,0,MPI_COMM_WORLD);

Pada kode diatas,MPI Recv menerima dan bertipe MPI_INT sedangkan pada MPI_Send kode diatas melakukan pengiriman array data bertipe DOUBLE maka kita memberikan tipe data MPI_DOUBLE pada MPI_Send.
data yang dibuat dari tipe  data dasar MPi.Implementasi paling mudah adalah memanfaatkan data array atau struct,Misalkan mempunyai tipe dasar struct pada bahasa C sebagai berikut.


typedef struct{
   float x,y,z;
   float velo;
   int n,type;
}particle;

Selanjutnya,tipe data ini akan digunakan pada apliaksi MPI kita.Oleh kareuna itu,kita perlu membuat suatu tipe data turunan dasar adar tipe data struct kita dipergunakan sesuai standart MPI.

Tipe data Turunan
untuk tipe data  dasar turunan kita menggunakan beberapa tipe dasar turunan yang dapat kita gunakan dalam apllikasi MPI.Beberapa tipe data turunan yang dibahas yaitu:
  • kontinu
  • vektor
  • struct
  • index
Setiap kita membuat tipe data turunan pada MPI,kita harus melakukan konfirmasi dengan memanggil MPI_Type_commit().Sedangkan untuk menghapus tipe data turunan yang telah dibuat dapat menggunakan MPI_Type_free().Deklarasi masing-masing fungsi ini dapat dilihat berikut ini:

int MPI_Type_commit(MPI_Datatype *datatype);
int MPI_Type_free(MPI_Datatype *datatype);

datatype adalah tipe data turunan yang akan dibuat atau dihapus.

UPDATE ANTIVIRUS



TRANSLATE


English French German Spain Italian Dutch Russian Portuguese Japanese Korean Arabic Chinese

BLOG TEMEN SEPERJUANGAN

Mengenai Saya

Foto saya
magetan, jawatimur, Indonesia
sesuatu yang indah jika kita merasakan keindahannya..!!!

MOHON ISI BUKU TAMU


ShoutMix chat widget

Label