BAB IV IMPLEMENTASI DAN PENGUJIAN
4.1 Kompilasi Program
Bahasa pemrograman yang digunakan adalah bahasa C. Simpan program hitung matriks kedalam file C dan simpan di drive C kemudian ubah file menjadi exe
dengan
compiler
gcc
dengan
perintah
C:\>g++
-I
"C:\Program
Files\MPICH2\include" -L "C:\Program Files\MPICH2\lib" program_matriks.c lmpi –lmpe.
Gambar 4.1 Hasil kompilasi program_matriks
4.2 Distribusi Program
Setelah dikompilasi pada node1 kemudian distribusikan file program matriks.exe ke semua node, disimpan dalam folder bin.
67 http://digilib.mercubuana.ac.id/
68
Gambar 4.2 program_matriks Pada PC Cluster, untuk menjalankan suatu program secara paralel maka pada tiap node harus terdapat program yang sama agar dapat dieksekusi. Oleh karena itu, program harus didistribusikan ke masing-masing node dalam bentuk file exe. Kemudian file exe tersebut disimpan dalam folder bin agar program dapat berjalan.
4.3 Eksekusi program
Setelah program terdapat pada setiap node, maka langkah berikutnya adalah eksekusi program.
4.3.1 Eksekusi program 1 node
Untuk eksekusi program hanya pada node1 dapat menggunakan perintah mpiexec –hosts 1 acer-pc program_matriks.exe. Kemudian akan meminta masukan angka yang merupakan ordo matriks. Dari proses
http://digilib.mercubuana.ac.id/
69 tersebut didapat nilai matriks persegi ordo 3 x 3 bisa dilihat pada gambar 4.3.1. Waktu yang dibutuhkan untuk menyelesaikan perhitungan ini adalah sebanyak 0.00020622332340280991 detik.
Gambar 4.3. Eksekusi program matriks pada 1 node
4.3.2 Eksekusi program 2 node
Untuk eksekusi program pada 2 node dapat menggunakan perintah mpiexec –hosts 2 acer-pc ningrum-pc program_matriks.exe. Waktu yang` dibutuhkan
untuk
menyelesaikan
perhitungan
0.01534631495451321800 detik.
http://digilib.mercubuana.ac.id/
ini
sebanyak
70
Gambar 4.4 Eksekusi program hitung pada 2 node
4.3.3 Eksekusi program 3 node
Untuk eksekusi program pada 3 node dapat menggunakan perintah mpiexec –hosts 3 acer-pc ningrum-pc fitria-pc program_matriks.exe. Waktu yang dibutuhkan untuk menyelesaikan perhitungan ini sebanyak 0.02737215941124304700 detik .
http://digilib.mercubuana.ac.id/
71
Gambar 4.5 Eksekusi program hitung pada 3 node
4.4 Pembagian Task
Pada PC Cluster terjadi pembagian task di masing-masing node yang digunakan untuk mengeksekusi program matriks.
4.4.1 Pembagian Task pada 1 Node Pembagian task pada 1 node tidak terjadi, oleh karena itu, setiap proses dalam program hitung dilakukan sendiri oleh node tersebut. Pada gambar 4.3 dilakukan penghitungan matriks dengan ordo 3 x 3. Pada program ini yang pertama kali dijalankan adalah
id = 0
memeriksa id prosesor yang digunakan. Kondisi ini digunakan untuk
http://digilib.mercubuana.ac.id/
72 meminta masukan, melakukan proses perhitungan, dan menampilkan hasil penghitungan. Kondisi
id = 0 hanya dimiliki oleh prosesor yang memulai
menjalankan program hitung. Kondisi id = 0 tidak harus terjadi pada prosesor 1 atau prosesor yang memiliki id terkecil. Hal ini dapat terjadi pada prosesor manapun. Nilai yang dimasukan tadi adalah variabel m ( nilai ordo matriks) dan waktu awal mulai dihitung, setelah itu maka dilakukan perhitungan terhadap variabel m dimana terjadi perkalian bilangan m dengan bilangan m itu sendiri karena melakukan perhitungan menuju
proses
MPI_Broadcast
yaitu
matriks persegi selanjutnya terjadi
pengiriman
datajika
menggunakan lebih dari 1 PC dan jika menggunakan 1 PC proses tersebut dilewati dan masuk kepada proses selanjutnya. Kemudian proses selanjutnya adalah melakukan proses random elemenelemen matriks pada id = 0, kemudian dilakukan proses MPI_REDUCE yaitu mengumpulkan hasil penghitungan random dari tiap-tiap prosesor, mereduksi data-data tersebut ke sebuah nilai dan menyimpan hasil reduksi tersebut ke prosesor induk untuk dilakukan perhitungan matriks. Kemudian melakukan proses random elemen-elemen matriks, setelah proses tersebut dilaksanakan selanjutnya proses memasukan array random kedalam array elemen matriks pada id 0 dan selanjutnya proses perulangan kordinat elemen-elemen matriks pada id yaitu id 0. Setelah itu terjadi proses perulangan untuk perkalian elemen-elemen matriks ordo pertama dan ordo ke dua kemudian dilakukan proses MPI_REDUCE (proses pengumpulan hasil nilai yang diproses). Proses selanjutnya adalah tampilan akhir program dimana masing-masing prosesor yaitu id 0 menampilkan hasil perkalian elemen-elemen matriks. Waktu akhirpun dicatat untuk menampilkan waktu pemrosesan maka waktu awal dikurang waktu akhir. Kemudian akan dicetak juga nama prosesor yang mengerjakan yaitu id 0.
http://digilib.mercubuana.ac.id/
73
Gambar 4.6 Pembagian task pada 1 Node
Tabel 4.1 Pembagian task pada 1 node
Task
Node
Perkalian matriks
Node
Node
1
Node 1
2
3
1 Kordinat 1,1 adalah 47 X 2 Kordinat 1,2 adalah 35 X 3 Kordinat 1,3 adalah 50 X 4 Kordinat 2,1 adalah 26 X 5 Kordinat 2,2 adalah 29 X 6 Kordinat 2,3 adalah 33 X 7 Kordinat 3,1 adalah 43 X 8 Kordinat 3,2 adalah 37 X 9 Kordinat 3,3 adalah 49 X X= tidak melakukan proses program hitung
X X X X X X X X X
Dalam tabel 4.1 menunjukkan bahwa task 1 sampai 9 dikerjakan sendiri oleh node1. Sedangkan node yang lain tidak melakukan proses program hitung. Dalam tabel tanda X menandakan bahwa node tersebut tidak melakukan proses penghitungan.
http://digilib.mercubuana.ac.id/
74
4.4.2 Pembagian Task pada 2 Node
Pada PC Cluster apabila menggunakan 2 node, PC Cluster secara otomatis akan membagi tasks tersebut ke node yang lain. Berikut adalah pembagian tasks pada 2 node: Pada program ini yang pertama kali dijalankan adalah id = 0 memeriksa id prosesor yang digunakan. Kondisi ini digunakan untuk meminta masukan, melakukan proses perhitungan, dan menampilkan hasil penghitungan. Kondisi
id = 0 hanya dimiliki oleh prosesor yang memulai menjalankan
program hitung. Kondisi id = 0 tidak harus terjadi pada prosesor 1 atau prosesor yang memiliki id terkecil. Hal ini dapat terjadi pada prosesor manapun. Nilai yang dimasukan tadi adalah variabel m ( nilai ordo matriks) setelah itu maka dilakukan perhitungan terhadap variabel m dimana terjadi perkalian bilangan m dengan bilangan m itu sendiri karena melakukan perhitungan matriks persegi selanjutnya menuju proses MPI_Broadcast yaitu terjadi pengiriman data ke PC 2 yaitu id 1. Kemudian proses selanjutnya adalah melakukan proses random elemenelemen matriks pada id = 0, kemudian dilakukan proses MPI_REDUCE yaitu mengumpulkan hasil penghitungan random dari tiap-tiap prosesor, mereduksi data-data tersebut ke sebuah nilai dan menyimpan hasil reduksi tersebut ke prosesor induk untuk dilakukan perhitungan matriks. Kemudian melakukan proses random elemen-elemen matriks pada masing–masing id yaitu id 0 dan id 1, setelah proses tersebut dilaksanakan selanjutnya proses memasukan array random kedalam array elemen matriks pada masing-masing id dan selanjutnya proses perulangan kordinat elemen-elemen matriks pada masingmasing id yaitu id 0 dan 1. Setelah itu terjadi proses perulangan untuk perkalian elemen-elemen matriks ordo pertama dan ordo ke dua kemudian dilakukan proses MPI_REDUCE (proses pengumpulan hasil nilai yang diproses) data dari id 1 dikirim ke id 0. Proses selanjutnya adalah tampilan akhir program dimana
http://digilib.mercubuana.ac.id/
75 masing-masing prosesor menampilkan hasil perkalian elemen-elemen matriks. Waktu akhir dicatat sehingga didapatkan durasi yaitu waktu awal dikurang waktu akhir sehingga didapatkan nilai durasi yang dibutuhkan untuk melakukan proses tersebut, kemudian mencetak prosesor yang mengerjakan.
Gambar 4.7 Pembagian task pada 2 Node
Tabel 4.2 Pembagian task pada 2 node Node
Perkalian matriks
Node
Perkalian matriks
Node
1
Node 1
2
Node 2
3
1
Kordinat 1,1 adalah 30
2
Kordinat 1,2 adalah 27
X
T
3
Kordinat 1,3 adalah 36
5
Kordinat 2,2 adalah 11
X
a
4
Kordinat 2,1 adalah 15
8
Kordinat 3,3 adalah 16
X
s
6
Kordinat 2,3 adalah 16
-
-
X
k
7
Kordinat 3,1 adalah 17
-
-
X
9
Kordinat 3,2 adalah 21
-
-
X
http://digilib.mercubuana.ac.id/
76 Dalam tabel 4.2 menunjukkan bahwa task 1, 3, 4, 6,7, 9 dikerjakan oleh node1. Sedangkan task 2, 5, 8 dikerjakan oleh node2. Dalam tabel tanda X menandakan bahwa node tersebut tidak melakukan proses penghitungan.
4.4.3 Pembagian Task pada 3 Node
Pada PC Cluster apabila menggunakan 3 node, PC Cluster secara otomatis akan membagi tasks tersebut ke 2 node yang lain. Berikut adalah pembagian tasks pada 3 node: Pada program ini yang pertama kali dijalankan adalah id = 0 (PC 1) memeriksa id prosesor yang digunakan. Kondisi ini digunakan untuk meminta masukan, melakukan proses perhitungan, dan menampilkan hasil penghitungan. Kondisi id = 0 hanya dimiliki oleh prosesor yang memulai menjalankan program hitung. Kondisi id = 0 tidak harus terjadi pada prosesor 1 atau prosesor yang memiliki id terkecil. Hal ini dapat terjadi pada prosesor manapun. Nilai yang dimasukan tadi adalah variabel m ( nilai ordo matriks) dan waktu awal mulai dihitung, setelah itu maka dilakukan perhitungan terhadap variabel m dimana terjadi perkalian bilangan m dengan bilangan m itu sendiri karena melakukan perhitungan
matriks persegi selanjutnya
menuju proses MPI_Broadcast yaitu terjadi pengiriman data ke PC 2 dan PC 3 yaitu id 1 dan id 2. Kemudian proses selanjutnya adalah melakukan proses random elemenelemen matriks pada id = 0, kemudian dilakukan proses MPI_REDUCE yaitu mengumpulkan hasil penghitungan random dari tiap-tiap prosesor, mereduksi data-data tersebut ke sebuah nilai dan menyimpan hasil reduksi tersebut ke prosesor induk untuk dilakukan perhitungan matriks. Kemudian melakukan proses random elemen-elemen matriks pada masing–masing id yaitu id 0, id 1, dan id 2 setelah proses tersebut dilaksanakan selanjutnya proses memasukan array random kedalam array elemen matriks pada masing-masing
http://digilib.mercubuana.ac.id/
77 id dan selanjutnya proses perulangan kordinat elemen-elemen matriks pada masing-masing id yaitu id 0, 1 dan 2. Setelah itu terjadi proses perulangan untuk perkalian elemen-elemen matriks ordo pertama dan ordo ke dua kemudian dilakukan proses MPI_REDUCE (proses pengumpulan hasil nilai yang diproses) data dari id 1 dan id 2 dikirim ke id 0. Proses selanjutnya adalah tampilan akhir program dimana masing-masing prosesor yaitu id 0 menampilkan hasil perkalian elemen-elemen matriks, terjadi proses pembagian tugas untuk menyelesaikan elemen-elemen matriks. Waktu akhirpun dicatat untuk menampilkan waktu pemrosesan maka waktu awal dikurang waktu akhir. Kemudian akan dicetak juga nama prosesor yang mengerjakan yaitu id 0 dan id 1 dan id 2.
Gambar 4.8 Pembagian task pada 3 Node
http://digilib.mercubuana.ac.id/
78
Tabel 4.3 Pembagian task pada 3 node Perkalain
Perkalain
Perkalain
Node
matriks
Node
matriks
Node
matriks
1
Node 1
2
Node 2
3
Node 2
Kordinat 1,1
1
T a
4
s
adalah 48 Kordinat 2,1
2
adalah 24
5
Kordinat 3,1
k 7
adalah 37
8
Kordinat 2,1 adalah 42 Kordinat 2,2
3
adalah 24
6
Kordinat 3,2 adalah 32
9
Kordinat 3,1 adalah 44 Kordinat 3,2 adalah 28 Kordinat 3,3 adalah 29
Dalam tabel 4.3 menunjukkan bahwa task 1, 4, 7 dikerjakan oleh node1. Sedangkan task 2, 5, 8 dikerjakan oleh node2, dan terakhir task 3, 6, 9 dikerjakan oleh node3. 4.5 Analisa Hasil Pengujian
Dalam pembuatan PC Cluster dilakukan percobaan sehingga dihasilkan seperti pada tabel dan grafik di bawah ini: Tabel 4.4 Tabel perhitungan matriks ordo 3 x 3 dan waktu yang dibutuhkan Jumlah
Ordo matriks
Memerlukan waktu
1
3x3
0.00020622332340280991 detik
2
3x3
0.01534631495451321800 detik
3
3x3
0.02737215941124304700 detik
Node
Pada penghitungan kecil ordo matriks 3 x 3, bertambahnya jumlah PC tidak mengakibatkan penghitungan diselesaikan semakin cepat, hal ini disebabkan karena penghitungan yang kecil bila menggunakan banyak PC akan memboroskan waktu proses di jaringan.
http://digilib.mercubuana.ac.id/
79
Tabel 4.5 Tabel perhitungan matriks ordo 5 x 5 dan waktu yang dibutuhkan Jumlah
Ordo matriks
Memerlukan waktu
1
5x5
0.00051693029195121198 detik
2
5x5
0.01403410750071998300 detik
3
5x5
0.02875507237786223400 detik
Node
Pada penghitungan kecil ordo matriks 5 x 5, bertambahnya jumlah PC tidak mengakibatkan penghitungan diselesaikan semakin cepat, hal ini disebabkan karena penghitungan yang kecil bila menggunakan banyak PC akan memboroskan waktu proses di jaringan. Tabel 4.6 Tabel perhitungan matriks ordo 10 x10 dan waktu yang dibutuhkan Jumlah
Ordo matriks
Memerlukan waktu
1
10 x 10
0.00292945496312313480 detik
2
10 x 10
0.01451309290951030600 detik
3
10 x 10
0.03045269345420820200 detik
Node
Pada penghitungan kecil ordo matriks 10 x 10, bertambahnya jumlah PC tidak mengakibatkan penghitungan diselesaikan semakin cepat, hal ini disebabkan karena penghitungan yang kecil bila menggunakan banyak PC akan memboroskan waktu proses di jaringan. Tabel 4.7 Tabel perhitungan matriks ordo 15 x15 dan waktu yang dibutuhkan Jumlah
Ordo matriks
Memerlukan waktu
1
15 x 15
0.01209493595342792100 detik
2
15 x 15
0.01021191240943153400 detik
3
15 x 15
0.00807155443908413870 detik
Node
http://digilib.mercubuana.ac.id/
80 Pada penghitungan besar matriks dengan jumlah ordo besar yaitu 15 x 15, komputer kluster bekerja sebagaimana mestinya yaitu menghemat waktu proses karena terjadi pembagian task pada masing – masing PC sehingga beban perhitungan dibagi-bagi kedalam prosesor
penghitungan semakin banyak PC
yang digunakan maka semakin menghemat waktu pengerjaan. Tabel 4.8 Tabel perhitungan matriks ordo 20 x20 dan waktu yang dibutuhkan Jumlah
Ordo matriks
Memerlukan waktu
1
20 x 20
0.03307382618186238700 detik
2
20 x 20
0.02761915271366888200 detik
3
20 x 20
0.01920543384221673500 detik
Node
Pada penghitungan besar matriks dengan jumlah ordo besar yaitu 20 x 20, komputer kluster bekerja sebagaimana mestinya yaitu menghemat waktu proses karena terjadi pembagian task pada masing – masing PC sehingga beban perhitungan dibagi-bagi kedalam prosesor
penghitungan semakin banyak PC
yang digunakan maka semakin menghemat waktu pengerjaan. Tabel 4.9 Tabel perhitungan matriks ordo 24 x24 dan waktu yang dibutuhkan Jumlah Node
Ordo matriks
Memerlukan waktu
1
24 x 24
0.06447165599638538000 detik
2
24 x 24
0.04793320894145836100 detik
3
24 x 24
0.02937355991582535400 detik
Pada penghitungan besar matriks dengan jumlah ordo besar yaitu 24 x 24, komputer kluster bekerja sebagaimana mestinya yaitu menghemat waktu proses karena terjadi pembagian task pada masing – masing PC sehingga beban perhitungan dibagi-bagi kedalam prosesor
penghitungan semakin banyak PC
yang digunakan maka semakin menghemat waktu pengerjaan.
http://digilib.mercubuana.ac.id/
81
Gambar 4.9 Grafik perhitungan matriks Pada perhitungan kecil menggunakan 1 PC memerlukan waktu yang lebih cepat dari pada menggunakan komputer kluster karena jika menggunakan satu PC saja untuk perhitungan kecil paket data yang diproses sedikit dan tidak memerlukan waktu untuk mengirim dan mengumpulkan data ke beberapa PC sehingga waktu yang diperlukan untuk pemrosesan lebih cepat dari pada komputer kluster sedangkan jika menggunakan komputer kluster dengan perhitungan kecil paket data yang dikirim kebeberapa PC kecil kemudian terjadi pemborosan waktu atau terjadi penambahan waktu pada saat pemrosesan dijaringan yaitu pada saat pengiriman data kesetiap PC dan pengumpulan data dari beberapa PC ke PC yang merunning program, ini menjadi overhead dalam program pengujian perhitungan matriks dalam komputer kluster sehingga waktu pengerjaan akan lebih lama. Sedangkan dalam perhitungan besar dengan menggunakan komputer kluster lebih cepat karena paket data yang besar tersebut dibagi –bagi menjadi kumpulan paket data yang kecil-kecil atau terjadi pembagian task ke beberapa PC yang lain sehingga masing-masing PC bekerja cepat untuk menyelesaikan data yang besar sedangkan waktu pengiriman dan pengumpulan
http://digilib.mercubuana.ac.id/
82 data tidak terlalu berpengaruh besar terhadap proses waktu yang dibutuhkan. Sedangkan jika perhitungan besar hanya dijalankan oleh sebuah PC maka akan membutuhkan banyak waktu untuk memproses datanya karena paket data yang besar tersebut hanya dikerjakan oleh satu PC atau tidak terjadi pembagian task sehingga waktu yang dibutuhkan menjadi lebih lama jika dibandingkan dengan komputer kluster. Dari beberapa hasil percobaan penghitungan besar didapat bahwa komputer kluster lebih efektif pada perhitungan matriks dengan jumlah ordo besar , tetapi jika proses penghitungan matriks dengan ordo yang kecil maka computer kluster memerlukan waktu yang lebih lama sehingga tidak efesien. Tabel 4.9 menunjukkan setiap pertambahan node maka akan memperkecil waktu yang dibutuhkan untuk menyelesaikan penghitungan. Pada Tabel 4.9 untuk ordo 24 x 24 penghitungan dengan satu node memerlukan waktu 0.06447165599638538000 detik, karena dengan menggunakan 1 node untuk perhitungan besar akan banyak memerlukan waktu karena tidak terjadi pembagian task pada PC sehingga 1 PC mengerjakan 576 task. Jika menggunakan 2 PC diperoleh waktu yang lebih cepat dari pada menggunakan 1 PC karena terjadi pembagian task yaitu masing –masing PC
mengerjakan
task
waktu 0.04793320894145836100
sebanyak
288
sehingga
detik.
Sedangkan
dengan
didapatkan tiga PC hanya
memerlukan waktu 0.02937355991582535400 detik lebih cepat jika dari pada menggunakan 2 PC, dengan pembagian task dimasing-masing PC sebanyak 192 hal
ini
memperlihatkan
bahwa
komputer
kluster
menghemat
waktu
0.035098096080560026 detik atau 54.44% lebih cepat dari waktu yang diperlukan untuk menyelesaikan penghitungan oleh satu PC.
http://digilib.mercubuana.ac.id/
83 Dari
hasil
analisa
diatas,
didapat
kesimpulan
bahwa
penyelesaian
penghitungan agar lebih efektif disesuaikan besar kecilnya penghitungan dengan jumlah PC yang
digunakan,
sehingga
waktu
yang
menyelesaikan proses tersebut lebih sedikit.
http://digilib.mercubuana.ac.id/
diperlukan
untuk