bab iv pengujian dan analisis - …repository.uksw.edu/bitstream/123456789/6945/4/t1_622009010_bab...

13
29 BAB IV PENGUJIAN DAN ANALISIS Pada bab ini akan dijelaskan tentang pengujian dari masing masing metode computing dan juga analisa dari hasil pengujian tersebut. Pengujian dilakukan pada waktu proses dengan menjalankan aplikasi yang menerapkan algoritma sorting, perkalian matriks, inverse matrix dengan gauss jordan, BFS, dan Binary Search secara bersama-sama pada setiap metode computing, dan kemudian akan di ambil analisa. 4.1. Pengujian pada CPU Computing Pengujian untuk CPU computing dilakukan dengan menjalankan beberapa aplikasi yang telah dirancang secara bersamaan, kemudian hasil waktu akan dibandingkan. 4.1.1. Pengujian dengan Integer A. Aplikasi yang diuji Aplikasi sorting , perkalian matriks, binary search , dan eliminasi gauss jordan dengan menggunakan input bilangan integer. B. Langkah Pengujian 1. Input jumlah data pada masing-masing aplikasi. 2. Eksekusi keempat aplikasi secara bersamaan. 3. Setelah selesai catat waktu yang dibutuhkan masing-masing aplikasi. C. Hasil dan Analisa

Upload: duongtuyen

Post on 19-Apr-2018

237 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

29

BAB IV

PENGUJIAN DAN ANALISIS

Pada bab ini akan dijelaskan tentang pengujian dari masing – masing metode

computing dan juga analisa dari hasil pengujian tersebut. Pengujian dilakukan pada waktu

proses dengan menjalankan aplikasi yang menerapkan algoritma sorting, perkalian matriks,

inverse matrix dengan gauss jordan, BFS, dan Binary Search secara bersama-sama pada

setiap metode computing, dan kemudian akan di ambil analisa.

4.1. Pengujian pada CPU Computing

Pengujian untuk CPU computing dilakukan dengan menjalankan beberapa aplikasi

yang telah dirancang secara bersamaan, kemudian hasil waktu akan dibandingkan.

4.1.1. Pengujian dengan Integer

A. Aplikasi yang diuji

Aplikasi sorting , perkalian matriks, binary search , dan eliminasi gauss jordan

dengan menggunakan input bilangan integer.

B. Langkah Pengujian

1. Input jumlah data pada masing-masing aplikasi.

2. Eksekusi keempat aplikasi secara bersamaan.

3. Setelah selesai catat waktu yang dibutuhkan masing-masing aplikasi.

C. Hasil dan Analisa

Page 2: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

30

Tabel 4.1. Pengujian Multitasking CPU dengan input Data Integer

Sorting Jumlah

data Waktu (ms)

Binary Search

Jumlah data

Waktu(ms)

1.000.000 903

1.000.000 0,173

3.000.000 4.721

3.000.000 0,181

5.000.000 11.134

5.000.000 0,190

7.000.000 20.783

7.000.000 0,228

9.000.000 32.792

9.000.000 0,236

Gauss J

Ukuran (Variabel)

Waktu (ms) Matriks Ukuran Waktu(ms)

1.000 12.484

1.000 27.243

2.000 250.124

2.000 98.827

3.000 333.325

3.000 1.066.902

4.000 467.822

4.000 1.180.062

5.000 1.167.870 5.000 2.611.740

Gambar 4.1 Hasil Sorting dengan Sampel 100 Data.

Page 3: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

31

Gambar 4.2 Hasil Perkalian Matriks dengan sampel Matriks 10 x 10.

Gambar 4.3 Hasil dari Eliminasi Gauss Jordan dengan Sampel Matriks 10 x 10 .

Page 4: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

32

Gambar 4.4 Hasil Binary Search dengan 30 Sampel Data.

Pemrosesan CPU dengan mengimplementasikan algoritma search dan sorting,

dapat menghasilkan waktu pemrosesan 0,903 detik sampai 32,792 detik untuk sorting dan

0,000173 detik sampai 0,000236 detik untuk search dengan input data 1.000.000 sampai

9.000.000 , namun waktu pemrosesan meningkat dengan melakukan perhitungan matriks

dan juga eliminasi linier gauss jordan. Jumlah dari array dan proses read and write pada

masing – masing array yang digunakan, membuat pemrosesan pada sorting dan search

