Membangun Cluster MPICH2 Dengan Ubuntu 10 04 Lucid Lynx Imkrisna

5
Membangun Cluster MPICH2 dengan Ubuntu 10.04 Lucid Lynx Instalasi Ubuntu 10.04 Lucid Lynx Jelas yang pertama dibutuhkan adalah sistem operasi yang mendukung sistem MPICH2. Untuk itu dalam tutorial ini digunakan Ubuntu 10.04 Lucid Lynx versi Desktop 32-bit dengan arsitektur i386 untuk mempermudah pengerjaan bagi pemula atau yang tidak biasa bekerja dengan sistem operasi linux. Tidak menutup kemungkinan sistem operasi yang lain untuk digunakan akan tetapi kecocokan langkah-langkah pada tutorial ini tidak terjamin keberhasilannya. Untuk tutorial ini, semua langkah akan dilakukan dengan privileges root. krisna@lpgrid-a0:~$ sudo bash [sudo] password for krisna: root@lpgrid-a0:~# root@lpgrid-a0:~# passwd krisna@lpgrid-a1:~$ sudo bash [sudo] password for krisna: root@lpgrid-a1:~# root@lpgrid-a1:~# passwd Ganti password root agar nantinya dapat diakses menggunakan SSH dengan user root. Ubuntu 10.04 Lucid Lynx dapat didapatkan dari : 1. Situs resmi Ubuntu 2. Universitas Indonesia 3. Universitas Gadjah Mada 4. Institut Teknologi Bandung (10.04.1) - kecocokan sistem belum diuji Untuk instalasi disarankan menggunakan bahasa inggris (English) baik saat instalasi maupun bahasa pada sistem operasi. Kemudian pada partisi harddisk gunakan "Guided" yang menggunakan seluruh harddisk dan diatur sepenuhnya oleh installer, untuk setting selanjutnya disarankan memilih yang direkomendasikan oleh installer. Arsitektur dan Jaringan Dalam tutorial ini hanya akan digunakan 2 node, 1 master dan 1 slave. Pada nantinya sistem ini dapat ditambah jumlah nodenya sesuai kebutuhan dengan langkah yang sama untuk semua slavenya. Kedua node ini terdapat pada suatu subnet yang sama misalkan subnet Laboratorium Pemrograman Teknik Informatika ITS (10.151.34.0/24) Sekarang kita misalkan node master memiliki hostname : lpgrid-a0 dan IP : 10.151.34.50, kemudian node slave memiliki hostname : lpgrid- a1 dan IP : 10.151.34.51, untuk mendapatkan hostname maka harus diperhatikan saat melakukan instalasi sistem operasi (saat setting user dan password) sedangkan untuk setting alamat IP, buka /etc/network/interfaces dengan text editor yang anda kuasai, kemudian ubah menjadi seperti ini : root@lpgrid-a0:~# vim /etc/network/interfaces root@lpgrid-a1:~# vim /etc/network/interfaces * Pada lpgrid-a0 (master) auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.151.34.50 network 10.151.34.0 netmask 255.255.255.0 broadcast 10.151.34.255 gateway 10.151.34.1 * Pada lpgrid-a1 (slave) Ads by Google Ubuntu Ubuntu Live CD Ubuntu for PC Linux Mint 3/15/2011 Membangun Cluster MPICH2 dengan U… …imkrisna.com/…/mpich2-ubuntu-lucid.… 1/5

Transcript of Membangun Cluster MPICH2 Dengan Ubuntu 10 04 Lucid Lynx Imkrisna

Page 1: Membangun Cluster MPICH2 Dengan Ubuntu 10 04 Lucid Lynx Imkrisna

Membangun Cluster MPICH2 dengan Ubuntu 10.04 Lucid Lynx

Instalasi Ubuntu 10.04 Lucid Lynx

Jelas yang pertama dibutuhkan adalah sistem operasi yang mendukung sistem MPICH2. Untuk itu dalam tutorial ini digunakan Ubuntu 10.04

Lucid Lynx versi Desktop 32-bit dengan arsitektur i386 untuk mempermudah pengerjaan bagi pemula atau yang tidak biasa bekerja dengan

sistem operasi linux. Tidak menutup kemungkinan sistem operasi yang lain untuk digunakan akan tetapi kecocokan langkah-langkah pada

