Anda di halaman 1dari 6

IMPLEMENTASI PEMROSESAN PARALEL PADA

PERMAINAN CATUR DI CLUSTER BEOWULF


Indra Haris Syaifullah1, Waru Djuriatno, S.T., M.T.2, dan Ir. Muhammad Aswin, M.T.3
1
Mahasiswa Teknik Elektro, 2, 3Dosen Teknik Elektro Universitas Brawijaya
Jurusan Teknik Elektro Fakultas Teknik Universitas Brawijaya
Jalan MT. Haryono 167, Malang 65145, Indonesia
E-mail : indra.haris.s@gmail.com

Abstrak Pemrosesan paralel merupakan salah Dalam penelitian ini, saya mencoba untuk
satu upaya agar beban komputasi dapat mengembangkan skripsi dari saudara Dian
dilakukan oleh beberapa sumber daya secara Rachmanto tentang implementasi algoritma
bersamaan. Salah satu masalah yang bisa pencarian Shannon Type-A pada program
dilakukan secara bersamaan adalah proses permainan catur. Dimana dalam skripsi tersebut
pencarian. Shannon Type-A merupakan yang awalnya dikerjakan dengan menggunakan
pencarian brute-force yang melihat seluruh satu komputer, dalam penelitian ini dikembangkan
kemungkinan dengan kedalaman yang dengan menggunakan lebih dari satu komputer
bervariasi. Dengan adanya pemrosesan paralel, yang bertujuan mempersingkat waktu pencarian
pencarian brute-force ini dapat dilakukan secara
dan komputasi program permainan catur tersebut.
bersamaan dan mempersingkat waktu
Untuk itu diperlukan teknologi parallel
pencarian. Perancangan perangkat lunak ini
processing dan OpenMPI. Open MPI merupakan
menggunakan bahasa pemrograman C dan
Open MPI yang terhubung dengan cluster pustaka message passing interface yang
Beowulf sebagai sistem pemrosesan paralel. bertanggung jawab mengenai penjadwalan,
Pengujian dilakukan dengan membandingkan distribusi proses, dan komunikasi data antar node
proses yang berjalan pada 1 komputer dengan 4 dalam sistem komputasi paralel. Open MPI
komputer dan dengan kedalaman yang berbeda. mendukung berbagai arsitektur prosesor dan sistem
Dari hasil pengujian, saat menggunakan 2 operasi sehingga dapat diimplementasikan di
komputer slave dengan 2, 4, dan 6 depth, lingkungan komputer yang heterogen.
peningkatan kecepatannya sebesar 0,998, 3,307,
dan 0,762. Saat menggunakan 4 komputer slave II. TINJAUAN PUSTAKA
dengan 2, 4, dan 6 depth, peningkatan A. Komputasi Paralel
kecepatannya sebesar 1,151, 3,180, dan 0,799. Komputasi adalah proses yang dijalankan
prosesor dalam sebuah rentang satuan waktu yang
Kata Kunci Program Catur, Pemrosesan meliputi:
Paralel, Cluster Beowulf, Shannon Type-A, 1) operasi baca: menerima masukan berupa
Minimax. data dengan ukuran tertentu,
2) operasi penghitungan: melakukan operasi
I. PENDAHULUAN aritmatik atau logik terhadap masukan,
Pemrosesan paralel adalah komputasi dua 3) operasi tulis: mengembalikan hasil
atau lebih tugas pada waktu bersamaan dengan penghitungan dengan ukuran tertentu.
tujuan untuk mempersingkat waktu penyelesaian Komputasi paralel adalah eksekusi proses
tugas-tugas tersebut dengan cara mengoptimalkan pengoperasian aritmatik atau logik yang sejenis
resource pada sistem komputer yang ada untuk secara bersamaan.[2]
mencapai tujuan yang sama. Pemrosesan paralel Sebuah masalah komputasi yang kompleks
dapat mempersingkat waktu ekseskusi suatu dibagi menjadi bagian-bagian yang lebih kecil,
program dengan cara membagi suatu program sederhana, dan dijalankan di beberapa prosesor
menjadi bagian-bagian yang lebih kecil yang dapat secara bersamaan sehingga keseluruhan proses
dikerjakan pada masing-masing prosesor secara dapat diselesaikan dengan lebih cepat.
bersamaan. Pada komputasi sekuensial (serial) masukan
Tujuan utama dari pemrosesan paralel diterima dan keluaran dikirim melalui memori
adalah untuk meningkatkan performa komputasi. internal atau perangkat antarmuka. Sementara pada
Semakin banyak hal yang bisa dilakukan secara komputasi paralel sebuah prosesor dapat menerima
bersamaan (dalam waktu yang sama), semakin masukan atau mengembalikan keluarannya melalui
banyak pekerjaan yang bisa diselesaikan.

