Metode Sorting Bitonic Pada GPU

dokumen-dokumen yang mirip
KOMPUTASI PADA JARINGAN KOMPUTER SEBAGAI ALTERNATIF PENINGKATAN KINERJA KOMPUTASI

Komputasi Paralel Sebagai Alternatif Solusi Peningkatan Kinerja Komputasi

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

Decrease and Conquer

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

Sorting Algorithms. Divide and Conquer

BAB IV PENGUJIAN DAN ANALISIS

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

JARINGAN UNTUK MERGING

Gambar 13.1 Ilustrasi proses algoritma sorting

BAB I PENDAHULUAN. Merancang aplikasi Paralel Processing yang diimplementasikan dengan penggunaan Computer-Unified-Device-Architecture (CUDA).

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

ALGORITMA PENGURUTAN & PENCARIAN

Penggunaan Algoritma Divide and Conquer Dalam Parallel Computing Untuk Melakukan 3D Rendering

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07

Penerapan Algoritma Bucket Sort Untuk melakukan Pengurutan n buah Bilangan Mata Kuliah Pemrosesan Paralel

Kompleksitas Algoritma Sorting yang Populer Dipakai

STRATEGI DIVIDE AND CONQUER

Penerapan Algoritma Divide and Conquer Dalam Komputasi Paralel

BAB 2 LANDASAN TEORI

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF

Analisis Kecepatan Sorting Dengan Notasi Big O

Outline STRUKTUR DATA. VII. Sorting

METODE DEVIDE AND CONQUER

TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST

Pendeteksian Kemacetan Lalu Lintas dengan Compute Unified Device Architecture (CUDA)

HASIL DAN PEMBAHASAN. Perangkat keras yang digunakan adalah sebagai berikut : PC Intel Core2Duo 1.8 GHz RAM 2 GB VGA GeForce 7600GT 256 MB

Analisis Algoritma Bubble Sort

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU

Kompleksitas Algoritma Dalam Algoritma Pengurutan

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Multithreading untuk Algoritma Divide and Conquer

BAB I PENDAHULUAN. penggunaan teknologi dalam menunjang kehidupan sehari - hari. berdasarkan data yang dihimpun oleh Gartner International Data

Sorting Algorithms. Definisi

STRUKTUR DATA SORTING ARRAY

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER

BAB VII ALGORITMA DIVIDE AND CONQUER

BAB 2 TINJAUAN PUSTAKA

PERTEMUAN 10 METODE DEVIDE AND CONQUER

BAB I PENDAHULUAN.

BAB II LANDASAN TEORI

Penggunaan Metode Binary Search Pada Translator Bahasa Indonesia Bahasa Jawa

Algoritma Bubble Sort dan Quick Sort

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

STUDI PERBANDINGAN PERFORMANSI PARALELISASI ALGORITMA SORTING DENGAN GPGPU

1. PENDAHULUAN 1.1. LATAR BELAKANG MASALAH

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Algoritma Divide and Conquer

Perbandingan Performa Kombinasi Algoritma Pengurutan Quick-Insertion Sort dan Merge-Insertion Sort

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

Penggunaan Algoritma Paralel dalam Optimasi Prosesor Multicore

EVALUASI KINERJA ALGORITMA PERKALIAN MATRIKS BERANTAI DENGAN TEKNIK DYNAMIC PROGRAMMING

MODUL IV PENCARIAN DAN PENGURUTAN

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

Heap Tree dan Kegunaannya dalam Heap Sort

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

MAKALAH ALGORITMA DIVIDE AND CONQUER

ALGORITMA DIVIDE AND CONQUER

BAB 2 LANDASAN TEORI

Analisa Kompleksitas Algoritma. Sunu Wibirama

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Algoritma Brute Force

Teknik Pengurutan Kartu Remi

STRUKTUR DATA (3) sorting array. M.Cs

Algoritma dan Struktur Data. Searching dan Sorting

