JARINGAN UNTUK MERGING

dokumen-dokumen yang mirip
OPERASI MATRIKS. a 11 a 12 a 13 a 14 A = a 21 a 22 a 23 a 24 a 31 a 32 a 33 a 34 a 41 a 42 a 43 a 44

PENDAHULUAN. -. Pengolahan data numerik dalam jumlah yang sangat besar. -. Kebutuhan akan ketersediaan data yang senantiasa up to date.

PENDAHULUAN. Motivasi : -. Pengolahan data numerik dalam jumlah yang sangat besar. -. Kebutuhan akan ketersediaan data yang senantiasa up to date.

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

KEBUTUHAN KOMPUTER PARALEL

Decrease and Conquer

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Kompleksitas Algoritma

KOMPUTASI PADA JARINGAN KOMPUTER SEBAGAI ALTERNATIF PENINGKATAN KINERJA KOMPUTASI

Kompleksitas Algoritma

STRATEGI DIVIDE AND CONQUER

ANALISIS ALGORITMA BINARY SEARCH

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

>> KLASIFIKASI ARSITEKTURAL

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

PENGOLAHAN PARALEL. Kebutuhan akan Komputer Paralel PENDAHULUAN. Dahulu:

BAB 2 LANDASAN TEORI

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

METODE DEVIDE AND CONQUER (DANDC)

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

ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM = pea ram)

BAB II TINJAUAN PUSTAKA

Design and Analysis Algorithm

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

Algoritma dan Struktur Data

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

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Analisis Kecepatan Sorting Dengan Notasi Big O

Algoritma Divide and Conquer. (Bagian 2)

Kompleksitas Algoritma

SEARCHING & SORTING. Pendahuluan

Komputasi Paralel Sebagai Alternatif Solusi Peningkatan Kinerja Komputasi

Komponen Terhubung dan Jalur Terpendek Algoritma Graf Paralel

BAB VII ALGORITMA DIVIDE AND CONQUER

Kompleksitas Algoritma

BAB VI SEARCHING (PENCARIAN)

Langkah Awal menuju Analisis Kompleksitas Algoritma

Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes.

METODE DEVIDE AND CONQUER

ORGANISASI KOMPUTER II AUB SURAKARTA

OPERATOR, PERULANGAN DAN SELEKSI KONDISI

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Analisa Algoritma. Konsep Algoritma

Algoritma Divide and Conquer (Bagian 2)

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

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

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T

BAB 3 ANALISA SISTEM

Kompleksitas Algoritma (1)

KLASIFIKASI ARSITEKTURAL

UNIVERSITAS GUNADARMA

Kompleksitas Algoritma Dalam Algoritma Pengurutan

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

BAB IV PENGUJIAN DAN ANALISIS

MODUL IV PENCARIAN DAN PENGURUTAN

Design and Analysis Algorithm

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

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

Searching [pencarian] Algoritma Pemrograman

Array (Tabel) bagian 2

Pengantar Analisa Algoritma

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Analisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency

SATUAN ACARA PERKULIAHAN MATA KULIAH PENGOLAHAN PARALEL (S1/ TEKNIK KOMPUTER)

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

NOTASI UNTUK ALGORITMA PARALEL

Kompleksitas Algoritma Rank Sort dan Implementasi pada Parallel Programming Dengan Menggunakan OpenMP

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM = pea ram) Ver

Algoritma dan Struktur Data. Performansi Algoritma

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

PERTEMUAN 11 TEHNIK SEARCHING

PERANCANGAN DAN ANALISIS JUMLAH PROSESOR MENGGUNAKAN MODEL CUBE-CONNECTED DAN TREE-CONNECTED DALAM ALGORITMA PARALEL.

PERTEMUAN 10 METODE DEVIDE AND CONQUER

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

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

Meizano Ardhi M., S.T.

BAB II LANDASAN TEORI

ARSITEKTUR KOMPUTER. Satu CPU yang mengeksekusi instruksi satu persatu dan menjemput atau menyimpan data satu persatu.

Analisis Algoritma Bubble Sort

Preorder Tree Traversal

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

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

Solusi UTS Stima. Alternatif 1 strategi:

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

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

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

Transkripsi:

SORTING - Merging Definisi: A = {a 1, a 2,..., a r } B = {b 1, b 2,..., b s } merupakan dua deret angka yang terurut naik; merge A dan B merupakan deret C = {c 1, c 2,..., c r+s } yang juga terurut naik, sedemikian sehingga setiap c i pd C berasal dari A atau B dan setiap a i dan b i muncul tepat satu kali pada C. Aplikasi: basis data manajemen file Jika r = s = n, algoritma sekuensial memerlukan waktu O(n), sedangkan pada algoritma paralel yang memakai N prosesor diperlukan waktu Ω(n/N). JARINGAN UNTUK MERGING Merging akan dilakukan oleh sekumpulan prosesor sederhana yang berkomunikasi melalui jaringan special-purpose. Arsitektur paralel special purpose ini disebut (r, s)-merging network. Semua prosesor identik dan disebut comparator. Comparator: X Y yang lebih kecil dari X dan Y yang lebih besar dari X dan Y Asumsi: kedua deret input berukuran sama, r = s = n 1 n merupakan suatu nilai pangkat 2. Merging 2 deret yang masing-masing terdiri dari 2 elemen: a 1 c 1 P 1 a 2 c 2 P 3 c 3 b 1 P 2 b 2 c 4 P 1 membandingkan elemen terkecil A dengan elemen terkecil B; outputnya adalah elemen terkecil C, yaitu c 1. APP - Sorting - merging 1/7

P 2 membandingkan elemen terbesar A dengan elemen terbesar B dan; outputnya adalah elemen terbesar C, yaitu c 4. P 3 berfungsi menghasilkan dua elemen tengah. Merging 2 deret yang masing-masing memiliki 4 elemen: 3 2 2 P 1 5 3 3 P 5 6 7 6 3 P 2 P 7 9 7 4 P 8 5 6 2 4 7 P 3 P 9 4 5 8 5 P 6 8 6 8 P 4 8 9 9 Secara umum, (n, n)-merging network didapat dengan konstruksi rekursif berikut: 1. Elemen A dan B bernomer ganjil, yaitu, {a 1, a 3, a 5,..., a n-1 } dan {b 1, b 3, b 5,..., b n-1 }, dimerge dengan menggunakan (n/2, n/2)-merging network untuk menghasilkan {d 1, d 2, d 3,..., d n }. 2. Secara simultan, elemen bernomer genap dari kedua deret tsb, {a 2, a 4, a 6,..., a n } dan {b 2, b 4, b 6,..., b n }, juga di-merge dengan menggunakan (n/2, n/2)-merging network untuk menghasilkan deret {e 1, e 2, e 3,..., e n }. 3. Deret terakhir {c 1, c 2, c 3,..., c 2n } didapat dari: c 1 = d 1, c 2n = e n, c 2i = min(d i+1, e i ), dan c 2i = max(d i+1, e i ), untuk i = 1, 2,..., n-1. APP - Sorting - merging 2/7

(n/2, n/2)-merging network dibangun dengan menerapkan aturan yang sama secara rekursif, yaitu dengan menggunakan dua (n/4, n/4)-merging network diikuti oleh comparator rank (n/2)-1. Cara ini disebut odd-even merging. Odd-even merging: a 1 d 1 c 1 a 2 d 2 c 2 a 3 d 3 c 3 a 4 (n/2, n/2) - merging c 4 a 2i-1 network d i+1 c 5 a 2i d n a n b 1 e 1 b 2 e 2 c 2i b 3 e 3 c 2i+1 b 4 (n/2, n/2) - merging b 2i-1 network e i b 2i e n c 2n b n Analisis: 1. Running time Asumsi: sebuah comparator dapat membaca input, melakukan perbandingan, dan menghasilkan output dalam satu satuan waktu. APP - Sorting - merging 3/7