1
shared memory atau prosesor lain melalui bus dan mendukung perangkat lunak yang
interkoneksi antar prosesor atau jaringan komputer. memungkinkan pengaturan rutin beban komputasi
Tujuan utama komputasi paralel adalah secara bersamaan yang bertujuan untuk
peningkatan kecepatan komputasi. Hukum Amdahl mengerjakan satu rutin komputasi yang lebih besar.
(Gene Amdahl, 1967) dan Gustafon (John Di bidang rekayasa komputer, clustering
Gustafon, 1988) menjelaskan peningkatan diterapkan untuk membuat struktur sistem baru dari
kecepatan komputasi paralel pada sejumlah elemen-elemen komputasi yang telah ada untuk
prosesor identik. mendapatkan peningkatan kemampuan komputasi
Hukum Amdahl menjelaskan bahwa yang jika dilakukan dengan metode konvensional
peningkatan kecepatan komputasi paralel adalah: (mengganti perangkat keras dengan performansi
(2-1) yang lebih tinggi) memiliki harga ekonomis yang
sangat mahal.
dengan Cluster Beowulf adalah cluster komoditas
= rasio bagian rutin program yang tidak yang menggunakan komponen komputer
dapat diparalelisasi terhadap consumer-grade dengan harga yang murah (contoh:
keseluruhan rutin program komponen komputer bekas pakai), menggunakan
P = cacah prosesor. perangkat lunak gratis dengan lisensi yang bersifat
Hukum Gustafon menjelaskan peningkatan FOSS (free open source software) untuk
kecepatan komputasi beberapa prosesor dengan membangun keseluruhan sistem, dan
persamaan yang lebih sederhana: mengakomodasi keperluan komputasi paralel.
S = +P (1) (2-2) Cluster Beowulf memiliki keuntungan karena
Barry Wilkinson dan Michael Allen di stuktur dan metode implementasinya, antara lain:
dalam bukunya menjelaskan bahwa fokus utama skalabilitas, konvergensi, fleksibilitas konfigurasi,
dalam merencanakan solusi menggunakan failover, kemudahan, kecepatan, dan harga
multiprosesor adalah perkiraan akan seberapa besar implementasi yang murah dibandingkan sistem
peningkatan kecepatan multiprosesor dalam cluster konvensional.
menyelesaikan suatu problem. Perbandingan Komputasi dengan cluster Beowulf
tersebut dapat dilakukan menggunakan solusi melibatkan 4 hal dalam pertimbangan sistem:[3]
terbaik yang dapat dilakukan oleh prosesor tunggal, 1. sistem perangkat keras,
yakni algoritma sekuensial terbaik pada sistem 2. manajemen sumber daya komputasi,
prosesor tunggal dibandingkan dengan algoritma 3. pustaka pemrograman paralel,
paralel pada multiprosesor yang sedang diteliti. 4. algoritma paralel.
Dengan persamaan sebagai berikut:[4]
C. Permainan Catur
(2-3)
Kata catur diambil dari bahasa Sanskerta
dengan yang berarti "empat". Namun kata ini sebenarnya
S(p) = peningkatan kecepatan jika merupakan singkatan dari caturangga yang berarti
menggunakan multiprosesor empat sudut. Di India kuno permainan catur
ts = waktu proses menggunakan sistem memang dimainkan oleh empat peserta yang berada
prosesor tunggal di empat sudut yang berbeda. Hal ini lain dari
tp = waktu proses menggunakan permain catur modern di mana pesertanya hanya
multiprosesor dua orang saja. Kemudian kata caturangga ini
Peningkatan kecepatan komputasi paralel diserap dalam bahasa Persia menjadi shatranj. Kata
secara teori dibatasi kendala sekuensial bahwa chess dalam bahasa Inggris diambil dari bahasa
sebuah rutin tidak dapat dipecah menjadi unit yang Persia shah.
lebih kecil dan harus dijalankan secara sekuensial
di satu prosesor. Sementara secara praktek
peningkatan kecepatan komputasi paralel dibatasi
performa perangkat keras, penjadwalan proses
sistem operasi, konfigurasi lingkungan komputasi
dan overhead rutin program karena komunikasi dan
sinkronisasi antar proses.