Pengertian Algoritma Pengurutan

ARSITEKTUR SISTEM. Alif Finandhita, S.Kom, M.T. Alif Finandhita, S.Kom, M.T 1

BAB 8 SORTING DAN SEARCHING

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

PENGGUNAAN ALGORITMA PARALEL DALAM OPTIMASI PROSESOR MULTICORE

Algoritma Divide and Conquer (Bagian 2)

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

Perbandingan Algoritma Pengurutan Merge Sort, Quick Sort dan Heap Sort Dilihat dari Kompleksitasnya

7. SORTING DAN SEARCHING

Kompleksitas Algoritma dalam Strategi Algoritma Sorting

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

BAB 2 LANDASAN TEORI

BAB VI Pengurutan (Sorting)

BAB I PENDAHULUAN Latar Belakang

Pengurutan (Sorting) Algoritma Pemrograman

Penyelesaian Barisan Rekursif dengan Kompleksitas Logaritmik Menggunakan Pemangkatan Matriks

Data Structure SORTING. Chapter 11. Dahlia Widhyaestoeti, S.Kom

Transkripsi:

Metode Sorting Bitonic Pada GPU Yulisdin Mukhlis 1 Universitas Gunadarma Jl. Margonda Raya no 100 Depok ymukhlis@staff.gunadarma.ac.id Lingga Harmanto 2 Universitas Gunadarma Jl. Margonda Raya no 100 Depok lingga@staff.gunadarma.ac.id Abstrak Perubahan arsitektur komputer menjadi multiprocessor memang bisa membuat lebih banyak proses bisa dikerjakan sekaligus, namun perubahan tersebut tidaklah mampu meningkatkan kecepatan masing-masing proses secara signifikan. Peningkatan kecepatan setiap proses bisa dicapai melalui peningkatan kecepatan perangkat lunak. Kecepatan perangkat lunak sangat ditentukan oleh algoritmanya. Usaha untuk mencari algoritma yang lebih cepat tidaklah mudah, namun dengan adanya komputer multiprocessor, dapatlah dirancang algoritma yang lebih cepat, yaitu dengan memparalelkan proses komputasinya. Salah satu contoh implementasi dari multiprosessor pada desain grafis adalah GPU (graphical processing unit) yang dipelopori oleh NVIDIA. GPU menerapkan algoritma dari paralel computing. Salah satu algoritma tersebut adalah sorting. Sorting adalah salah satu masalah pokok yang sering dikemukakan dalam pemrosesan paralel. Strategi pemecahannya adalah dengan algoritma Divide and Conquer yaitu strategi pemecahan masalah dengan cara melakukan pembagian masalah yang besar tersebut menjadi beberapa bagian yang lebih kecil secara rekursif hingga masalah tersebut dapat dipecahkan secara langsung. Solusi yang didapat dari setiap bagian kemudian digabungkan untuk membentuk sebuah solusi yang utuh. Metode sorting seperti ini dinamakan sebagai bitonic sort. Kata kunci : GPU, Bitonic, paralel computing, algoritma, sort I. PENDAHULUAN Salah satu masalah kompleks yang hingga kini masih membutuhkan kemampuan komputasi yang besar adalah metode sorting pada pemrosesan paralel (Parallel Computing). Parallel Computing merupakan teknik menjalankan program untuk menjalankan suatu proses dengan menggunakan lebih dari satu unit komputasi[1]. Parallel Computing mempunyai prinsip yang bersesuaian dengan algoritma Divide and Compare, yaitu membagi-bagi proses menjadi bagian-bagian yang cukup kecil, selanjutnya data- dan tersebut akan dibandingkan derajatnya, sehingga dimungkinkan untuk dikerjakan oleh sebuah unit komputasi. Terdapat 2 klasifikasi parallel computer yang penting, yaitu : Sebuah komputer dengan banyak unit komputasi internal, atau lebih dikenal sebagai Shared Memory Multiprocessor Beberapa komputer yang terhubung melalui sebuah jaringan, atau lebih dikenal sebagai Distributed Memory Multicomputer. GPU adalah sebuah prosessor multithread yang mampu mendukung jutaan pemrosessan data pada satu waktu. Metode pemrosesan menggunakan konsep paralelisme antar thread. Gambar arsitektur secara umum dari GPU diperlihatkan seperti pada gambar dibawah : Gambar 1. Arsitektur GPU GPU terdiri dari n thread prosessor dan device memory. Setiap thread prosessor, terdiri dari beberapa precision FPU (Fragment Processing Unit) dan 1024 register 32 bit. Device memory akan menjadi tempat pemrosesan data sementara selama pemrosesan paralel. Pada pemrosesan data, GPU menggunakan metode shared memory multiprosessor. Kelebihan shared memory multiprocessor jika dibandingkan dengan jenis Parallel Computer yang lain adalah lebih cepat dan efisien karena kecepatan transfer data antar unit komputasi tidak mengalami degradasi. Hal ini disebabkan karena tiap-tiap unit komputasi yang digunakan terhubung hingga tingkat bus. Shared Memory Multiprocessor juga memiliki kekurangan yang cukup signifikan, diantaranya : Sulit untuk mengkoordinasikan pembagian memori yang tersedia untuk masing-masing unit komputasi Relatif lebih mahal dan lebih rumit untuk diimplementasikan Tidak tahan lama, sistem jenis ini lebih sulit untuk diupgrade. Salah satu permasalahan dalam programing GPU dengan CUDA adalah relasional query coprocessing pada graphics processors.permasalahan tersebut meliputi mapping, scatter, gather, reduce, prefix scan, split, filter dan sorting. Beberapa permasalahn tersebut sebenarnya merupakan permasalahan yang biasanya terjadi pada parallel computing. Karena permasalahan tersebut menyangkut parallel computing, maka hal tersebut tentunya berhubungan erat dengan apa yang terjadi dalam pemrosesan data pada GPU, mengingat hampir semua pemrosesan yang terjadi pada GPU identik dengan sistem yang ada pada paralel computing [1,2].