tutorial ini tidak terjamin keberhasilannya. Untuk tutorial ini, semua langkah akan dilakukan dengan privileges root.

krisna@lpgrid-a0:~$ sudo bash

[sudo] password for krisna:

root@lpgrid-a0:~#

root@lpgrid-a0:~# passwd

krisna@lpgrid-a1:~$ sudo bash

[sudo] password for krisna:

root@lpgrid-a1:~#

root@lpgrid-a1:~# passwd

Ganti password root agar nantinya dapat diakses menggunakan SSH dengan user root.

Ubuntu 10.04 Lucid Lynx dapat didapatkan dari :

1. Situs resmi Ubuntu

2. Universitas Indonesia

3. Universitas Gadjah Mada

4. Institut Teknologi Bandung (10.04.1) - kecocokan sistem belum diuji

Untuk instalasi disarankan menggunakan bahasa inggris (English) baik saat instalasi maupun bahasa pada sistem operasi. Kemudian pada

partisi harddisk gunakan "Guided" yang menggunakan seluruh harddisk dan diatur sepenuhnya oleh installer, untuk setting selanjutnya

disarankan memilih yang direkomendasikan oleh installer.

Arsitektur dan Jaringan

Dalam tutorial ini hanya akan digunakan 2 node, 1 master dan 1 slave. Pada nantinya sistem ini dapat ditambah jumlah nodenya sesuai

kebutuhan dengan langkah yang sama untuk semua slavenya. Kedua node ini terdapat pada suatu subnet yang sama misalkan subnet

Laboratorium Pemrograman Teknik Informatika ITS (10.151.34.0/24)

Sekarang kita misalkan node master memiliki hostname : lpgrid-a0 dan IP : 10.151.34.50, kemudian node slave memiliki hostname : lpgrid-

a1 dan IP : 10.151.34.51, untuk mendapatkan hostname maka harus diperhatikan saat melakukan instalasi sistem operasi (saat setting user

dan password) sedangkan untuk setting alamat IP, buka /etc/network/interfaces dengan text editor yang anda kuasai, kemudian ubah menjadi

seperti ini :

root@lpgrid-a0:~# vim /etc/network/interfaces

root@lpgrid-a1:~# vim /etc/network/interfaces

* Pada lpgrid-a0 (master)

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet static

address 10.151.34.50

network 10.151.34.0

netmask 255.255.255.0

broadcast 10.151.34.255

gateway 10.151.34.1

* Pada lpgrid-a1 (slave)

Ads by Google Ubuntu Ubuntu Live CD Ubuntu for PC Linux Mint

3/15/2011 Membangun Cluster MPICH2 dengan U…

…imkrisna.com/…/mpich2-ubuntu-lucid.… 1/5

Page 2: Membangun Cluster MPICH2 Dengan Ubuntu 10 04 Lucid Lynx Imkrisna

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet static

address 10.151.34.51

network 10.151.34.0

netmask 255.255.255.0

broadcast 10.151.34.255

gateway 10.151.34.1

Kemudian masukkan perintah untuk memerintahkan sistem operasi agar melakukan konfigurasi ulang terhadap setting jaringannya.

root@lpgrid-a0:~# /etc/init.d/networking restart

root@lpgrid-a1:~# /etc/init.d/networking restart

Setting diatas digunakan untuk membuat alamat IP dari node agar memiliki IP yang tetap karena pada umumnya komputer akan mendapatkan

IP dari DHCP server sehingga alamat IP suatu komputer yang sama dapat berubah-ubah. Dan satu hal lagi yang sering terlupa, merubah

nameserver (DNS) acuan node. buka file /etc/resolv.conf dengan text editor dan masukkan IP nameserver yang tersedia, misalnya :

root@lpgrid-a0:~# vim /etc/resolv.conf

root@lpgrid-a1:~# vim /etc/resolv.conf

nameserver 10.151.34.11

nameserver 202.46.129.2

nameserver 202.46.129.3

Dan yang terakhir adalah mendefinisikan hostname yang digunakan dalam cluster grid ini kedalam file /etc/hosts baik pada master maupun

slave agar saat kita memanggil hostname maka tidak perlu meresolve ke DNS server atau yang lain sehingga lebih cepat. Seperti biasa, buka

file tersebut dengan text editor dan ubah didalamnya menjadi :

root@lpgrid-a0:~# vim /etc/hosts