B. Cluster Beowulf
Cluster (klaster komputer) adalah kumpulan
komputer yang dapat beroperasi secara mandiri,
Gambar 1. Permainan Catur
yang disatukan dengan jaringan komunikasi data

2
Catur adalah sebuah permainan yang rata-rata factor percabangan dan ledakan
dimainkan oleh dua orang. Sebelum bertanding, eksponensial yang sangat besar. Karena
pecatur memilih biji catur yang akan ia mainkan. itulah pada saat itu dia memilih strategi
Terdapat dua warna yang membedakan bidak atau Type-B. Tetapi dengan penemuan algoritma
biji catur, yaitu hitam dan putih. Pemegang buah alpha-beta dan seluruh ekstensinya, brute-
putih memulai langkah pertama, yang selanjutnya force menjadi sangat sukses dari tahun 70an
diikuti oleh pemegang buah hitam secara hingga sekarang, karena prosedur untuk
bergantian sampai permainan selesai. mengklasifikasikan dan membuang gerakan
yang jelek pada Type-B sangatlah sulit
Ketentuan Catur dan rawan dengan kesalahan.
Permainan dilangsungkan di atas papan
yang terdiri dari 8 lajur dan 8 baris kotak/petak
berwarna hitam dan putih (atau terang dan gelap)
secara berselang seling. Permainan dimulai dengan
16 buah pada masing-masing pihak, yang disusun
berbaris secara khusus pada masing-masing sisi
papan catur secara berhadap-hadapan. Satu buah
hanya bisa menempati satu petak. Pada bagian
terdepan masing-masing barisan - terdapat 8 pion,
diikuti di belakangnya dua benteng (rook), dua Gambar 2. Shannon Type-A
kuda atau ksatria (knight), dua gajah (bishop), satu
menteri atau ratu atau ster (queen), serta satu raja Algoritma Type-A cukuplah sederhana,
(king). namun membutuhkan komputasi yang teramat
besar (tergantung jumlah kedalaman pencarian).
Akhir Permainan
Tujuan permainan adalah mencapai posisi Type B - sebuah selektif search yang hanya
skak mat (checkmate). Hal ini bisa terjadi bila Raja melihat pada cabang yang penting. Type-
terancam dan tidak bisa menyelamatkan diri ke B, seperti telah dijelaskan diatas adalah
petak lain. Tidak selalu permainan berakhir dengan pendekatan selektif untuk mencari minimax
kekalahan, karena bisa terjadi pula peristiwa seri trees yang hanya terdiri dari beberapa
atau remis di mana kedua belah pihak tidak mampu gerakan yang dianggap bagus yang
lagi meneruskan pertandingan karena tidak bisa berlawanan dengan strategi brute-force
mencapai skak mat. Dalam pertandingan catur Type-A. Cara ini bekerja dengan
pihak yang menang biasanya mendapatkan nilai 1, berkonsentrasi pada pemilahan gerakan
yang kalah 0, sedang draw 0.5. berdasarkan pengetahuan luar tentang
permainan catur itu sendiri, contohnya saat
D. Algoritma Shannon pergerakan awal, orang lebih banyak
Tingkat Kompleksivitas Algoritma untuk memilih menggerakan pion di tengah
Catur menurut Shannon adalah 10120 atau disebut daripada pion di tepi. Cara ini sangat
juga sebagai Shannon Number. Jumlah tersebut tergantung pada ketrampilan bermain sang
sangatlah besar (hingga melebihi jumlah partikel di programmer dan kualitas dari pemilahan
alam semesta) dan tidak mungkin dihitung tersebut, sehingga hasil untuk tiap orang
menggunakan teknologi saat ini. bisa sangat berbeda drastis.
Pencarian adalah metode untuk melihat Terinspirasi oleh eksprimen dari Adriann de
kedepan pada setiap gerakan dan mengevaluasi Groot, Shannon dan para programmer pada masa
posisi setelah melakukan gerakan tersebut. itu lebih memilih strategi Type-B. Tipe ini
Claude Shannon mengkategorikan search menggunakan semacam heuristik statis dengan
menjadi dua tipe: tujuan hanya untuk melihat cabang yang penting,
Type A - sebuah brute-force search yang dengan kekurangan banyak strategi-strategi yang
melihat seluruh kemungkinan dengan terlewat karena jumlahnya yang sangat banyak
kedalaman yang sudah ditentukan. Strategi sekali.
Type-A dikemukakan oleh Claude Shannon Type-B merupakan algoritma yang popular
pada publikasinya yang sangat terkenal: hingga tahun 1970, dimana Type-A memiliki
Programming a Computer for Playing processing power yang lebih besar dan algoritma
Chess, sebagai strategi brute-force, yang brute-forcenya menjadi lebih kuat.
disebutkan Shannon bahwa strategi ini Kebanyakan program sekarang lebih dekat
terlalu lambat dan lemah, dikarenakan oleh pada Type-A, tetapi mempunyai beberapa