Gambar 2. Shared Memory Multiprocessor pada GPU II. PENGURUTAN (SORTING) Sort menurut Kamus Komputer dan Istilah Teknologi Informasi adalah penyortiran, biasa digunakan juga dalam arti pengurutan. Penyortiran ini disusun berdasarkan kriteria tertentu. Algoritma-algoritma pengurutan (sorting) dapat diklasifikasi berdasarkan teknik yang digunakan dalam algoritma tersebut. Pengklasifikasiannya adalah sebagai berikut [3,4] : A. Brute Force Brute force adalah sebuah pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah (problem statement) dan definisi konsep yang dilibatkan. Algoritma Brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas (obvious way). Yang termasuk di dalam algoritma Brute force adalah : 1. Bubble sort Merupakan algoritma pengurutan paling tua dengan metode pengurutan paling sederhana. Pengurutan yang dilakukan dengan membandingkan masing-masing item dalam suatu list secara berpasangan, menukar item jika diperlukan, dan mengulaginya sampai akhir list secara berurutan, sehingga tidak ada lagi item yang dapat ditukar. 2. Bidirectional bubble sort Merupakan variansi dari algoritma bubble sort, dimana item dalam suatu list dibandingkan secara berpasangan, menukarnya jika diperlukan, dan mempunyai alternatif melalui list secara berurutan dari awal sampai akhir kemudian dari akhir sampai awal lagi hingga tidak ada pertukaran (swap) yang dapat dilakukan. B. Divide and Conquer Divide and Conquer adalah metode pemecahan masalah yang bekerja dengan membagi masalah (problem) menjadi beberapa upa-masalah (subproblem) yang lebih kecil, kemudian menyelesaikan masing-masing masalah secara independen dan akhirnya menggabung solusi masalah sehingga menjadi solusi masalah semula. Termasuk di dalam algoritma Divide and Conquer adalah : 1. Merge sort Sebuah algoritma pengurutan yang membagi item yang akan diurutkan menjadi dua bagian, dan secara rekursif mengurutkan masing-masing bagian tersebut, lalu menggabungkannya sampai berakhir. 2. Insertion sort Sebuah algoritma pengurutan dengan mengambil item dan memasukkannya ke dalam struktur data yang secara berulang kali dalam susunan yang tepat. 3. Quick sort Sebuah algoritma pengurutan yang mengambil sebuah elemen dalam larik sebagai pivot, mempartisi elemen sisanya menjadi elemen yang lebih besar dan elemen yang lebih kecil daripada pivot, dan secara rekursif mengurutkan hasil dari partisi tersebut. 4. Selection sort Sebuah algoritma pengurutan yang secara berulang mencari item yang belum terurut dan mencari paling sedikit satu untuk dimasukkan ke dalam lokasi akhir. 5. Shell sort Merupakan algoritma yang stau jenis dengan insertion sort, dimana pada setiap nilai i dalam n/i item diurutkan. Pada setiap pergantian nilai, i dikurangi sampai 1 sebagai nilai terakhir.