membutuhkan waktu yang lebih sedikit dari perhitungan eliminasi linier dan perkalian

matriks.

CPU membutuhkan waktu sampai 2.600,740 detik untuk mengolah masukan data

untuk algoritma perkalian matriks dan 1.167,870 detik untuk eliminasi linier dengan input

data matriks 5000 x 5000. Meskipun CPU yang digunakan sudah memiliki 4 thread dan

juga memiliki clock speed yang cukup besar, susunan sekuensial algoritma dari program

yang diterapkan pada CPU, waktu pemrosesan dari perhitungan algoritma matriks tidak

secepat searching dan sorting.

Page 5: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

33

4.1.2. Pengujian Dengan Floating Point

A. Aplikasi yang Diuji

Aplikasi sorting , perkalian matriks, binary search , dan eliminasi gauss jordan

dengan menggunakan input bilangan floating point.

B. Langkah Pengujian

1. Input jumlah data pada masing-masing aplikasi.

2. Eksekusi keempat aplikasi secara bersamaan.

3. Setelah selesai catat waktu yang dibutuhkan masing-masing aplikasi.

C. Hasil dan Analisa

Tabel 4.2. Pengujian Multitasking CPU dengan Input Data Floating Point

Sorting Jumlah

data Waktu (ms)

Binary Search

Jumlah data

Waktu(ms)

1.000.000 295

1.000.000 0,128

3.000.000 2.892

3.000.000 0,215

5.000.000 5849

5.000.000 0,285

7.000.000 9.921

7.000.000 0,201

9.000.000 15.040

9.000.000 0,224

Gauss J

Ukuran (Variabel)

Waktu (ms) Matriks Ukuran Waktu(ms)

1.000 4.683

1.000 17.506

2.000 93.014

2.000 290.700

3.000 339.697

3.000 848.876

4.000 754.039

4.000 2.090.270

5.000 787.667 5.000 3.183.011

Gambar 4.5 Sorting dengan input Floating Point dan 100 Sampel Data .

Page 6: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

34

Gambar 4.6 Binary Search dengan input 100 sampel data Floating Point.

Gambar 4.7 Perkalian matriks dengan sampel Matriks 10x10.

Gambar 4.8 Metode Eliminasi Gauss Jordan dengan sampel 2 variabel.

Page 7: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

35

Pemrosesan algoritma searching dan sorting dengan ukuran data 9.000.000 data,

CPU membutuhkan waktu 15,040 detik untuk sorting dan 0,000224 detik untuk searching,

karena CPU keluaran terbaru sudah dilengkapi dengan Floating Point Unit (FPU) yang

ditanamkan oleh pabrikan di chipset.

Namun FPU pada CPU belum bisa memberikan waktu proses seperti pada saat

implementasi sorting dan searching. Pada saat memproses data input yang berupa floating

point pada implementasi algoritma perkalian matriks membutuhkan waktu pemrosesan

3.183,011 detik dan metode eliminasi gauss jordan membutuhkan waktu 787,667 detik

dengan menggunakan input data matriks yang berukuran 5000 x 5000.

4.2. Pengujian dengan GPU Computing

Pengujian pada GPU computing dengan menggunakan beberapa aplikasi yang juga

digunakan pada CPU computing , yang nantinya akan di eksekusi secara bersamaan, dan

hasilnya akan dibandingkan dengan metode lainnnya.

4.2.1. Pengujian dengan Integer

A. Aplikasi yang Diuji

Aplikasi sorting , perkalian matriks, binary search , dan eliminasi gauss jordan

dengan menggunakan input bilangan floating point.

B. Langkah Pengujian

1. Input jumlah data pada masing-masing aplikasi.

2. Eksekusi keempat aplikasi secara bersamaan.

3. Setelah selesai catat waktu yang dibutuhkan masing-masing aplikasi.

C. Hasil dan Analisa

Page 8: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

36

Tabel 4.3. Pengujian Multitasking GPU dengan input Data Integer

Sorting Jumlah

data Waktu (ms)

Binary Search

Jumlah data

Waktu(ms)

1.000.000 0,002464

1.000.000 0,065376

3.000.000 0,002464

3.000.000 0,076544

5.000.000 0,002464

5.000.000 0,078528

7.000.000 0,002464

7.000.000 0,085376

9.000.000 0,002528

9.000.000 0,084224

Gauss J

Ukuran (Variabel)

Waktu (ms) Matriks Ukuran Waktu(ms)

