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

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

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

ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM)

Preorder Tree Traversal

NOTASI UNTUK ALGORITMA PARALEL

NOTASI UNTUK ALGORITMA PARALEL

JARINGAN UNTUK MERGING

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

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

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

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

STRATEGI DIVIDE AND CONQUER

BAB II DASAR TEORI. 2.1 Pergerakan Telepon Seluler Sebagai Sumber Data

Pengolahan Paralel PENGOLAHAN PARALEL. Ernastuti 1/58. Ernastuti

BAB VII ALGORITMA DIVIDE AND CONQUER

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

Penerapan Pohon Dalam Heap Sort

Buku Ajar Struktur Data

PENGOLAHAN PARALEL. Ernastuti

BAB IX LINKED LIST (SENARAI BERANTAI)

Konsep Dasar Pemrograman

Algoritma Divide and Conquer

Algoritma dan Struktur Data. Pertemuan 7 Linked List

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

ALGORITMA PENGURUTAN & PENCARIAN

Konsep Dasar Struktur Data. Struktur Data

Algoritma dan Struktur Data. Binary Tree & Binary Search Tree (BST)

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

1. Traversing Untuk algoritma traversing sama seperti pada single Link List

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

BAB 2 LANDASAN TEORI

Algoritma dan Struktur Data

KOMPONEN KOMPUTER PARALLEL

ALGORITMA & PEMROGRAMAN

SENARAI BERANTAI (LINK LIST)

KEBUTUHAN KOMPUTER PARALEL

Soal hari Jumat (16/10) Latihan 10 MS

Tree (Struktur Data) Nisa ul Hafidhoh, MT

Penggunaan Algoritma Paralel dalam Optimasi Prosesor Multicore

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

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

Algoritma Bubble Sort dan Quick Sort

6. TREE / BINARY TREE


Optimalisasi Algoritma Pencarian Data Memanfaatkan Pohon Biner Terurut

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

Searching [pencarian] Algoritma Pemrograman

Pengenalan Trie dan Aplikasinya

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

Soal hari Selasa (13/10) Latihan 7 AN

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 1: 9 Mei 2016

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

Algoritma dan Struktur data

TUGAS MATA KULIAH TEKNIK KOMPILASI

PENGGUNAAN ALGORITMA PARALEL DALAM OPTIMASI PROSESOR MULTICORE

REKAYASA PERANGKAT LUNAK PEMBELAJARAN POHON EKSPRESI (EXPRESSION TREE)

Review : Sifat Implementasi Linear List dengan Array

UNIVERSITAS GUNADARMA

Linked List. Bandung 2013

Pertemuan Ke-2 (Teks Algoritma) Rahmady Liyantanto. S1 Teknik Informatika-Unijoyo

Objek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF

Analisis Algoritma: Anany Levitin, Introduction to Design and Analysis of Algorithm, 3 rd Edition, Pearson Education, Inc.

UJIAN AKHIR SEMESTER GANJIL 2005/2006 ALGORITMA & STRUKTUR DATA / CS2014

Studi Digital Tree dan Aplikasinya pada Kamus

Penerapan Teknik Binary Search Tree Sebagai Alternatif Penyimpanan Data

Pohon Biner (Bagian 1)

Pada kondisi ini proses penghapusan tidak bisa dilakukan Kondisi linked list memiliki hanya 1 data{satu simpul} Akhir. Akhir

BAB VII Tujuan 7.1 Deskripsi dari Binary Tree

TEKNIK OPTIMASI. Dependensi Optimasi. Optimasi Lokal. Menghasilkan kode program dengan ukuran yang lebih kecil, sehingga lebih cepat eksekusinya.

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Analisis Kecepatan Sorting Dengan Notasi Big O

Penerapan Algoritma Backtracking pada Pewarnaan Graf

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

Penerapan BFS dan DFS pada Pencarian Solusi

Laporan Praktikum 14 (5) ( ) Metode Komputasi Matematika. Penyelesaian Soal UAS Metode Komputasi Syarif Abdullah (G )

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Aplikasi Algoritma Runut Balik dalam Pembangkitan Elemen Awal Permainan Sudoku

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

4 LINKED LIST. 4.1 Istilah-istilah 1. Simpul Simpul terdiri dari dua bagian, yaitu : Bagian data Bagian pointer yang menunjuk ke simpul berikutnya.

Pohon dan Pohon Biner

B C D E F G H I J K L M N O P Q R S T. Tinaliah, S.Kom POHON BINER

Algoritma. Contoh Algoritma

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

TEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 1

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

MODUL PRAKTIKUM STRUKTUR DATA Modul ke-1, Pertemuan ke-1 Nama file : P01-XXX (XXX adalah 3 digit terakhir NIM) Deskripsi: Senarai, Traversal

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

Lab. Teknik Informatika Struktur Data 1

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

STRUKTUR DASAR ALGORITMA

Pertemuan Ke-4 Urutan (sequence) Rahmady Liyantanto. liyantanto.wordpress.com. S1 Teknik Informatika-Unijoyo

Semester Ganjil 2014 Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Caca E. Supriana, S.Si.,MT.

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

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

Algoritma Pemrograman

STRUKTUR DATA. Deskripsi Mata Kuliah

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

Transkripsi:

ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM = pea ram) 1 Algoritma PRAM Model PRAM dibedakan dari bagaimana mereka dapat menangani konflik read dan write (Li and Yesha 1989): EREW(Exclusive Read Exclusive Write) Konflik pada saat penulisan dan pembacaan tidak dibenarkan CREW(Concurrent Read Exclusive Write) Banyak prosesor dapat membaca data dari tempat dan waktu yang sama pada memori global, sementara untuk menulis tidak diizinkan 2

Algoritma PRAM CRCW(Concurrent Read Concurrent Write) Menbaca dan menusli secara konkuren diizinkan, terdapat tiga model: COMMON Semua prosesor yang menulis pada alamat yang sama pada memori global harus menulis data yang sama ARBITRARY Ketika beberapa prosesor hendak menulis kealamat memori global yang sama pada waktu bersamaan maka prosesor yang terpilih sebagai winner yang dapat menuliskan data pada register PRIORITY Ketika beberapa prosesor hendak menulis kealamat memori global yang sama pada waktu bersamaan maka prosesor dengan indeks terkecil yang dapat menuliskan data pada lokasi memori 3 Algoritma PRAM Algoritma yang dibahas : 1. Parallel reduction 2. Prefix sums 3. List ranking 4. Pre-order tree traversal 5. Merging two sorted lists 6. Graph coloring 4

Algoritma PRAM Algoritma-algoritma PRAM memiliki 2 (dua) fase : mengaktifkan sejumlah prosesor prosesor yang sudah diaktifkan (pada fase 1),melaksanakan komputasi secara paralel 5 Algoritma PRAM Untuk mengubah 1 prosesor yang aktif ke p prosesor dibutuhkan log p langkah Jumlah prosesor yang aktif merupakan lipat-2 (2 n ) dari prosesor tunggal atau logaritma dari basis 2. 6

Algoritma PRAM Instruksi meta untuk mengaktifkan prosesor yang digunakan (dalam fase 1) : spawn (<nama prosesor>) Instruksi meta untuk melakukan komputasi secara paralel (dalam fase 2) : for all <processor list> do <statement list> 7 Algoritma PRAM Pohon biner menjadi paradigma yang penting dalam komputasi paralel. Pada beberapa algoritma ada yang menggunakan aliran data top-down (akar daun). Contoh : ❿ ❿ broadcast akar mengalirkan (mengirimkan) data yang sama ke setiap daunnya divide-and-conquer pohon menggambarkan adanya perulangan sub divisi suatu masalah ke sub masalah yang lebih kecil. Algoritma lain yang mengalirkan data secara bottom-up (daun -akar) adalah operasi reduksi atau fan-in. 8

Parallel reduction DEFINISI Diberikan sekumpulan n nilai a 1, a 2,,a n dan operator biner asosiatif, reduksi adalah proses menghitung dari : a 1 a 2 a n Salah satu contoh dari operasi reduksi adalah penjumlahan paralel (parallel summation). 9 Parallel reduction Parallel Reduction (Reduksi paralel) Prosesor PRAM memanipulasi data yang disimpan dalam register global. DEFINSI Penjumlahan secara paralel merupakan salah satu contoh dari operasi reduksi. CONTOH Reduksi secara paralel dapat digambarkan dengan pohon biner. Sekelompok n nilai ditambahkan dalam log p langkah penambahan paralel. 10

Parallel reduction Implementasi algoritma penjumlahan, setiap node dari pohon merupakan elemen dalam array 11 Parallel reduction PSEUDOCODE SUM(EREW PRAM) Initial condition : List of n 1 elements stored in A[0 (n - 1)] Final condition : Sum of elements stored in A[0] Global variables : n, A[0 (n -1)], j begin spawn (P 0, P 1, P 2,, P º n/2 ß - 1 ) end for all P i where 0 i n/2 1 do for j 0 to log n - 1 do endif if i modulo 2 j = 0 and 2i + 2 j < n then A[2i] A[2i] + A[2i + 2 j ] 12

