Institutional Repository | Satya Wacana Christian University: Multitasking dengan Menggunakan Nvidia Cuda T1 622009010 BAB IV

(1)

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


(2)

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


(3)

31

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


(4)

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.


(5)

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


(6)

34

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

Gambar 4.7 Perkalian matriks dengan sampel Matriks 10x10.


(7)

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


(8)

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


(9)

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.


(10)

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.


(11)

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.


(12)

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.


(13)

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


(1)

36

Tabel 4.3. Pengujian Multitasking GPUdengan 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


(2)

37

Tabel 4.4. Pengujian Multitasking GPUdengan 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.


(3)

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 Multitaskingcluster 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.


(4)

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 Multitaskingcluster 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.


(5)

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.


(6)

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