3
karakteristik Type-B (hal inilah yang membedakan
banyak program-program catur yang ada sekarang).

III. PERANCANGAN DAN IMPLEMENTASI


A. Spesifikasi Sistem Paralel
Perangkat yang digunakan untuk
implementasi pemrosesan paralel permainan catur
diuraikan sebagai berikut:
a) Perangkat Keras:
1. 4 unit komputer personal: Intel i3
550, DDR3 2 GB.
2. 1 unit komputer personal: Intel Dual
Core E7400, DDR2 2 GB.
3. Switch TL-SG1024D dan perkabelan
UTP Cat 5e.
b) Perangkat Lunak:
1. GNU/Linux Salix64 14.1: gcc Gambar 4. Gambaran Umum Sistem Pemrosesan
4.8.2, glibc 2.17, dan kernel Linux Paralel
3.10.17 64-bit (komputer Front-end).
2. GNU/Linux Salix64 14.0: gcc 4.7.1,
glibc 2.15, dan kernel Linux 3.2.29
64 bit (komputer slave).
3. Open MPI 1.8.1.

Gambar 6. Sistem Komputasi Paralel


Cara kerja aplikasi ini dimulai dengan
masukan gerakan dari pemain manusia yang
bermain sebagai putih. Pemain menggerakkan
bidak dengan cara menuliskan koordinat awal dan
koordinat akhir bidak putih ke petak tujuan di
dalam command prompt. Selanjutnya gerakan
tersebut akan divalidasi oleh fungsi didalam
program, apakah sudah sesuai peraturan atau belum
(contoh: tidak ada bidak yang bisa melompati bidak
lain kecuali kuda). Setelah itu dilakukan proses
pengecekan apakah ada bidak teman (allied pieces)
di petak tujuan tadi. Setelah proses ini selesai,
giliran berpindah pada Hitam (computer). Pada saat
giliran berpindah pada hitam inilah sistem
komputasi paralel akan menjalankan fungsi untuk
menemukan seluruh gerakan yang mungkin untuk
hitam pada keadaan papan saat ini (karena kondisi
papan berubah setelah Putih melakukan gerakan
tadi). Lalu seluruh gerakan tadi disimpan kedalam
sebuah variabel board (history_board). Setelah
seluruh gerakan yang mungkin selesai dicatat akan
dilakukan proses evaluasi menggunakan algoritma
Shannon Type-A untuk setiap gerakan tersebut.
Gambar 5. Abstraksi Sistem Pemrosesan Paralel Setelah semua gerakan selesai dievaluasi, akan
pada Program Catur dipilih gerakan yang akan menghasilkan nilai
terbaik untuk hitam (paling menguntungkan) lalu
gerakan tersebut akan dieksekusi.