t(2n) menunjukkan waktu yang diperlukan oleh (n, n)-merging network untuk melakukan merge dua deret yang panjang masing-masingnya n. Sifat rekursif jaringan seperti ini menghasilkan: t(2)=1 untuk n=1 (lihat gambar pertama) t(2n) = t(n)+1 untuk n>1 (lihat gambar keempat) Dengan demikian t(2n) = 1 + log n, jauh lebih lebih cepat dari O(n), yang merupakan waktu terbaik pada komputer sekuensial. 2. Jumlah prosesor p(2n) menyatakan jumlah comparator pada (n, n)-merging network. p(2) = 1 untuk n=1 (lihat gambar pertama) p(2n) = 2p(n) + (n-1), untuk n>1(lihat gambar keempat) Dengan demikian p(2n) = 1 + n log n. 3. Biaya t(2n) = 1 + log n dan p(2n) = 1 + n log n. Total perbandingan yang dilakukan oleh (n, n)-merging network, yaitu, yang merupakan biaya jaringan, adalah: c(2n) = p(2n) x t(2n) = O(n log 2 n) Jaringan ini tidak optimal dalam hal biaya karena melakukan lebih banyak operasi dari O(n) yang dibutuhkan untuk merge sekuensial. Pembahasan: Properti merging network ini: Deret perbandingan telah ditentukan sebelumnya. Analisis di atas menunjukkan bahwa (n, n)-merging network sangat cepat. Dua deret dengan masing-masing 2 20 elemen dapat di-merge dalam 21 langkah. Hal yang sama memerlukan lebih dari dua juta langkah pada komputer sekuensial. Namun, kecepatan tsb didapat dengan prosesor yang sangat banyak. Untuk n = 2 20, (n, n)- merging network terdiri dari lebih dari dua puluh juta comparator. Arsitektur jaringan sangat ireguler, penghubung comparator memiliki panjang yang bervariasi dengan n. Walaupun secara teoritis bagus, merging network tidak praktis jika n bernilai besar. MERGING PADA MODEL CREW (Concurrent Read, Exclusive Write) Merging Sekuensial Dua deret bilangan A = {a 1, a 2,..., a r } B = {b 1, b 2,..., b s } dengan urutan naik di-merge membentuk deret C yang juga urut naik. Merging dilakukan oleh satu prosesor. Digunakan dua pointer, 1 untuk setiap deret. Dibuat dua elemen fiktif a r+1 dan b s+1 yang bernilai tak hingga. procedure SEQUENTIAL MERGE (A, B, C) Step 1: (1.1) i 1 (1.2) j 1 APP - Sorting - merging 4/7

Step 2: for k = 1 to r + s do if a i < b j then (i) c k a i (ii) i i+1 else (i) c k b j (ii) j j+1 Jumlah perbandingan: r + s Worst case: r = s = n, algoritma berjalan dalam waktu O(n). Procedure ini optimal. Merging Paralel Dikerjakan oleh komputer CREW SM SIMD (Concurrent Read, Exclusive Write; Shared Memory; Single Instruction stream, Multiple Data stream). r s Digunakan N prosesor: P 1, P 2,, P N. N r Worst case: r = s = n; waktu O((n/N) + log n) Optimal biaya untuk N n / log n. Setiap prosesor dianggap mampu melakukan dua prosedur sekuensial berikut: 1. Prosedur SEQUENTIAL MERGE 2. Prosedur BINARY SEARCH: Mengambil deret input S = {s 1, s 2,..., s n } bilangan yg terurut naik dan suatu bilangan x. Jika x ada di S, prosedur mengembalikan indeks k dari elemen s k pd S sedemikian shg x = s k. Jika tidak, prosedur memberi nilai nol. Pd setiap tahap, dilakukan perbandingan antara x dan elemen S. Jika keduanya sama, prosedur berhenti atau setengah elemen pada deret diabaikan. proses diteruskan sampai jumlah elemen yg tertinggal adalah 0 atau 1. procedure BINARY SEARCH (S, x, k) Step 1: (1.1) i 1 (1.2) h n (1.3) k 0 Step 2: while i h do (2.1) m (i + h)/2 (2.2) if x = s m then (i) k m (ii) i h + 1 else if x < s m then h m-1 else i m + 1 end while APP - Sorting - merging 5/7

