hasil uji coba parallel programming posix
TRANSCRIPT
-
7/30/2019 Hasil Uji Coba Parallel Programming POSIX
1/9
Laporan Hasil Eksperimen Komputasi Perkalian 2 Matrik
Nama : Hendri Karisma
NIM : 23512060
Komputer : Satelite L510 (notebook)
Processor : Intel Centrino. Core 2 Duo T6500 @ 2.1 GHz
Jumlah Core : 2
Cache Size : 2048 KB
Memori : 2.8 GB
Proses perhitungan perkalian matriks dari mulai ordo matriks 16, 32, 64, 100, 200, 400, 800,
1600 pertama melakukan perkalian matriks untuk masing-masing matriks dengan cara sequential
sebanyak 2 kali, dan dilakukan perkalian matriks untuk masing-masing matriks dengan cara
POSIX sebanyak 2 kali untuk masing-masing ordo dan jumlah thread.
Untuk perkalian matriks secara parallel dilakukan dengan menggunakan 2 kondisi jumlah thread,
dengan 2 thread dan dengan 4 thread. Ketika proses berlasung, jumlah kolom akan dibagi
kedalam jumlah thread (N-Thread atau 2 atau 4 thread) secara merata untuk setiap masing-
masing thread. Lalu akan dihasilkan output printf banyak pembagian kolom untuk di proses
untuk setiap threadnya dan informasi urutan thread mana yang dieksekusi terlebih dahulu dan
mana yang diselesaikan lebih dahulu. Lalu hasil akhir dikeluarkan waktu yang dibutuhkan untuk
menyelesaikan komputasi perkalian matriks tersebut.
Pengukuran waktu dimulai ketika sebelum threads tersebut dimulai dan akan dicatat waktuketika threads akan dimulai, lalau saat seluruh threads tersebut selesai dieksekusi maka akan
diambil waktu ketika threads itu diselesaikan dan akan diambil selisih antara waktu threads
diselesaikan dengan waktu ketika sebelum threads tersebut mulai dieksekusi secara bersamaan.
Pengukuran waktu menggunakan method clock_gettime() karena lebih menghasilkan waktu
mendekati real. Fungsi clock_gettime digunakan untuk mengambil nilai waktu dengan presisi
-
7/30/2019 Hasil Uji Coba Parallel Programming POSIX
2/9
clock_id, dan dapat mengimplementasikan system-wide realtime clock, dengan menggunakan
clock_realtime, atau pun menggunakan clock dari CPU id, yaitu menggunakan clock atau waktu
dari CPU (baik i386 ataupun itanium).
Berikut adalah hasil eksperimen untuk percobaan tanpa parallel, dan dengan parallel dengan 2
thread dan 4 thread.
1. Berikut percobaan tanpa menggunakan parallel :
Table 1: Hasil Eksperimen 0 untuk menghitung perkalian matriks tanpa parallel
-
7/30/2019 Hasil Uji Coba Parallel Programming POSIX
3/9
Table 2: Hasil Eksperimen 1 untuk menghitung perkalian matriks dengan 2 thread
Table 3: Hasil Eksperimen 2 untuk menghitung perkalian matriks dengan 2 thread
-
7/30/2019 Hasil Uji Coba Parallel Programming POSIX
4/9
Dan berikut adalah hasil eksperimen percobaan untuk perkalian matriks dari ordo 16 hingga
1600 dengan menggunakan 4 thread :
Table 4: Hasil Eksperimen 3 untuk menghitung perkalian matriks dengan 4 thread
-
7/30/2019 Hasil Uji Coba Parallel Programming POSIX
5/9
Table 5: Hasil Eksperimen 4 untuk menghitung perkalian matriks dengan 4 thread
Graphic
-
7/30/2019 Hasil Uji Coba Parallel Programming POSIX
6/9
1:
Grafik perbandingan hasil percobaan antara 1 thread, 2 threads dan 3 threads
Graphic 2: Graphic CPU yang terpakai dalam OS Ubuntu
-
7/30/2019 Hasil Uji Coba Parallel Programming POSIX
7/9
Graphic
3:
Grafik batang perbandingan hasil percobaan antara 1 thread, 2 threads dan 3 threads
-
7/30/2019 Hasil Uji Coba Parallel Programming POSIX
8/9
Graphic 4: Kondisi ketika 2 thread sedang berjalan untuk menghitung perkalian matriks
Uraian Analisis Hasil Eksperimen
Dari hasil eksperimen yang didapat terdapat perbedaan yang cukup besar antara kecepatan proses
ketika suatu proses (dalam kasus ini adalah perkalian 2 matriks) menggunakan prallel atau posix
atau menggunakan lebih dari satu thread dibandingkan dengan yang hanya menggunakan 1
thread. Terlihat dalam grafik 1 dan 2, dalam proses perhitungan matriks pun banyak ordo yang
dimiliki matriks, semakin besar ordo matriks, semakin besar pula waktu yang dibutuhkan untuk
menyelesaikan perkalian matriks tersebut. Dalam Graphic 4 pun yang merupakan screen shot
ketika CPU 1 dan CPU 2 sedang dalam proses pengerjaan perhitungan matriks 1600 dengan 2
threads, resource dari CPU 1 dan CPU 2 terlihat hampir 100% digunakan untuk menyelesaikan
-
7/30/2019 Hasil Uji Coba Parallel Programming POSIX
9/9
perkalian matriks, artinya setiap CPU menangani 1 threads untuk menyelesaikan perkalian
matriks, CPU 1 yang mungkin menangani thread 1 menangani perkalian matriks untuk row 0
sampai 799, sedangkan thread 2 yang mungkin ditangani oleh CPU 2, menangani perkalian
matriks dari row 800 sampai 1599, setelah kedua proses atau threads tersebut selesai, maka akan
dilakukan singkronisasi untuk setiap hasil threads.