Pengujian Algoritme-Algoritme Penyeimbang Beban Statis

PENGUJIAN ALGORITME-ALGORITME
PENYEIMBANG BEBAN STATIS

HANIF AMAL ROBBANI

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013

PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA*
Dengan ini saya menyatakan bahwa skripsi berjudul Pengujian AlgoritmeAlgoritme Penyeimbang Beban Statis adalah benar karya saya dengan arahan dari
komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan
tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang
diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks
dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.
Bogor, Juli 2013

Hanif Amal Robbani
NIM G64080098

ABSTRAK
HANIF AMAL ROBBANI. Pengujian Algoritme-Algoritme Penyeimbang Beban
Statis. Dibimbing oleh HENDRA RAHMAWAN.
Pada penelitian ini dibuat sebuah prototipe program penyeimbang beban.
Program tersebut dapat dijalankan menggunakan salah satu dari empat buah
algoritme penyeimbang beban, yaitu algoritme round robin, randomized, central
manager, dan threshold. Keempat algoritme tersebut diuji dan dibandingkan
kinerjanya berdasarkan ukuran kecepatan waktu eksekusi dan kemerataan
distribusi beban. Adapun indikator beban yang digunakan untuk algoritme central
manager dan threshold adalah CPU, memori, dan I/O harddisk. Pengujian
keempat algoritme dilakukan terhadap tiga jenis program dengan dominasi
berbeda pada beban instruksi CPU, akses memori, dan akses I/O harddisk. Dari
hasil analisis pengujian dapat ditarik kesimpulan secara umum bahwa tidak ada
algoritme yang dominan. Algoritme central manager, round robin, dan
randomized bergantian muncul sebagai algoritme terbaik pada skenario percobaan
yang berbeda. Hasil pengujian juga menunjukkan bahwa algoritme threshold tidak
dapat mendistribusikan beban semerata ketiga algoritme lainnya.

Kata kunci: algoritme penyeimbang beban statis, indeks beban, MPI.NET,
penyeimbangan beban

ABSTRACT
HANIF AMAL ROBBANI. The Testing of Static Load Balancing Algorithms.
Supervised by HENDRA RAHMAWAN.
In this research, a prototype of load balancing program was created. The
program can be run using one of four load balancing algorithms namely: round
robin, randomized, central manager, and threshold. The four algorithms were
tested and their performance were compared based on the measurement of
execution time and load distribution evenness. Load indices to compare the
central manager and threshold algorithms were CPU, memory, and harddisk I/O.
Three types of programs with different domination in CPU instruction load,
memory access, and harddisk I/O were used for testing purposes. The results
showed that there was no dominant algorithm. Round robin, randomized, and
central manager algorithms emerged alternately as the best algorithms in different
test scenarios. It was also found that threshold algorithm was unable to distribute
load as even as the other three algorithms.
Keywords: load balancing, static load balancing, load index, MPI.NET


PENGUJIAN ALGORITME-ALGORITME
PENYEIMBANG BEBAN STATIS

HANIF AMAL ROBBANI

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada
Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013

Judul Skripsi: Pengujian Algoritme-Algoritme Penyeimbang Beban Statis
Nama
: Hanif Amal Robbani

N1M
: G64080098

:,

.

;-.

.