4
B. Perancangan Program Catur Setiap gerakan yang mungkin harus
Board Representation dianalisa dan dinilai berdasarkan perubahan
Board Representation yang digunakan pada papan yang terjadi akibat langkah tersebut.
program ini adalah Array 1 Dimensi Setelah seluruh evaluasi selesai, dipilih
berukuran 64. Dikarenakan jumlahnya yang gerakan yang paling bagus, yaitu gerakan
sama dengan jumlah petak (squares) pada yang akan menghasilkan hasil evaluasi
papan catur. paling tinggi.
Proses Evaluasi akan dijalankan saat turn
(giliran) berpindah ke komputer. Komputer
akan mengevaluasi papan berdasarkan
kondisi saat ini (yaitu setelah pemain
sebelumnya selesai melakukan gerakan).
Jika salah satu raja sudah dicapture, maka
permainan akan berakhir. Dan pemain
selanjutnya (baik manusia ataupun
komputer) tidak akan mendapat giliran.

IV. PENGUJIAN DAN ANALISIS


A. Pengujian waktu proses komputasi
terhadap jumlah komputer slave yang
digunakan dengan kedalaman yang
Gambar 7. Board Representation bervariasi.
Jumlah Processing
Pada gambar diatas, Array dimulai dari Depth
Slave Time
Node0 Node1 Node2 Node3

pojok kiri atas, dengan berdasar pada sistem 2 1 1.050 s - - - -

koordinat Cartesian versi pemrograman. 2 1.052 s 778 714 - -

Yaitu index pertama atau [0] berada pada 4 912 s 694 670 498 641
koordinat A,1 dan index terakhir atau [63] 4 1 2.238.993 s - - - -
berada pada koordinat H,8.
2 677.031 s 641.559 552.832 - -

Move Generation 4 703.966 s 674.850 703.665 677.911 674.248

Move Generation berlaku baik untuk Putih 6 1


938.743.562
s
- - - -

maupun Hitam. Proses ini bertujuan untuk 2


1.230.545.974
s
1.748.989.002 1.825.135.938 - -

memeriksa legalitas dari gerakan yang akan 4


1.174.763.770
1.124.508.045 995.747.396 954.103.481 964.574.693
s
dilakukan. Legalitas yang dimaksud adalah
bisa atau tidaknya suatu bidak akan bergerak Tabel 1. Waktu Terlama Proses Komputasi
pada petak tujuan sesuai dengan peraturan dengan Jumlah Slave yang Berbeda
yang berlaku pada catur.
Dalam program ini Move Generation akan B. Perbandingan waktu eksekusi proses
dipecah menjadi satu peraturan global, dan komputasi tunggal dengan waktu
sisanya adalah peraturan untuk setiap jenis eksekusi proses komputasi paralel.
bidak, dengan rincian: Pengujian ini bertujuan untuk
membandingkan waktu proses komputasi
yang berjalan pada sistem komputasi
Peraturan Global:
tunggal dengan sistem komputasi paralel.
a. Gerakan tidak akan bisa dilakukan jika
Perbandingan waktu komputasi tersebut
petak tujuan sudah ditempati oleh bidak
menghasilkan peningkatan kecepatan.
dengan warna yang sama.
b.Jalan menuju petak tujuan sudah ditempati
oleh bidak dengan warna yang sama
(allied pieces). Dengan pengecualian
untuk Kuda yang bisa melompat.
Kedua hal tersebut berlaku untuk semua
bidak tanpa kecuali walaupun sudah
memenuhi peraturan individual untuk semua
jenis bidak.

Evaluation (a) (b)