1.000 0,002496

1.000 0,002464

2.000 0,002496

2.000 0,002624

3.000 0,002432

3.000 0,002464

4.000 0,002624

4.000 0,002464

5.000 0,002624 5.000 0,002464

Berbeda dengan menggunakan CPU yang membutuhkan waktu proses lebih dari 50

menit pada saat pemrosesan perkalian matriks dengan ukuran data matriks yang sama yaitu

5000 x 5000, data yang di proses oleh GPU membutuhkan waktu proses 0,002464

milidetik. Karena GPU memiliki memori utama tersendiri untuk menopang kinerja dan

jumlah core processor CUDA yang digunakan mempunyai 144 inti, dibandingkan dengan

core processor CPU yang digunakan berjumlah 2 inti

4.2.2. Pengujian dengan Floating Point

A. Aplikasi yang Diuji

Aplikasi sorting , perkalian matriks, binary search , dan eliminasi gauss jordan

dengan menggunakan input bilangan floating point.

B. Langkah Pengujian

1. Input jumlah data pada masing-masing aplikasi.

2. Eksekusi keempat aplikasi secara bersamaan.

3. Setelah selesai catat waktu yang dibutuhkan masing-masing aplikasi.

C. Hasil dan Analisa

Page 9: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

37

Tabel 4.4. Pengujian Multitasking GPU dengan input Data Floating Point

Sorting Jumlah

data Waktu (ms)

Binary Search

Jumlah data

Waktu(ms)

1.000.000 0,002464

1.000.000 0,075376

3.000.000 0,002464

3.000.000 0,076544

5.000.000 0,002464

5.000.000 0,078528

7.000.000 0,002464

7.000.000 0,085376

9.000.000 0,002528

9.000.000 0,088321

Gauss J

Ukuran (Variabel)

Waktu (ms) Matriks Ukuran Waktu(ms)

1.000 0,002496

1.000 0,002464

2.000 0,002496

2.000 0,002624

3.000 0,002432

3.000 0,002464

4.000 0,002624

4.000 0,002464

5.000 0,002510 5.000 0,002464

Pada saat input dengan menggunakan data bertipe float, waktu yang dibutuhkan

dalam pemrosesan tidak berbeda jauh dengan input data integer yang sebelumnya telah

diuji. Dengan matriks 5000 x 5000 data integer membutuhkan waktu 0,002464 milidetik

dan dengan input jumlah data yang sama tetapi bertipe float waktu prosesnya 0,088321

milidetik. Berbeda dengan pemrosesan menggunakan CPU yang sudah memiliki FPU,

waktu pemrosesan pada perhitungan matriks 5000 x 5000 membutuhkan waktu 3.183,011

detik.

GPU CUDA didesain untuk render grafis yang memiliki data – data floating point

dan di desain menggunakan arsitektur yang berbeda untuk pengolahan data, maka

pemrosesan dengan input data float tidak akan membebani dari kinerja GPU.

4.3. Pengujian dengan MPI

Pengujian dengan MPI, menggunakan aplikasi MPICH2 dan menggunakan lib,

include dan bin dari MPICH2 untuk eksekusi aplikasi yang sudah terintegrasi dengan MPI.

Menggunakan 2 PC yang tersambung dengan LAN.

4.3.1. Pengujian dengan Integer

A. Aplikasi yang Diuji

Aplikasi sorting , perkalian matriks, binary search , dan eliminasi gauss jordan

dengan menggunakan input bilangan Integer.

Page 10: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

38

B. Langkah Pengujian

1. Input jumlah data pada masing-masing aplikasi.

2. Eksekusi keempat aplikasi secara bersamaan.

3. Setelah selesai catat waktu yang dibutuhkan masing-masing aplikasi.

C. Hasil dan Analisa

Tabel 4.5. Pengujian Multitasking cluster CPU dengan input data Integer

Sorting Jumlah

data Waktu (ms)

Binary Search

Jumlah data

Waktu(ms)

1.000.000 600

1.000.000 2.353

3.000.000 2.614

3.000.000 3.537

5.000.000 5.657

5.000.000 4.992

7.000.000 11.604

7.000.000 9.060

9.000.000 20.743

9.000.000 13.154

Gauss J

Ukuran (Variabel)

Waktu (ms) Matriks Ukuran Waktu(ms)

1.000 3.493

1.000 12.729

2.000 16.974