procedure CREW MERGE (A, B, C) Step 1: Step 2: {Pilih N - 1 elemen A yg membagi deret menjadi N subsequence dgn ukuran yg kurang lebih sama. Namai subsequence yg dibentuk oleh N-1 elemen ini A. Subsequence B dari N-1 elemen B juga dipilih dgn cara yg sama. Step ini dilakukan sbb:} for i = 1 to N-1 do in parallel Processor P i menentukan a i dan b i dari (1.1) a i a i[r/n] (1.2) b i a i[s/n] {Merge A dan B menjadi deret triple V = {v 1, v 2,..., v 2N-2 }, di mana setiap triple terdiri dari elemen A atau B diikuti posisinya pada A atau B diikuti oleh nama deret asalnya, yaitu, A atau B. Hal ini dilakukan sbb:} (2.1) for i = 1 to N-1 do in parallel (i) Prosesor P i memakai BINARY SEARCH pd B untuk menemukan j terkecil sedemikian sehingga a i < b j. (ii) if j exists then v i+j-1 (a i, i, A) else v i+n-1 (a i, i, A) (2.2) for i = 1 to N-1 do in parallel (i) Prosesor P i memakai BINARY SEARCH pada A untuk menemukan j terkecil sehingga b i < a j (ii) if j exist then v i+j-1 (b i, i, B) else v i+n-1 (b i, i, B) Step 3: {Setiap prosesor merge dan menyisipkan ke dalam C, elemen-elemen dari kedua subsequence, satu dari A dan satu dari B. Indeks kedua elemen (satu di A dan satu di B) di mana setiap prosesor mulai merging, terlebih dulu dihitung dan disimpan pada array Q yg menyimpan pasangan terurut. Langkah ini dilakukan sbb:} (3.1) Q(1) (1, 1) (3.2) for i = 2 to N do in parallel if v 2i-2 = (a k, k, A) then processor P i (i) memakai BINARY SEARCH atas B untuk menemukan j terkecil sedemikian shg b j < a k. (ii) Q(i) (k r/n, j) else prosesor P i (i) memakai BINARY SEARCH atas A untuk menemukan j terkecil sedemikian shg a j < b k. (ii) Q(i) (j, k r/n ) APP - Sorting - merging 6/7

(3.3) for i = 1 to N do in parallel Prosesor P i memakai SEQUENTIAL MERGE dan Q(i) = (x, y) untuk merge dua subsequence, satu mulai pd a x dan yg lain pd b y dan menempatkan hasil merge pd array C mulai pd posisi x + y - 1. Merge diteruskan sampai (i) elemen yg lebih besar atau sama dgn komponen pertama dari v 2i ditemukan masing-masing pd A dan B (ketika i N-1) (ii) tidak ada elemen yg tersisa pd A atau B (ketika i = N). Ada dua hasil observasi dari algoritma di atas: Jika a i dibandingkan dgn b j dan a i = b j, maka algoritma memutuskan bhw a i lebih kecil. Operasi consurrent read dilakukan ketika prosedur BINARY SEARCH dipanggil, yaitu pd step 2.1, 2.2, dan 3.2. Di sini, beberapa prosesor mengeksekusi binary search pd deret yg sama. Analisis Step 1: Dgn semua prosesor bekerja paralel, setiap prosesor menghitung dua subscript. Dgn demikian langkah ini memerlukan waktu konstan. Step 2: Langkah ini terdiri dari dua aplikasi prosedur BINARY SEARCH pada deret dgn panjang N-1, masing-masing diikuti oleh statement assignment. Ini memerlukan waktu O(log N). Step 3: Step 3.1 terdiri dari assignment waktu konstan, dan step 3.2 membutuhkan paling banyak waktu O(log s). Untuk menganalisa step 3.3, pertama kita meneliti bahwa V terdiri dari 2N-2 elemen yg membagi C menjadi 2N-1 subsequence dgn ukuran maksimum sama dgn ( r/n + s/n ). Ukuran maksimum ini terjadi jika, misalnya, satu elemen a i dari A sama dgn elemen b j dari B ; maka r/n elemen yg lebih kecil atau sama dgn a i (dan lebih besar atau sama dgn a i-1 ) juga lebih kecil atau sama dgn b j, dan dgn cara yg sama, s/n elemen yg lebih kecil atau sama dgn b j (dan lebih besar atau sama dgn b i-1 ) juga lebih kecil atau sama dgn a i. Pd step 3 setiap prosesor membentuk dua subsequence spt ini dari C yg ukuran totalnya tidak lebih besar dari 2( r/n + s/n ), kecuali P N, yg hanya membuat satu subsequence C. berarti prosedur SEQUENTIAL MERGE paling banyak memerlukan waktu O((r + s)/n). Worst case, r = s = n, dan karena n N, waktu jalan algoritma didominasi oleh waktu yg dibutuhkan oleh step 3. Dgn demikian t(2n) = O((n/N) + log n) Karena p(2n) = N, c(2n) = p(2n) x t(2n) = O(n + N log n), dan algoritma optimal biaya ketika N n/log n. APP - Sorting - merging 7/7