Pokok Bahasan 5 Algoritma Pemrosesan Paralel

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

TEKNIK PENCARIAN (SEARCHING)
STRUKTUR DASAR ALGORITMA
1 Algoritma Bahasa Pemrograman dan Bab 1.1. Pengertian Algoritma.
PENGURUTAN (SORTING).
Pengantar Algoritma.
Design and Analysis of ALGORITHM (Session 3)
PENCARIAN (SEARCHING)
Modul-8 : Algoritma dan Struktur Data
Searching Struktur Data.
STRUKTUR DATA Komting: ADITYA (E), SIGIT
Problem Solving Search -- Uninformed Search
Materi 7 ARRAY Processing
Instruksi Runtutan Instruksi Pemilihan dan Instruksi Perulangan dalam Pascal Minggu XII.
Pencarian Tanpa Informasi
Array Processing & Modular
Z Bekti - Rita - Sevenhot Struktur Data & Algoritma 2009.
13 Searching (Pencarian) pada Array Satu Dimensi Bab
STORED PROCEDURE Achmad Yasid, SKom.
Pencarian (Searching)
11. STRATEGI PARTISI DAN DIVIDE & CONQUER 11.1 Partisi Strategi Divide & Conquer Divide & Conquer M-ary 11.2 Contoh Divide & Conquer Sortir dengan Bucket.
Penyelesaian Masalah Teknik Pencarian
Pertemuan 23 Minimum Cost Spanning Tree
KECERDASAN BUATAN (ARTIFICIAL INTELLIGENCE)
Pertemuan 9 Strukturisasi Control Flow pada Bahasa rakitan 8088
Pertemuan 13 Graph + Tree jual [Valdo] Lunatik Chubby Stylus.
1 Pertemuan 9 DIVIDE And CONQUER Matakuliah: T0034/Perancangan & Analisis Algoritma Tahun: 2005 Versi: R1/0.
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
Pertemuan 5 STACK & QUEUE
Pertemuan Pengembangan Algoritma
Pertemuan 10 DIVIDE And CONQUER Lanjutan ….
Pokok Bahasan 4 Topologi Paralel Prosesor
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Matakuliah: T0034 / Perancangan & Analisis Algoritma Tahun: 2008 Pertemuan 9 DIVIDE AND CONQUER (1)
Pokok Bahasan 2 Konsep Pemrosesan Paralel
1 Pertemuan 8 Konsep Penelusuran (Searching) Matakuliah: H0383/Sistem Berbasis Pengetahuan Tahun: 2005 Versi: 1/0.
1 Pertemuan 15 Game Playing Matakuliah: T0264/Intelijensia Semu Tahun: Juli 2006 Versi: 2/1.
1 Pertemuan 12 B-Tree Matakuliah: T0534/Struktur Data Tahun: 2005 Versi: September 2005.
Algoritma Brute Force Oleh: Muhammad Musta’in ( )
Algoritma dan Pemrograman – Pertemuan 3 & 4 Sorting (Pengurutan)
Materi 9 LOGIKA & ALGORITMA.
MATERI PERKULIAHAN ANALISIS ALGORITMA
Pengujian Jalur Pengujian Jalur Dasar (Basis Path Testing)
Struktur Data Binary Search Tree (BST)
CSG3F3/ Desain dan Analisis Algoritma
MATERI PERKULIAHAN ANALISIS ALGORITMA
Pertemuan 25 MERANCANG ALGORITMA DENGAN KOMPLEKSITAS TERTENTU
Design and Analysis Algorithm
Modul 5 Algoritma & Struktur Data
Pertemuan 22 Graph Operation
Pertemuan 12 METODA GREEDY lanjutan….
Pertemuan 4 ALGORITMA lanjutan….
Pertemuan 6 KONVERSI NFA MENJADI DFA Lanjutan..
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Pertemuan 24 Teknik Searching
Pertemuan 5 KONVERSI NFA MENJADI DFA
Analisis dan Perancangan Algoritma Kuliah 4 : Asymptotic pd Kasus
Modul 6 : Analisis Algoritma dan Struktur Data
Modul 4 : Analisis Algoritma & Struktur Data
Algoritma Brute Force.
STRUKTUR DATA Nurdiansah PTIK 09.
Pertemuan 18 CODE OPTIMIZATION
STRUKTUR DATA LINKED LIST
Kompleksitas Algoritma
Data Structures and Algorithms Introduction. Introduction Prerequisites Basic Computer Programming Language Discreet Mathematics.
Selection Sort Merupakan sebuah algoritma pengurutan yang mencari element terkecil dari suatu list data tidak terurut (unsorted list) kemudian menukarnya.
Pengurutan (sorting).
Pengulangan FOR - DO Temu 9.
Aplikasi Graph Minimum Spaning Tree Shortest Path.
Algoritma dan struktur data
Transcript presentasi:

Pokok Bahasan 5 Algoritma Pemrosesan Paralel Matakuliah : H0352/Pemrosesan Paralel Tahun : 2005 Versi : versi/01 Pokok Bahasan 5 Algoritma Pemrosesan Paralel

Learning Outcomes Pada akhir pertemuan ini diharapkan mahasiswa akan dapat: menggunakan konsep kerja algoritma dalam pemrosesan paralel menunjukkan beberapa algoritma paralel sederhana menggunakan teori graph.

Bagan pembuatan algoritma Graph, flowchart, atau diagram yang merupakan ide dasar untuk memecahkan problem. Problem Konsep / gambaran Kumpulan statemen yang dapat mewakili konsep/gambaran yang dibuat. Contoh statemen tsb adalah: Spawn(<processor names>) adalah statemen untuk mengaktipkan prosesor yang dipakai. for all <processor list> do <statement list> endfor if . . . then . . . else . . . endif while . . . endwhile 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] Gobal variables: n, A[0 . . . . . (n-1_], j begin spawn(P0, P1, P2, . . . P((n/2)-1) for all Pi where 0  i  [n/2]-1 do for j  0 to [log p] – 1 do if i modulo 2j = 0 and 2i + 2j < n then A[2i]  A[2i] + A[2i + 2j] endif endfor end

Abstract Machine Models Ada beberapa model untuk abstract machine models, sebagai contoh: PRAM : Parallel Random Access Machine BSP : Bulk Synchronous Parallel PPM : Phase Parallel Model (Dalam kuliah ini hanya PRAM yang akan dibahas)

Interconnection network Arsitektur PRAM Global memory Interconnection network P2 Privat memory P1 Pp Control

Arsitektur PRAM Komunikasi pada PRAM

Algoritma Model PRAM Teorema 2.1: P-Processor dengan komunikasi CRCW-PIORITY dapat disimulasikan menggunakan p-processor EREW dengan kompleksitas bertambah O(log p). P1 P2 P3 P4 P5 6 2 9 3 7 M3 6 M7 9 (3,1) (3,2) (7,3) (3,4) (7,5) (3,1) (3,2) (3,4) (7,3) (7,5) 1 0 1 0 0 T S sort

Algoritma Model PRAM Aktifasi prosesor Active processor Waktu, O(log p) Untuk megaktipkan (menghidupkan) prosesor dalam model PRAM diperlukan O(log p). Aktifasi prosesor

Algoritma Model PRAM Penjumlah Sederetan Angka Proses ini disebut Juga dengan Reduksi Paralel a1a2  a3 a4 . .  an P0 P1 P2 P3 Angka yang akan di jumlah Proses penjumlahan oleh prosesor Konsep / gambaran:

Algoritma Model PRAM Penjumlah Sederetan Angka SUM (EREW PRAM) 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] Gobal variables: n, A[0 . . . . . (n-1_], j begin spawn(P0, P1, P2, . . . P((n/2)-1) for all Pi where 0  i  [n/2]-1 do for j  0 to [log n] – 1 do if i modulo 2j = 0 and 2i + 2j < n then A[2i]  A[2i] + A[2i + 2j] endif endfor end

Algoritma Model PRAM Penjumlah Sederetan Angka Operasional untuk n = 10: 4 3 8 2 9 1 5 6 41 17 15 32 7 10 P0 P1 P2 P3 P4

Algoritma Model PRAM Penjumlah Sederetan Angka begin spawn(P0, P1, P2, . . . P((n/2)-1) for all Pi where 0  i  [n/2]-1 do for j  0 to [log n] – 1 do if i modulo 2j = 0 and 2i + 2j < n then A[2i]  A[2i] + A[2i + 2j] endif endfor end Penjumlah Sederetan Angka Operasional untuk n = 10: j i i mod 2j =0 2i + 2j <10 Pi operasi 1 2 3 4 0/1  0 1/1  0 2/1  0 3/1  0 4/1  0  0+1=1 2+1=3 4+1=5 6+1=7 8+1=9 P0 P1 P2 P3 P4 A[0]  A[0]+A[1] A[2]  A[2]+A[3] A[4]  A[4]+A[5] A[6]  A[6]+A[7] A[8]  A[8]+A[9] 0/2  0 1/2  1 2/2  0 3/2  1 4/2  0 x 0+2=2 2+2=4 4+2=6 8+2=10 16+2=18 A[0]  A[0]+A[2] idle A[4]  A[4]+A[6] 0/4  0 1/4  1 2/4  2 3/4  3 4/4  0 0+4=4 2+4=6 4+4=8 8+4=12 A[0]  A[0]+A[4]

Algoritma Model PRAM Penjumlah Kumulatip Sederetan Angka Konsep / gambaran: 4 3 8 2 9 1 5 6 7 15 17 26 27 32 38 41 22 20 12 14 34 11 10 A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9]

Algoritma Model PRAM Penjumlah Kumulatip Sederetan Angka Pseudocode: 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[1]  . .  A[i] Gobal variables: n, A[0 . . . . . (n-1)], j begin spawn(P1, P2, . . . P(n-1) for all Pi where 1  i  n-1 do for j  0 to [log n] – 1 do if i - 2j  0 then A[i]  A[i] + A[i - 2j] endif endfor end

Algoritma Model PRAM Rangking dalam List 1 2 4 3 8 7 6 5 9 2 4 3 8 7 6 5 9 Konsep / bagan:

Algoritma Model PRAM Rangking dalam List LIST.RANKING (CREW PRAM) Pseudocode: 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 Gobal variables: n, position[0 . . . . . (n-1)], next[0 . . . . (n-1)], j begin spawn(P0, P1, P2, . . . Pn-1) for all Pi 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]] endfor end

Algoritma Model PRAM Searching dengan DFS A B C D E F G H

Algoritma Model PRAM Searching dengan DFS 8 E F G H A B C D 1 (D, B) (E, G) (E, H) (E, B) (A, C) (F, C) (B, D) (B, E) (G, E) (H, E) (B, A) (C, F) (C, A) 7 5 4 3 2 6 8 E F G H A B C D Posisi = (n +1) - label node B Label = 7 n = jumlah node B = 9 – 7 = 2 D = 9 – 6 = 3 E = 9 – 5 = 4 G = 9 – 4 = 5 H = 9 – 3 = 6 C = 9 – 2 = 7 F = 9 – 1 = 8 Searching dengan DFS

Algoritma Model PRAM Penggabungan Akan dilakukan penggabungan dua set bilangan yang urut, sehingga hasil gabungan juga urut. A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]

? Algoritma Model PRAM Penggabungan Ambil contoh A[7] = 19 dimana posisinya? Penggabungan A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 ? B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]