2.000 107.041

3.000 50.827

3.000 375.454

4.000 112.843

4.000 997.356

5.000 212.680 5.000 1.995.244

Pengujian dengan menggunakan MPI didapatkan waktu yang lebih cepat dari

menggunakan satu CPU, pada sorting menggunakan input 9.000.000 data, single CPU

membutuhkan waktu 32,792 detik dan dengan cluster computing membutuhkan waktu

proses 20,743 detik. Namun ada yang berbeda dengan Binary Search , dikarenakan

struktur data dari binary search. Apabila data di distribusikan ,akan membutuhkan waktu

pada saat data transfer dan waktu koneksi antara dua komputer.

Pada implementasi perkalian matriks 5000 x 5000, cluster computing dapat

menangani proses yang diberikan lebih cepat dari komputasi dengan single CPU, karena

menggunakan 2 processor yang memiliki kecepan dan virtual multithread yang tidak

begitu berbeda jauh dan dibantu dengan library dari MPI yang membantu membagi dan

mendistribusikan data. Implementasi matriks dengan input ukuran data matriks 5000 x

5000 memiliki waktu proses 1.995,244 detik, sedangkan pada single CPU memakan waktu

lebih lama 2.611,740 detik.

Page 11: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

39

4.3.2. Pengujian dengan Floating Point

A. Aplikasi yang Diuji

Aplikasi sorting , perkalian matriks, binary search , dan eliminasi gauss jordan

dengan menggunakan input bilangan Integer.

B. Langkah Pengujian

1. Input jumlah data pada masing-masing aplikasi.

2. Eksekusi keempat aplikasi secara bersamaan.

3. Setelah selesai catat waktu yang dibutuhkan masing-masing aplikasi.

C. Hasil dan Analisa

Tabel 4.6. Pengujian Multitasking cluster CPU dengan input data Floating Point

Sorting Jumlah

data Waktu (ms)

Binary Search

Jumlah data

Waktu(ms)

1.000.000 1.237 1.000.000 2.530

3.000.000 2.211 3.000.000 5.788

5.000.000 5.605 5.000.000 11.689

7.000.000 7.892 7.000.000 15.170

9.000.000 19.050 9.000.000 17.234

Gauss J

Ukuran (Variabel)

Waktu (ms) Matriks Ukuran Waktu(ms)

1.000 76.356 1.000 13.093

2.000 611.953 2.000 105.003

3.000 2.033.694, 3.000 395.775

4.000 4.856.766 4.000 1.010.834

5.000 9.475.768 5.000 2.065.384

Pengujian dengan menggunakan input floating point menunjukan bahwa proses

yang berjalan membutuhkan waktu yang lebih lama dari input menggunakan integer pada

saat memproses perkalian matriks 5000 x 5000, dengan input bilangan integer

membutuhkan waktu 1.995,244 detik sedangkan dengan input bilangan floating point

membutuhkan waktu 2.065,384 detik. Ada sebuah metode perhitungan yang membutuhkan

waktu yang lebih lama dari perhitungan lainnya, hal ini disebabkan transfer data antara

masing – masing komputer yang membutuhkan waktu dalam penyalinan memory dan

pengolahan data pada CPU yang mengolah data berpusat pada masing – masing core per

detiknya dan tidak efisien dalam pengolahan data kompleks yang banyak secara

bersamaan.

Page 12: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

40

4.4. Perbandingan Hasil Pengujian dengan Teori Kompleksitas Waktu

Setiap algoritma yang digunakan dalam pengujian memiliki kompleksitas, pada

perkalian matriks dan eliminasi linier kompleksitas waktu yang dimiliki adalah O(N3),

pada sorting memiliki kompleksitas waktu O(N log N) dan binary search memiliki

kompleksitas waktu O(log N).

Perhitungan waktu kompleksitas perkalian matriks dan eliminasi linier pada input

data 1000 x 1000 membutuhkan waktu pemrossan waktu 13.093 ms, apabila diterapkan

pada penggunaan O(N3), pada input 2000 x 2000 akan menghasilkan waktu 104.744 ms ,

dan waktu pada pengujian menggunakan CPU 105.003 ms untuk perkalian matriks dan

untuk eliminasi linier pada input data 1000 x 1000 membutuhkan waktu pemrosesan

76.356 ms, saat diterapkan dengan kompleksitas O(N3), maka akan menghasilkan waktu