C. Paralel Sorting Paralel sort adalah metode sorting yang dipakai pada pemrosesan paralel. Metode ini biasanya dipakai untuk kebutuhan pemrosesan data yang besar dan cepat. Yang termasuk dalam metode sorting paralel ini adalah : a. Radix Sort Secara kompleksitas waktu, radix sort termasuk ke dalam Divide and Conquer. Namun dari segi algoritma untuk melakukan proses pengurutan, radix sort tidak termasuk dalam Divide and Conquer. Radix sort merupakan sebuah algoritma pengurutan yang mengatur pengurutan nilai tanpa melakukan beberapa perbandingan pada data yang dimasukkan. [6] b. Bitonic Sort Merupakan algoritma sorting Devide and Conguer. Namun aplikasi dari bitonic lebih tepat dipakai pada paralel computing. III. BITONIC SORT Bitonic Sort adalah suatu algoritma pengurutan paralel menggunakan sorting network. Komponen terkecil dari sorting network adalah comparator, yaitu suatu perangkat dengan dua masukan, x dan y, dan dua keluaran, x dan y, di mana x = min(x, y) dan y = max( x, y ). Pada beberapa algoritma berikut, titik (.) diasumsikan sebagai 1 buah Fragmen Processing [3,5]. COMPARATOR(x,y) if x > y then temp x x y y temp Apabila diilustrasikan algoritma diatas dalam hubungannya dengan pembanding jaringan, digambarkan sebagai berikut : Gambar 4. Comparasion Network Suatu half cleaner adalah comparison network dengan kedalaman 1 di mana masukan ke i akan dibandingkan dengan masukan ke-( i + n /2) untuk i = 1,2,, n /2. Jika masukan dari half cleaner adalah bitonic sequence berukuran n, maka keluarannya adalah dua bitonic sequence yang masingmasing berukuran n /2 dan data pada bitonic sequence ke-2 = data bitonic sequence ke-1. Half cleaner dapat diterjemahkan menjadi modul algoritma berikut ini, yang waktu eksekusinya adalah O (1) : HALF-CLEANER(a, start, n) for i start to start+n/2-1 in parallel do COMPARATOR(a[i],a[i+n/2]) Dengan menggunakan half cleaner dapat dibentuk Bitonic Sorter. Bitonic Sorter( n ) dapat dibentuk dengan menghubungkan kabel keluaran dari half cleaner( n ) dengan kabel masukan dari dua Bitonic Sorter( n /2). Gambar 3. Komparator Diasumsikan setiap comparator membutuhkan waktu O (1) untuk melakukan operasinya. Dengan menghubungkan sejumlah comparator dengan kabel, dapat dibentuk sebuah Comparasion network. Sebuah sorting network adalah comparison network dimana untuk sembarang masukan akan menghasilkan keluaran yang terurut menaik (b 1 b 2 b 3... b n ). Suatu bitonic sequence adalah suatu sequence yang terurut menaik kemudian terurut menurun atau terurut menurun kemudian menaik. Sequence <1,4,6,8,3,2> dan <9,8,3,2,4,6> adalah contoh bitonic sequence. Gambar 5. Half Cleaner