Algoritma Model PRAM Penggabungan Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]

11 < 19 Algoritma Model PRAM Penggabungan Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 11 < 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]

11 < 19 Algoritma Model PRAM Penggabungan Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 11 < 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]

21 > 19 Algoritma Model PRAM Penggabungan Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 21 > 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]

21 > 19 Algoritma Model PRAM Penggabungan Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 21 > 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]

12 < 19 Algoritma Model PRAM Penggabungan Index A[7] = 13 Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 12 < 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16] Index A[7] = 13

12 < 19 Algoritma Model PRAM Penggabungan Posisi A[7]: Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 12 < 19 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] Posisi A[7]: 13 +7 - 8 = 12 sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16] Index A[7] = 13

Kompleksitas waktu: O(n log n) Algoritma Model PRAM Penggabungan A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 sorted 7 8 9 11 1 2 4 5 21 22 23 24 12 13 17 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16] Kompleksitas waktu: O(n log n)

Komunikasi

Patern Binomial tree digunakan untuk hypercube broadcasting Q S X Y W Z Binomial Tree Patern Binomial tree digunakan untuk hypercube broadcasting

Johnsson and Ho algoritma Hypercube Broadcast Johnsson and Ho algoritma B C A A B C C A B

Dua prosesor parallel depth search Searching pada Graph 8 9 7 2 1 4 3 5 6 Dua prosesor parallel depth search 8 9 7 2 1 4 3 5 6 (1) (2) (3) (4) (5) (6) (7) Graph yang di search

Searching pada Graph Dua prosesor parallel breadth-depth search 8 9 7 2 1 4 3 5 6 Dua prosesor parallel breadth-depth search 8 9 7 2 1 4 3 5 6 (1) (2) (3) (4) (5) (6) Graph yang di search

Searching pada Graph Dua prosesor parallel breadth first search 8 9 7 2 1 4 3 5 6 8 9 7 2 1 4 3 5 6 (1) (2) (3) (4) (5) (6) Graph yang di search

Shorted Path Algorithm C B 4 1 2 3 Distance Queue A 0 B B 4 C C 1 D  E  A 0 A B  C  A 0 D B 3 B D 7 A 0 C B 4 D A 0 E B 3 D D 6 E 8 B 3 E B 3 E 7 5 7 6 8

Minimum Cost Spanning Tree Algorithm - Solin 4 1 2 3 E A D C B F H G I 7 5 6

Minimum Cost Spanning Tree Algorithm - Kruskal 7 3 E A B D C 6 1 9 8 2 4

RESUME Telah dibahas: Konsep pembuatan algoritma secara umum, arsitektur PRAM, dan algoritma untuk model PRAM Contoh-contoh algoritma untuk PRAM: Rangking dalam list Searching dengan DFS Penggabungan Beberapa algoritma paralel graph standard: Hypercube Broadcast: (1) Binomial tree, (2) Jhonsson and Ho Searching graph: depth search, breadth-depth search, breadth-first search. Shorted Path Minimum cost spanning tree: (1) Solin, (2) Kruskal.