610.848 ms. Selisih waktu dikarenakan beberapa faktor, seperti kecepatan CPU, kapasitas

RAM, dan Jumlah core dari CPU.

GPU yang memiliki arsitektur berbeda dengan CPU, mengeksekusi data dengan

paralel ke semua core yang dimiliki GPU. Waktu yang dibutuhkan tidak seperti CPU yang

berjalan secara sekuensial. Dengan performa memory copy host to device 6000 MiB/s,

device to host sebesar 6000 MiB/s, dan device to device sebesar 12.000 GiB/s, serta GPU

core performance untuk integer 84.000 Giop/s, single-precision float 168.608 Gflop/s, dan

double-precision float 21.000 Gflop/s maka waktu pemrosesan mampu diselesaikan dalam

kurang dari 1 detik.

Pemrosesan algoritma oleh GPU memiliki kompleksitas waktu yang sama dengan

pemrosesan pada CPU. Karena pemrosesan pada GPU berjalan secara paralel, GPU

membagi keseluruhan waktu proses sejumlah proses paralel. Dengan hasil waktu

pemrosesan paralel dan sekuensial yang berbeda, bisa dicari speed-up dari masing –

masing algoritma dengan menggunakan rumus S = T old / T new. Hasil speed-up yang

akan di hitung berdasarkan dari waktu proses dari CPU dan GPU. Pada Matriks dengan

input 1000 x 1000 hasil dari speed-up adalah S = 27.243 / 0,002464 = 11.056.412 kali.

Semakin bertambah jumlah datanya, maka nilai dari speed-up akan bertambah tinggi.

Page 13: BAB IV PENGUJIAN DAN ANALISIS - …repository.uksw.edu/bitstream/123456789/6945/4/T1_622009010_BAB IV.pdfdan eliminasi gauss jordan dengan menggunakan input bilangan Integer. B. Langkah

41

4.5. Tabel Perbandingan Hasil Pengujian CPU Computing, GPU Computing, dan

Cluster Computing

4.5.1. Sorting

Jumlah Data

CPU Computing (waktu) (ms)

GPU Computing (waktu) (ms)

Cluster Computing (waktu) (ms)

integer float integer float integer float

1.000.000 903 295 0,002464 0,002464 600 1.237

3.000.000 4.721 2.892 0,002464 0,002464 2.614 2.211

5.000.000 11.134 5849 0,002464 0,002464 5.657 5.605

7.000.000 20.783 9.921 0,002464 0,002464 11.604 7.892

9.000.000 32.792 15.040 0,002528 0,002528 20.743 19.050

4.5.2. Binary Search

Jumlah Data

CPU Computing (waktu) (ms)

GPU Computing (waktu) (ms)

Cluster Computing (waktu) (ms)

integer float integer float integer float

1.000.000 0,173 0,128 0,065376 0,075376 2.353 2.530

3.000.000 0,181 0,215 0,076544 0,076544 3.537 5.788

5.000.000 0,190 0,285 0,078528 0,078528 4.992 11.689

7.000.000 0,228 0,201 0,085376 0,085376 9.060 15.170

9.000.000 0,236 0,224 0,084224 0,088321 13.154 17.234

4.5.3. Perkalian Matriks

Jumlah Data

CPU Computing (waktu) (ms)

GPU Computing (waktu) (ms)

Cluster Computing (waktu) (ms)

integer float integer float integer float

1.000 27.243 17.506 0,002464 0,002464 12.729 13.093

2.000 98.827 290.700 0,002624 0,002624 107.041 105.003

3.000 1.066.902 848.876 0,002464 0,002464 375.454 395.775

4.000 1.180.062 2.090.270 0,002464 0,002464 997.356 1.010.834

5.000 2.611.740 3.183.011 0,002464 0,002464 1.995.244 2.065.384

4.5.4. Eliminasi Linier Gauss Jordan

Jumlah Data

CPU Computing (waktu) (ms)

GPU Computing (waktu) (ms)

Cluster Computing (waktu) (ms)

integer float integer float integer float

1.000 12.484 4.683 0,002496 0,002496 3.493 76.356

2.000 250.124 93.014 0,002496 0,002496 16.974 611.953

3.000 333.325 339.697 0,002432 0,002432 50.827 2.033.694,

4.000 467.822 754.039 0,002624 0,002624 112.843 4.856.766

5.000 1.167.870 787.667 0,002624 0,002510 212.680 9.475.768