{

Disetujui oleh

セ@

Hendra Rahmawan, S.Korri, M. T
NIP. 19820501 200912 1 009


セ N@ INM
Diketahui o1;h

Tanggal Lulus:

,3 1 JUL 2013

Judul Skripsi : Pengujian Algoritme-Algoritme Penyeimbang Beban Statis
Nama
: Hanif Amal Robbani
NIM
: G64080098

Disetujui oleh

Hendra Rahmawan, SKom, MT
Pembimbing

Diketahui oleh


Dr Ir Agus Buono, MSi, MKom
Ketua Departemen

Tanggal Lulus:

PRAKATA
Segala puji bagi Allah subhanahu wa-ta'ala atas segala rahmat dan karuniaNya sehingga penulis dapat menyelesaikan penelitian ini. Penulis juga
menyampaikan terima kasih kepada semua pihak yang telah membantu dalam
penyelesaian tugas akhir ini, yaitu:
1 Ayahanda H Rosihan Anwar, Ibunda Ani Kartika, serta adik-adik Sahla
Sahlima, Muhammad Zia Al-Banna, Bilqis Khoirul Untsa, dan Miski
Nusrotillah atas segala bentuk dukungan, motivasi, serta doa yang diberikan
kepada penulis selama ini.
2 Bapak Hendra Rahmawan, SKom, MT selaku dosen pembimbing yang telah
memberikan banyak ide, masukan, serta bantuan bagi penulis selama
mengerjakan penelitian ini.
3 Bapak Endang Purnama Giri, SKom, MKom dan Ibu Karlisa Priandana, ST,
MEng selaku dosen penguji yang telah memberikan masukan serta saran pada
penelitian dan tugas akhir penulis.
4 Rekan-rekan di PT Navcore Nextology, Karimul Makhtidi, Oki Maulana,

Retno Larasati, Fania Karimah, Fandi Rahmawan, dan Alif Kurniawan yang
telah membantu proses percobaan.
5 Rekan-rekan satu bimbingan, Bambang Wijonarko, Irvan Ahadi, dan Melki
Hasali yang telah berjuang bersama, bertukar pikiran, berbagi suka dan duka
selama mengerjakan penelitian.
6 Rekan-rekan seperjuangan di Ilmu Komputer IPB angkatan 45 atas segala
kebersamaan, bantuan, dukungan, serta kenangan bagi penulis selama
menjalani masa studi. Semoga kita bisa berjumpa kembali kelak sebagai orangorang sukses.
Penulis berharap penelitian ini dapat memberikan manfaat.

Bogor, Juli 2013

Hanif Amal Robbani

DAFTAR ISI
DAFTAR TABEL

vi

DAFTAR GAMBAR


vi

DAFTAR LAMPIRAN

vi

PENDAHULUAN

1

Latar Belakang

1

Tujuan Penelitian

1

Manfaat Penelitian


1

Ruang Lingkup Penelitian

2

TINJAUAN PUSTAKA

2

Penyeimbangan Beban

2

Algoritme Penyeimbang Beban Statis

2

Algoritme Central Manager


2

Algoritme Randomized

3

Algoritme Round Robin

3

Algoritme Threshold

4

Message Passing Interface (MPI)

4

Implementasi MPI


4

METODE

6

Perancangan dan Implementasi Penyeimbang Beban

6

Perancangan dan Implementasi Perangkat Sistem Pengujian

6

Perancangan Percobaan

6

Percobaan dan Analisis Hasil Percobaan

8

HASIL DAN PEMBAHASAN

8

Perancangan dan Implementasi Penyeimbang Beban

8

Parameter Masukan

9

File Konfigurasi Cluster

9

File Daftar Pekerjaan

10

Pengukuran Beban Awal Cluster

10

Proses Distribusi Pekerjaan

11

Perancangan dan Implementasi Sistem Pengujian

11

Program Pengukur Beban

11

Program Simulator Pekerjaan

12

Perancangan Percobaan

13

Percobaan

14

Analisis Hasil Pengujian

14

SIMPULAN DAN SARAN

17

Simpulan

17

Saran

17

DAFTAR PUSTAKA

17

LAMPIRAN

19

RIWAYAT HIDUP

23

DAFTAR TABEL
1
2
3
4
5
6

Kategorisasi kondisi host
Kode indikator beban
Kode algoritme
Ringkasan hasil uji sebaran beban berdasarkan perhitungan algoritme
Ringkasan hasil uji sebaran beban berdasarkan pengukuran real-time
Ringkasan hasil uji waktu eksekusi

4
9
9
15
15
15

DAFTAR GAMBAR
1
2
3
4
5
6

Diagram alir algoritme central manager
Diagram alir algoritme randomized
Diagram alir algoritme threshold
Diagram alir metode penelitian
Alur program penyeimbang beban
Alur program pengukur beban

3
3
5
7
8
12

DAFTAR LAMPIRAN
1 Daftar peringkat algoritme pada setiap skenario pengujian berdasarkan
kecepatan waktu eksekusi program
2 Daftar peringkat algoritme pada setiap skenario pengujian berdasarkan
kemerataan sebaran beban
3 Data Type Definition (DTD) untuk file konfigurasi cluster
4 Data Type Definition (DTD) untuk file daftar pekerjaan

19
20
21
22

PENDAHULUAN
Latar Belakang
Penyeimbangan beban merupakan salah satu teknik utama yang dikenali
dalam bidang komputasi paralel. Penyeimbangan beban bertujuan untuk
meminimalkan, baik waktu eksekusi maupun response time rata-rata dari sebuah
program paralel. Tujuan ini dicapai dengan mengupayakan penjadwalan task
dengan tepat untuk setiap prosesor yang terlibat. Secara spesifik algoritme
penyeimbang beban berusaha mendistribusikan beban komputasi sedemikian
sehingga masing-masing prosesor bertanggung jawab terhadap beban yang sama
besar pada saat eksekusi program (Xu dan Lau 1997).
Algoritme penyeimbang beban dikategorikan ke dalam dua kelompok besar,
yaitu statis dan dinamis. Algoritme-algoritme penyeimbang beban statis memiliki
kecepatan tinggi, menyebabkan waktu tunda yang kecil, dan relatif mudah untuk
diimplementasikan (Sharma et al. 2008). Pada kondisi tertentu, algoritme
penyeimbang beban statis menjadi satu-satunya pilihan, misalnya ketika ukuran
task terlalu besar sehingga pemindahan task ke prosesor lain pada saat run-time
dihindari (Xu dan Lau 1997).
Pada penelitian sebelumnya (Rahmawan dan Gondokaryono 2009) telah
dilakukan simulasi empat algoritme penyeimbang beban statis, yaitu algoritme
round robin, randomized, central manager, dan threshold. Indikator beban yang
digunakan adalah panjang antrian CPU, jumlah memori terpakai, dan panjang
antrian I/O harddisk. Dari penelitian tersebut dihasilkan paparan analisis
perbandingan kinerja keempat algoritme dalam sebuah lingkungan simulasi,
dengan indikator kinerja waktu eksekusi program dan sebaran beban.
Penelitian ini merupakan lanjutan dari penelitian Rahmawan dan
Gondokaryono (2009), dengan membuat sebuah prototipe program penyeimbang
beban menggunakan empat algoritme penyeimbang beban statis, kemudian
menguji kinerja masing-masing algoritme tersebut dalam lingkungan pengujian
riil.

Tujuan Penelitian
Tujuan penelitian ini adalah membandingkan kinerja algoritme-algoritme
penyeimbang beban statis dalam lingkungan riil (bukan simulasi).

Manfaat Penelitian
Penelitian ini diharapkan dapat memberikan informasi mengenai kinerja
algoritme-algoritme penyeimbang beban yang diuji. Dari penelitian ini diharapkan
dapat diketahui karakteristik masing-masing algoritme, dalam kondisi apa sebuah
algoritme menonjol, dan dalam kondisi apa algoritme tersebut mengalami
penurunan kinerja.

2
Ruang Lingkup Penelitian
1 Algoritme penyeimbang beban yang diuji adalah algoritme randomized, round
robin, central manager, dan threshold.
2 Indikator beban yang digunakan adalah persentase CPU terpakai, persentase
memori terpakai, dan panjang rata-rata antrian I/O harddisk.
3 Sistem paralel yang digunakan merupakan cluster homogen, dengan jumlah
komputer pekerja tiga buah.
4 Beban awal cluster diasumsikan seragam.
5 Program paralel yang digunakan tidak memiliki overhead komunikasi.
6 Ada tiga jenis program paralel yang digunakan, yaitu program paralel CPUbound, memory-bound, dan I/O harddisk-bound.
7 Hanya ada satu program paralel yang dieksekusi oleh cluster dalam satu waktu.

TINJAUAN PUSTAKA
Penyeimbangan Beban
Penyeimbangan beban adalah proses meningkatkan kinerja sebuah sistem
paralel dan sistem terdistribusi melalui pendistribusian ulang beban di antara
prosesor di dalam sistem (Sharma et al. 2008).

Algoritme Penyeimbang Beban Statis
Algoritme penyeimbang beban statis melakukan proses penyeimbangan
beban sebelum eksekusi pekerjaan dilakukan. Beban prosesor-prosesor dalam
sistem paralel diukur sebelum terjadi eksekusi program. Selanjutnya prosesor
master akan mendistribusikan pekerjaan berdasarkan ukuran beban prosesor
tersebut. Prosesor pekerja kemudian akan melakukan pekerjaan yang telah
ditugaskan oleh prosesor master, dan apabila telah selesai, prosesor pekerja akan
mengembalikan hasil pemrosesan ke prosesor master (Sharma et al. 2008).

Algoritme Central Manager
Pada algoritme ini, prosesor utama memilih sebuah host untuk
mengeksekusi proses baru. Program akan didelegasikan kepada host dengan
beban terkecil (minimal) untuk dieksekusi di sana. Prosesor dengan beban
minimal ditentukan berdasarkan ukuran beban masing-masing host saat proses
dibuat. Prosesor utama memilih host untuk proses-proses yang baru sedemikian
rupa sehingga sedapat mungkin beban di tiap prosesor tetap sama. Proses
penjadwalan seperti di atas dapat dilakukan berdasarkan informasi beban cluster.
Informasi ini diperbarui oleh remote processor, yang mengirim sebuah pesan
setiap waktu saat beban prosesor berubah (Sharma et al. 2008). Diagram alir
algoritme central manager dinyatakan pada Gambar 1.

3
Algoritme Randomized
Algoritme randomized merupakan sebuah algoritme yang menggunakan
bilangan-bilangan acak untuk memilih prosesor yang akan ditugaskan. Prosesorprosesor pekerja dipilih secara acak berdasarkan bilangan-bilangan acak yang
dihasilkan dengan mengikuti distribusi tertentu (Sharma et al. 2008). Diagram alir
algoritme randomized dinyatakan pada Gambar 2.

Algoritme Round Robin
Pada algoritme round robin, setiap pekerjaan didistribusikan ke semua
prosesor secara merata. Prosesor untuk mengeksekusi setiap pekerjaan dipilih
secara berurutan, dan kembali ke prosesor pertama jika pemilihan prosesor telah
sampai di prosesor terakhir (Sharma et al. 2008).

Mulai

i=1

i = indeks pekerjaan
k = indeks komputer

k=1

Mulai

i