root@lpgrid-a1:~# vim /etc/hosts

127.0.0.1 localhost

10.151.34.50 lpgrid-a0

10.151.34.51 lpgrid-a1

Perlu diingat jangan sampai hostname selain localhost memiliki IP : 127.0.0.1

Langkah opsional yang biasanya dilakukan dalam instalasi jaringan, setting repositori ubuntu untuk mempermudah pengambilan paket-paket

yang diperlukan. Untuk ubuntu lucid lynx, dalam lingkungan Teknik Informatika ITS, GRID Computing Laboratory telah menyediakan

repositorynya di :

root@lpgrid-a0:~# vim /etc/apt/sources.list

root@lpgrid-a1:~# vim /etc/apt/sources.list

deb http://10.151.35.203/lucid lucid main restricted universe multiverse

deb http://10.151.35.203/lucid lucid-updates main restricted universe multiverse

deb http://10.151.35.203/lucid lucid-security main restricted universe multiverse

deb http://10.151.35.203/lucid lucid-backports main restricted universe multiverse

Membuat NFS Server dan Client

NFS Server adalah sistem yang digunakan node-node dalam cluster ini berbagi resource file yang akan dikerjakan. Master akan menjadi NFS

Server dimana nantinya suatu bagian dari filesystem pada node master akan dapat dimount oleh node slave sebagai NFS Client dan akhirnya

master dan slave akan berbagi file yang akan dikerjakan oleh cluster tersebut. Misalkan folder yang akan dishare oleh master adalah /mirror.

* Pada lpgrid-a0 (master)

root@lpgrid-a0:~# mkdir /mirror

3/15/2011 Membangun Cluster MPICH2 dengan U…

…imkrisna.com/…/mpich2-ubuntu-lucid.… 2/5

Page 3: Membangun Cluster MPICH2 Dengan Ubuntu 10 04 Lucid Lynx Imkrisna

root@lpgrid-a0:~# apt-get install nfs-kernel-server

root@lpgrid-a0:~# echo /mirror *(rw,sync) >> /etc/exports

* Pada lpgrid-a1 (slave)

root@lpgrid-a1:~# mkdir /mirror

root@lpgrid-a1:~# apt-get install nfs-common

root@lpgrid-a1:~# mount lpgrid-a0:/mirror /mirror

Pada tahap ini folder /mirror pada master maupun slave akan memiliki isi yang sama dan perubahan apapun di folder ini pada master akan

berubah juga pada slave.

Konfigurasi SSH antar node

SSH digunakan oleh MPICH2 untuk berkomunikasi antar node sehingga pada akhirnya akan dibutuhkan komunikasi melalui SSH yang tidak

memerlukan input password untuk membuat jalur SSH. Langkah ini dilakukan pada semua node cluster GRID.

root@lpgrid-a0:~# apt-get install openssh-server

root@lpgrid-a0:~# ssh-keygen -t rsa

root@lpgrid-a0:~# ssh root@lpgrid-a1 mkdir -p .ssh

root@lpgrid-a0:~# cat /root/.ssh/id_rsa.pub | ssh root@lpgrid-a1 'cat >> /root/.ssh/authorized_keys'

Kosongkan passphrase yang diminta saat ssh-keygen, langsung tekan enter. Setelah langkah diatas maka sistem akan dapat melakukan SSH

tanpa password, lakukan hal yang sama pada slave slave lain dengan target host SSH diganti dengan lpgrid-a0.

Instalasi MPICH2

Sebelum melakukan instalasi MPICH2, sebaiknya melakukan instalasi paket-paket compiler yang sekiranya nanti dibutuhkan oleh MPICH2.

Langkah ini dilakukan baik pada master maupun slave.

root@lpgrid-a0:~# apt-get install build-essential

root@lpgrid-a0:~# apt-get install gpc

root@lpgrid-a0:~# apt-get install gfortran

root@lpgrid-a0:~# apt-get install openjdk-6-jdk

Lakukan instalasi melalui repositori yang ada pada seluruh node, baik master maupun slave

root@lpgrid-a0:~# apt-get install mpich2

Setelah instalasi melalui repositori berhasil, uji dengan memasukkan beberapa perintah which command dibawah ini. Apabila berhasil,

perintah tersebut akan memiliki output /usr/bin/command

root@lpgrid-a0:~# which mpd

/usr/bin/mpd

