Setting Parallel Environment dengan MPICH2

Hohoho, sekali-kali posting yang berbau ilmu komputer dikit yaw..

Postingan kali ni berhubungan dengan tugas temen-temen yang ikutan kuliah Sistem Paralel (lhoh?? masih kuliah??), yaitu mengeksekusi program yang dieksekusi secara paralel menggunakan yang namanya MPICH2. Itu salah satu tools untuk mengeksekusi program secara paralel hehe.. maksudnya satu program yang sama di-run di lebih dari satu komputer. Kita sebut yang punya tugas misal, SEPTO (bukan nama sebenarnya) dan temannya yang membantu kita sebut ANGGA (bukan nama kuda).

Tugas ini nantinya akan melakukan eksekusi program di dua buah mesin milik si SEPTO dan si ANGGA. Dua-duanya menggunakan Linux sebagai Sistem Operasinya. si SEPTO memake Ubuntu 8.04 Hardy heron, si ANGGA memake Arch Linux versi terbaru cuy. Yang pengen tahu jauh tentang Arch Linux bisa nanya-nanya sama si kuda eh si ANGGA maksud saya. Untuk IP adress SEPTO, 192.168.0.37 dan si ANGGA 192.168.0.10.

Untuk informasi, di MPICH2 ni kamu nanti program-programnya memakai bahasa C, C++, atau fortran untuk bahasa pemrogramanya, nantinya di headernya akan dipanggil library milik MPICH ni. Mangkanya pastikan dulu Sistem Operasi anda mempunyai minimal C dan C++ compiler.

Untuk Ubuntu, jalankan sudo apt-get install build-essential utk mendapatkan gcc dan g++ terbaru. Selanjutnya donlod packages MPICH2 di “http://www.mcs.anl.gov/mpi/mpich2”. Setelah mendapatkan mpich2-1.0.8.tar.gz (versi yang didapat penulis), misal di tempat SEPTO mau diekstrak di direktori home, maka sebelumnya jgn lupa pindahkan file hasil donlotan ke direktori /home kemudian jalankan :

septo@septo-laptopPinjem:/home/septo$ tar xvf mpich2-1.0.8.tar.gz
septo@septo-laptopPinjem:/home/septo$ cd mpich2-1.0.8
septo@septo-laptopPinjem:/home/septo/mpich2-1.0.8$ ./configure –prefix=/folder/folder_yg_ingin_diinstali_&_dalam kuasa user (dlm contoh ini –prefix=/home/septo/mpich2)
septo@septo-laptopPinjem:/home/septo/mpich2-1.0.8$ make
septo@septo-laptopPinjem:/home/septo/mpich2-1.0.8$ make install

Jika bertemu error saat make install maka temukan file .bash_profile , buka dan tambahkan :

export PATH=/direktori_tempat_menginstal/mpich2/bin:$PATH
export LD_LIBRARY_PATH=/direktori_tempat_menginstal/mpich2/lib:$LD_LIBRARY_PATH

kemudian save, baru kemudian ulangi lagi make install-nya

Buka file /etc/environtment, kemudian tambahkan direktori bin dari hasil instalasi MPICH2, kalo di contoh si SEPTO, akan ditambahkan “:/home/mpich2/bin” (tanpa tanda petik ya..)

Copy salah satu contoh source dari folder source mpich2-1.0.8/examples, misal cpi.c ke direktori tempat menginstal mpich2, program cpi.c ni digunakan untuk menghitung nilai phi. Dalam kasus ini, dilakukan :

septo@septo-laptopPinjem:/home/mpich2$ cp /home/mpich2-1.0.8/examples/cpi.c /home/mpich2

Compile source program,

septo@septo-laptopPinjem:/home/mpich2$ mpicc -o cpi cpi.c

Eksekusi file hasil kompilasi

septo@septo-laptopPinjem:/home/mpich2$ mpiexec -n 3 cpi, enter

harusnya keluar pesan:

mpiexec_septo-laptopPinjem: cannot connect to local mpd (/tmp/mpd2.console_septo); possible causes:
1. no mpd is running on this host
2. an mpd is running but was started without a “console” (-n option)
In case 1, you can start an mpd on this host with:
mpd &
and you will be able to run jobs just on this host.
For more details on starting mpds on a set of hosts, see
the MPICH2 Installation Guide.

Maka jalankan :

septo@septo-laptopPinjem:/home/mpich2$ mpd &

Perintah ini akan menjalankan service mpd pada mesin SEPTO

Setelah servis mpd jalan, maka jika diulang:

septo@septo-laptopPinjem:/home/mpich2$ mpiexec -n 3 cpi
Process 0 of 3 is on septo-laptopPinjem
Process 1 of 3 is on septo-laptopPinjem
Process 2 of 3 is on septo-laptopPinjem
pi is approximately 3.1415926544231323, Error is 0.0000000008333392
wall clock time = 0.002674

ini berarti MPICH2 telah terinstal dengan sukses pada komputer anda, dalam kasus ini mesin si SEPTO.

Langkah selanjutnya, percuma kalo MPInya cuma jalan di satu mesin kan, maka akan dikonekkan antara 2 mesin, mesin si SEPTO dan mesin si ANGGA. Jangan lupa untuk menginstall MPICH2 di tempat si ANGGA juga. Caranya sama aja kok kayak di atas.

Pertama, dibuat ssh antara kedua mesin. Pastikan kedua mesin telah menginstall openssh-client dan open-ssh server
kemudian jgn lupa dicoba. dengan mengetikkan ssh namaHost@alamatMesin contoh :

ssh septo@192.168.0.37,

kemudian jika sukses maka anda akan ditanyai password untuk bisa login sebagai septo@192.168.0.37

Agar anda tidak ditanya-tanya tentang password lagi maka, di mesin pertama (ANGGA):

[angga@athena ~]$ ssh-keygen -t rsa, enter

kalo ditanya passphrase, ga usah diisi gapapa, langsung enter aja, kemudian

[angga@athena ~]$ ssh-copy-id -i /home/nama_user/id_rsa.pub septo@192.168.0.37

Ikuti langkahnya, kalo sukses, harusnya, di mesin pertama :

[angga@athena ~]$ ssh septo@192.168.0.37, tekan enter

Maka kamu akan langsung terhubung

Tetapi ternyata cara ini tiada pengaruhnya alias nonsens dan memutar jauh daripada cara yang akan kita pakai selanjutnya :-P,

Kemudian dicoba melalui cara tanpa ssh,

Mesin pertama :

septo@septo-laptopPinjem:/home/mpich2$ mpd &, enter,
septo@septo-laptopPinjem:/home/mpich2$ mpdtrace -l,

Untuk mengetahui hostname dan port yg digunakan service mpd dalam format hostname_port. Setelah itu diamkan hingga matang, hehehe 😀

Pada mesin kedua, pastikan tiada servis mpd yg berjalan, dgn mengecek melalui sintaks,

[angga@athena ~]$ mpdtrace -l

Jika masih ada ketikkan,

[angga@athena ~]$ mpdallexit

Jika sudah pasti, ketikkan mpd -h hostname -p port, hostname dan port disini adalah milik mesin pertama :

[angga@athena ~]$ mpd -h 192.168.0.37 -p 47581

Seharusnya, akan keluar pesan error, hehehe

Hal ini terjadi hostname yang diminta dalam sintaks ini mempunyai arti hostname yang sebenarnya, bukan hanya alamat IP address mesin. Kita harus mengeset nama mesin (hostname) selain kita mengeset host address, kesemuanya bisa kamu set di /etc/hosts, bisa pake vim, gvim, gedit, kate

di SEPTO :

septo@septo-laptopPinjem:/home/mpich2$ vim /etc/hosts
################################################################################
192.168.0.37 septo-laptopPinjem (baris tambahan, nama mesin SEPTO)
192.168.0.10 athena (baris tambahan, nama mesin ANGGA)
127.0.0.1 localhost
127.0.1.1 septo-laptopPinjem
################################################################################