BITONIC-SORTER(a, start, n) /*asumsi n genap*/ CLEANER(a, start, n) if n>2 then for i 0 to 1 in parallel do BITONIC-SORTER(a, start+i*n/2, n/2) HALF- Gambar 7. Merging network Akhirnya dengan menggabungkan merging network, didapat sebuah sorting network yang dapat mengurutkan sembarang sequence berukuran n (SORTER( n )). Gambar 6. Bitonic Sorter Waktu eksekusi Bitonic Sorter(n) dapat dihitung sebagai berikut : SORTER(a, start, n) /*asumsi n genap*/ if n>2 then for i 0 to 1 in parallel do SORTER(a, start+i*n/2, n/2) MERGER(a, start, n) T(n) = 0, n = 1 1 + T(n/2), n> 1 Waktu eksekusi Bitonic-Sort adalah : 0, n = 1 T(n) = O(log n ) + T(n/2), n> 1 Solusinya adalah T(n) = O(log n). Jadi waktu eksekusi Bitonic Sorter(n) = O(log n). Bitonic Sorter sudah mampu mengurutkan, namun masukannya berupa bitonic sequence. Diinginkan sebuah sorting network yang mampu mengurutkan sembarang data. Tahap berikutnya dari pembuatan sorting network tersebut adalah membentuk network yang mampu menggabungkan dua sequence berukuran n/2 yang sudah terurut menaik, menjadi sebuah sequence berukuran n yang terurut menaik. Ini disebut merging network. Merging network berukuran n dapat dibentuk dengan memodifikasi half-cleaner pertama dari bitonic sorter(n). Waktu eksekusinya juga O (log n ). MERGER(a, start, n) /*asumsi n genap*/ for i 1 to n/2 in parallel do COMPARATOR(a[start+i-1], a[start+n-i]) if n>2 then for i 0 to 1 in parallel do BITONIC-SORTER(a, start+i*n/2, n/2) Solusinya adalah O (log 2 n ). Gambar 8. Bitonic Sorter Sorting bitonic mengambil urutan data random sebagai input, selanjutnya membentuk split biner pada unsur-unsurnya, membandingkan dua elemen yang saling berdekatan, dan