root@lpgrid-a0:~# which mpiexec

/usr/bin/mpiexec

root@lpgrid-a0:~# which mpirun

/usr/bin/mpirun

Kemudian melakukan setting terhadap mpd pada seluruh node baik master maupun slave, pertama buat file pada /root/mpd.hosts dengan isi

hostname hostname yang tergabung pada grid cluster :

root@lpgrid-a0:~# vim mpd.hosts

root@lpgrid-a1:~# vim mpd.hosts

lpgrid-a0

lpgrid-a1

Kemudian buat file pada /etc/mpd.conf yang berisi secretword=apapun dan lakukan chmod pada file tersebut untuk mengamankan dari

akses yang tidak berhak.

3/15/2011 Membangun Cluster MPICH2 dengan U…

…imkrisna.com/…/mpich2-ubuntu-lucid.… 3/5

Page 4: Membangun Cluster MPICH2 Dengan Ubuntu 10 04 Lucid Lynx Imkrisna

root@lpgrid-a0:~# vim /etc/mpd.conf

root@lpgrid-a0:~# chmod 600 /etc/mpd.conf

root@lpgrid-a1:~# vim /etc/mpd.conf

root@lpgrid-a1:~# chmod 600 /etc/mpd.conf

Sekarang saatnya mencoba kesuksesan instalasi MPICH2 dengan perintah :

root@lpgrid-a0:~# mpd &

root@lpgrid-a0:~# mpdtrace

root@lpgrid-a0:~# mpdallexit

Pada saat mpdtrace, seharusnya akan terlihat hostname yang mengeksekusi command tersebut. Apabila sudah berhasil, pastikan seluruh mpd

pada node node mati dengan mpdallexit. Kemudian masukkan perintah berikut pada node master untuk menghidupkan seluruh cluster :

root@lpgrid-a0:~# mpdboot -n 2

root@lpgrid-a0:~# mpdtrace

2 adalah jumlah node yang dimiliki cluster tersebut atau kurang. Saat mpdtrace saat ini akan terlihat 2 hostname yaitu lpgrid-a0 dan lpgrid-

a1.

Testing Program MPI

Tahap testing ini hanya memerlukan satu node saja dan tidak harus dilakukan pada master node namun dianjurkan untuk dilakukan di master

node. Download contoh source code yang menggunakan MPI

bones.C

sum.C

Lakukan kompilasi terhadap source code tersebut

root@lpgrid-a0:~# mpic++ bones.C -o /mirror/bones

root@lpgrid-a0:~# mpic++ sum.C -o /mirror/sum

Lakukan percobaan eksekusi hasil kompilasi tersebut pada sistem MPICH2, pastikan output kompilasi berada pada folder yang dishare oleh

NFS

root@lpgrid-a0:~# mpiexec -n 2 /mirror/./bones

BONES :

C++ Program version

An MPI example program.

The number of processes available is 2

P:1 - setting up data to send to process 0.

P:0 Got data from process 1

P:0 Got 100 elements.

P:0 value[5] = 5

BONES:

Normal end of execution.

root@lpgrid-a0:~# mpiexec -n 2 /mirror/./sum

SUM - Master process:

C++ version

An MPI example program.

The master process computes some coefficients,

sends them to each worker process, which sums them.

Compiled on Oct 25 2010 at 13:17:19

The number of processes available is 2

SUM - Process 0:

3/15/2011 Membangun Cluster MPICH2 dengan U…

…imkrisna.com/…/mpich2-ubuntu-lucid.… 4/5

Page 5: Membangun Cluster MPICH2 Dengan Ubuntu 10 04 Lucid Lynx Imkrisna

My contribution to the sum is 0

SUM - Process 1:

My contribution to the sum is 19197.6

SUM - Master process:

The total sum is 19197.6

SUM - Master process

Normal end of execution.

Referensi

1. Setting Up an MPICH2 Cluster in Ubuntu - https://wiki.ubuntu.com/MpichCluster

2. SSH Login Without Password - http://linuxproblem.org/art_9.html

3. MPI C++ Examples - http://people.sc.fsu.edu/~jburkardt/cpp_src/mpi/mpi.html

©2010 - I Made Krisna Widhiastra

3/15/2011 Membangun Cluster MPICH2 dengan U…

…imkrisna.com/…/mpich2-ubuntu-lucid.… 5/5