Parallel reduction GAMBARAN PSEUDOCODE Menjumlahkan 10 nilai 13 Parallel reduction KOMPLEKSITAS Rutin spawn : n/2 doubling steps Perulangan for yang sekuensial : log n kali Waktu kompleksitas algoritma : Θ(log n), dengan n/2 prosesor 14

Prefix sums DEFINISI Diberikan sekumpulan n nilai a 1, a 2,, a n dan operasi asosiatif, prefix sum adalah menghitung: a 1 a 1 a 2 a 1 a 2 a 3 a 1 a 2 a 3 a n Misal : diberikan operasi + dan array integer {3, 1, 0, 4, 2}, hasil prefix sum adalah array dari {3, 4, 4, 8, 10}. 15 CONTOH Prefix sums Diberikan array A dari n huruf. Huruf-huruf besarnya akan diurut. (lihat gambar) Array A berisi huruf besar maupun huruf kecil dan ada array tambahan T berukuran n. Huruf-huruf besar akan diletakkan di awal dari A secara terurut. Array T berisi 1 untuk merepresentasikan huruf besar dan 0 untuk merepresentasikan huruf kecil Array T dikomputasi dengan prefix sum, menggunakan operasi tambah. Setiap huruf besar L diletakkan di A[i], nilai dari T[i] adalah indeks dari L. Array A setelah packing. 16

Prefix sums Packing elemen dengan aplikasi prefix sum 17 Prefix sums PREFIX.SUMS (CREW PRAM): Initial condition : List of n 1 elements stored in A[0 (n -1)] Final condition : Each element a[i] contains A[0] A[i] Global variables : n, A[0 (n-1)], j begin end spawn (P 1, P 2,, P n - 1 ) for all P i where 1 i n 1 do for j 0 to log n 1 do if i 2 j 0 then A[i] A[i] + A[i 2 j ] endif Algoritma PRAM untuk menemukan prefix sum dari n elemen dengan n-1 prosesor 18

Prefix sums Algoritma Prefix sum dari 10 nilai 19 Prefix sums KOMPLEKSITAS Rutin spawn : log n - 1 instruksi Perulangan for yang sekuensial : log n kali Waktu kompleksitas algoritma : Θ(log n), dengan n - 1 prosesor 20

List Ranking Suffix sum adalah variant dari prefix sum, dimana elemen array digantikan dengan linked list, dan penjumlahan dihitung dari belakang (Karp & Ramachandran 1990). DEFINISI List Rangking Jika elemen-elemen dari list berisi 0 atau 1 dan operasi asosiatif merupakan penambahan, maka masalah ini biasa disebut list ranking. 21 List Rangking 22

List Rangking LIST.RANKING (CREW PRAM): Initial condition : Values in array next represent a linked list Final condition : Values in array position contain original distance of each element from end of list Global variables : n, position[0 (n - 1)], next[0 (n - 1)], j begin spawn (P 0, P 1, P 2,, P n-1 ) for all P i where 0 i n 1 do if next[i] = i then position[i] 0 else position[i] 1 endif for j 1 to log n do position[i] position[i] + position[next[i]] next[i] next[next[i]] end 23 List Rangking GAMBARAN PSEUDOCODE Untuk menunjukkan posisi list adalah dengan menghitung jumlah penelusuran antara elemen list dan akhir list. Hanya ada (n-1) pointer antara elemen list awal dan akhir list. Jika satu prosesor diasosiasikan dengan setiap elemen list dan pointer lompatan secara paralel, jarak dari akhir list hanya ½ bagian melalui instruksi next[i] next[next[i]]. Jika sebuah prosesor menambah hitungan ke link-traversalnya sendiri, position[i], hitungan link-traversal sekarang dari successornya dapat dicapai. 24

List Rangking KOMPLEKSITAS Rutin spawn : Θ(log n), Perulangan for : maksimal log n kali Waktu kompleksitas algoritma : Θ(log n), dengan n prosesor 25 Preorder Tree Traversal DEFINISI Secara sekuensial PREORDER.TRAVERSAL(nodeptr): begin if nodeptr null then nodecount codecount + 1 nodeptr.label nodecount PREORDER.TRAVERSAL(nodeptr.left) PREORDER.TRAVERSAL(nodeptr.right) endif end 26