melakukan pertukaran terhadap nilai-nilai yang diperlukan. Selanjutnya proses ini dilakukan secara rekursif, dan pada akhirnya, nilai-nilai yang dihasilkan akan digabungkan sesuai urutan. Misal, diketahui data sebagai berikut : 24 20 15 9 4 2 5 8 10 11 12 13 22 30 32 45 Hasil setelah binary split 10 11 12 9 4 2 5 8 24 20 15 13 22 30 32 45 Dari data diatas dapat dilihat bahwa setiap elemen setengah pertama lebih kecil dibanding elemen setengah kedua. Panjang elemen setiap setengah daftar bitonic adalah n/2. Apabila binary split ini terus dilakukan secara berulang untuk setiap setengah urutan data, maka akan didapatkan hasil sebagai berikut : IV. MAPPING SORT PADA GPU [4,5] Dengan memutar jenis bitonic normal 90 derajat ke kanan, maka akan diperoleh hasil ke kanan untuk penyortiran array 1D pada kunci n. Perhatikan bahwa pada setiap node yang dilewati, selalu ada sekelompok item yang diperlakukan sama. Ada hubungan kuat antara kelompok tetangga: terkadang mereka memiliki parameter dengan nilai-nilai yang berlawanan. Sekarang akan diberikan beberapa gambaran quad persortiran yang telah dilewatkan yang benar-benar sesuai dengan kelompok pasangan yang tepat dan bersamasama menutupi seluruh buffer. Di sisi kanan setiap quad, akan dilakukan operasi dalam program node yang linear diinterpolasi oleh rasterizer atas fragmen. Apabila ingin diurutkan sejumlah item secara bersamaan, maka sebaiknya data tersebut disimpan dalam tekstur 2D. Hal yang perlu dilakukan adalah memberikan perbandingan operasi yang tepat yang bisa digunakan untuk menemukan pasangan perbandingan. 10 11 12 9. 4 2 5 8 24 20 15 13. 22 30 32 45 4 2. 5 8. 10 11.12 9 22 20. 15 13. 24 30.32 45 4 2. 5 8. 10 9.12 11 15 13. 22 20. 24 30.32 45 Hasil sorting akan didapat 2 4. 5 8. 9 10. 11 12 13 15. 20 22. 24 30. 32 45 Untuk membentuk sebuah urutan data sepanjang n dari dua urutan sekuensial sepanjang n/2 diperlukan tahapan pembanding (komparator) sebesar log(n), misal 3 = log (8) adalah tahapan pembanding pada urutan i dari d hingga d. Jumlah tahapan pembanding T(n) pada seluruh jaringan sorting diberikan sebagai T(n ) = log(n) + T(n /2). Solusi persamaan ini adalah dengan melakukan pengurangan untuk setiap nilai T(n ) = log(n ) + log(n)-1 + log(n )2 +... + 1 = log(n ) (log(n )+1) / 2. Setiap tahapan pada sorting network berisi n/2 komparator. Secara keseluruhan, persamaan tersebut didefinisikan sebagai komparator O(n log(n 2 )). Gambar 10. Kunci pengelompokkan pada bitonic sort V. KESIMPULAN Pemrosesan data yang dilakukan oleh GPU menggunakan metode paralel computing. Beberapa algoritma pada query processing dapat diimplementasikan dengan menggunakan metode share processing dan share memory. Hal ini akan lebih mengoptimalkan fungsi komputasi paralel pada GPU. Pada GPU, fragment processing unit (FPU) bertindak sebagai prosessor array yang akan mengolah query query yang diberikan. Bitonic sorting adalah algoritma sorting pada paralel processing dimana metode sortingnya tetap menggunakan algoritma devide and congureor, yang selanjutnya akan di merge kedalam data paralel. Gambar 9. Tahapan bitonic sort pada 8 elemen. Kolom sebelah kiri adalah urutan input yang tidak urut.

REFERENCES [1] Kilgariff Emmett andfernando Randima, The Ge Force 6 series G Architecture, NVIDIA Corporation. [2] He, B., Lu, M., Yang, K., Fang, R., Govindaraju, N. K., Luo, Q., and Sander, P. V. 2009. Relational query coprocessing on graphics processors. ACM Trans. Datab. Syst. 34, 4, Article 21 (December 2009), 39 pages. DOI = 10.1145/1620585.1620588 http://doi.acm.org/10.1145/1620585.1620588 [3] Naga K. Govindaraju, Nikunj Raghuvanshi, Michael Henson, David Tuft, Dinesh Manocha, A Cache-Efficient Sorting Algorithm for Database and Data Mining Computations using Graphics Processors, University of North Carolina at Chapel Hill, http://gamma.cs.unc.edu/gpusort [4] Nadathur Satish, Mark Harris, and Michael Garland., Designing Efficient Sorting Algorithms for Manycore GPUs, Dept. of Electrical Engineering and Computer Sciences, University of California, Berkeley Berkeley, CA [5] Naga K. Govindaraju, Nikunj Raghuvanshi, Michael Henson, David Tuft, Dinesh Manocha, A Cache-Efficient Sorting Algorithm for Database and Data Mining Computations using Graphics Processors, University of North Carolina at Chapel Hill