5
DAFTAR PUSTAKA
[1] Shannon, Claude E. Programming a
Computer for Playing Chess. Philosophical
Magazine. Ser.7 Vol. 41, No. 314 March
1950.
[2] Reif, John., Sangutevar Rajasekaran. 2008.
Handbook of Parallel Computing: Models,
Algorithms and Applications. New York:
Chapman & Hall/CRC Press.
(c) [3] Sterling, Thomas. 2002. Beowulf Cluster
Gambar 8. Grafik Peningkatan Kecepatan Computing with Linux. Cambridge: The MIT
Menggunakan 2 dan 4 slave dengan (a)2 Depth, Press.
(b)4 Depth, dan (c)6 Depth [4] Wilkinson, Barry, Michael Allen. 2010.
Parallel Programming Teknik & Aplikasi
V. KESIMPULAN DAN SARAN Menggunakan Jaringan Workstation dan
A. Kesimpulan Komputer Paralel. Yogyakarta: Penerbit
Berdasarkan pengujian dan analisis sistem, Andi. (Edisi Bahasa Indonesia).
dapat ditarik kesimpulan sebagai berikut: [5] Borovska, Plamenka., Milena Lazarova. 2007.
1. Semakin besar tingkat kedalaman, Efficiency of Parallel Minimax Algorithm for
waktu proses komputasi yang Game Tree Search.
dibutuhkan juga semakin lama. http://dl.acm.org/citation.cfm?id=1330615&dl
2. Dari hasil pengujian, dapat dilihat =ACM&coll=DL&CFID=421076715&CFTO
bahwa dengan semakin KEN=23012478 (diakses 24 Desember 2013)
bertambahnya tingkat kedalaman, [6] Rachmanto, Dian. 2013. Implementasi
maka semakin tinggi pula kinerja Algoritma Pencarian Shannon Type-A Pada
prosesor. Program Permainan Catur. Teknik Elektro
3. Dari hasil pengujian, saat Universitas Brawijaya.
menggunakan 2 komputer slave [7] Aliyansyah, Muhammad Zulhaj. 2013.
dengan 2, 4, dan 6 depth, Komputasi Paralel Integral Definit Rangkap
peningkatan kecepatannya sebesar Tiga dengan Metode Monte Carlo di Cluster
0,998, 3,307, dan 0,762. Saat Beowulf. Teknik Elektro Universitas
menggunakan 4 komputer slave Brawijaya.
dengan 2, 4, dan 6 depth, [8] Kerrigan, Tom. Tom Kerrigan's Home Page,
peningkatan kecepatannya sebesar http://www.tckerrigan.com/Chess/TSCP.
1,151, 3,180, dan 0,799. (diakses 1 Mei 2014)
4. Dari hasil analisis, semakin banyak [9] Lefler, Mark. Chess Programming Wiki,
komputer slave yang digunakan, https://chessprogramming.wikispaces.com.
waktu proses komputasi yang (diakses 19 April 2014)
dibutuhkan semakin pendek pada tiap [10] Hofferle, Jason. The Rules of Chess.
node komputer slave, sehingga [11] Chess, Wikipedia,
terjadi peningkatan kecepatan. http://en.wikipedia.org/wiki/Chess. (diakses
19 Juli 2014)
B. Saran [12]Open MPI: Open Source High Performance
Saran untuk pengembangan lebih lanjut: Computing, http://www.open-mpi.org.
1.Penyempurnaan algoritma dalam program (diakses 23 April 2014)
permainan catur. [13]Skiena, Steven S. 1997. Parallel Algorithms,
2.Pembuatan book untuk permainan catur. The Stony Brook Algorithm Repository,
3.Perhitungan nilai berdasarkan pada http://www8.cs.umu.se/kurser/TDBA77/VT06
langkah demi langkah. /algorithms/BOOK/BOOK/NODE100.HTM.
4.Pembuatan algoritma paralel yang lebih (diakses 6 Maret 2014)
kompleks. [14]Kluster komputer, Wikipedia,
5.Penanganan sistem paralel yang lebih http://id.wikipedia.org/wiki/Kluster_komputer
baik. . (diakses 13 Agustus 2014)
6.Pengembangan program catur dengan
struktur yang lebih kompleks.
7.Penggunaan sumber daya komputer
dengan spesifikasi yang lebih tinggi.

Anda mungkin juga menyukai