Kemudian ada lagi yang di set, di mpd.hosts, kalo tiada tahu ada dimana, bsa gunakan perintah locate mpd.hosts

#######################################
athena (nama mesin ANGGA)
septo-laptopPinjem (nama mesin SEPTO)
#######################################

Lakukan hal yang sama di mesin kedua, ANGGA, intinya kedua mesin harus saling mendaftarkan nama diri.

Untuk mengecek sudah berhasilkah kedua mesin saling mengenali, ulangi

[angga@athena ~]$ mpd -h septo-laptopPinjem -p 47581, tekan enter

Akan keluar pesan keberhasilan, taraaaaa….

Kita cek juga dari pihak mesin SEPTO,

septo@septo-laptopPinjem:/home/mpich2$ mpiexec -n 5 hostname, enter
septo-laptopPinjem
septo-laptopPinjem
athena
athena
septo-laptopPinjem

belon puas juga?

septo@septo-laptopPinjem:/home/mpich2$ mpiexec -n 5 date, enter
Thu Nov 20 22:15:06 WIT 2008
Thu Nov 20 22:09:36 WIT 2008
Thu Nov 20 22:09:36 WIT 2008
Thu Nov 20 22:15:06 WIT 2008
Thu Nov 20 22:15:06 WIT 2008

Sekarang untuk program yang benerannya, program cpi yang tadi, kopikan hasil compile ke direktori /bin, bisa memakai cp atau mv :

[angga@athena ~]$ mv mpich2/bin/cpi /bin
septo@septo-laptopPinjem:/home/mpich2$ mv /home/mpich2/cpi /bin

kemudian kembali ke mpiexec, ketikkan di mesin SEPTO :

septo@septo-laptopPinjem:~$ mpiexec -n 6 cpi, tekan enter
Process 0 of 6 is on septo-laptopPinjem
Process 2 of 6 is on septo-laptopPinjem
Process 1 of 6 is on athena
Process 3 of 6 is on athena
Process 5 of 6 is on athena
Process 4 of 6 is on septo-laptopPinjem
pi is approximately 3.1415926544231239, Error is 0.0000000008333307
wall clock time = 0.289969

Yooooosssshhhhh…. telah terlihat bahwa program cpi ini telah berhasil dengan sukses dieksekusi di dua mesin, SEPTO dan ANGGA. Hohohohoho… Puasss deh rasanya… Huffhh… Tak lupa Septo dan Angga mengucap syukur Alhamdulillah kepada Allah SWT dan pihak-pihak laen yang telah membantu, utamanya kepada simbah Google dan yang tidak dapat disebut namanya di sini.

Kalo teman-teman sekalian tertarik, bisa mencoba mengikuti langkah-langkah di atas, SEPTO dan ANGGA siap membantu teman-teman sekaliyan kalo ada kesulitan. Moga-moga aja postingan ni lumayan bermutu 😛 dan bisa membantu temen-temen yang kebetulan menghadapi hal serupa. Amiinn… 🙂

Advertisements

6 Responses to “Setting Parallel Environment dengan MPICH2”


  1. 3 penjahat cupu™ November 21, 2008 at 3:11 pm

    ahaha..
    sudah pernah waktu 1 tahun lalu..

    btw,,
    udah nyoba buat Windows??
    coz waktu dulu q pakenya Windows..

  2. 4 sangprabo November 22, 2008 at 9:23 pm

    Weks, namaku endak disebut.. Wkwkwkwkw
    septo-laptopPinjem? Plis deh ah, bonafid dikit dong namanya.. :p

  3. 5 Pras December 2, 2008 at 4:35 pm

    [sangprabo]
    Daripada “septo-laptopNyolong”? Hayo…

  4. 6 mukitromli June 9, 2012 at 9:35 am

    yang pernah nyoba pake windwos,tlong share donk..,kirim email ke mukitromli@gmail.com


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s




Masukkan email Anda, dan dijamin Anda bakal mendapatkan notifikasi apabila ada tulisan terbaru.

Join 14 other followers

Yang Pernah Dipoto

Advertisements

%d bloggers like this: