startegi partisi divide conquer

26 

Teks penuh

(1)

11. STRATEGI PARTISI DAN DIVIDE & CONQUER

11.1 Partisi

Strategi

Divide & Conquer

Divide & Conquer M-ary

11.2 Contoh Divide & Conquer

Sortir dengan Bucket Sort

Referensi : Wilkinson, Barry & Allen, M, “Parallel Programming”,

Prentice Hall, New Jersey, 1999; Chapter 4; hal. 107 - 122

(2)

11.1.1 Strategi Partisi

Deretan dipartisi ke dalam m bagian dan ditambahkan secara

bebas untuk membuat penjumlahan parsial

Gambar 4.1 Deretan dipartisi menjadi m bagian dan ditambahkan.

Pengolahan Paralel/KK021239

Contoh - Menambah Sederetan Angka

(3)
(4)
(5)

Menggunakan rutin

Scatter

dan

Reduce

Master

s = n/m; /* number of numbers */

scatter(numbers,&s,P

group

,root=master);

(6)

Analisis

Komputasi sekuensial membutuhkan n-1 penambahan dengan

kompleksitas waktu O(n)

Fase 3 - Komunikasi :

mengembalikan hasil parsial dengan rutin

send/ recv

t

comm2

= m(t

startup

+ t

data

)

Fase 4 - Komputasi :

Akumulasi akhir

t

comp2

= m -

1

Jadi

t

p

= (t

comm1

+ t

comm2

) + (t

comp1

+ t

comp2

)

= 2mt

startup

+ (n + m)t

data

+

m + n/m

-2 = O(

n + m

)

Waktu kompleksitas paralel

lebih buruk

dari sekuensial

Pengolahan Paralel/KK021239

(7)

11.1.2 Divide & Conquer

Karakteristiknya adalah membagi masalah ke dalam sub-sub

masalah yang sama bentuknya dengan masalah yang lebih besar.

Pembagian selanjutnya ke dalam sub problem yang lebih kecil

biasanya dilakukan melalui rekursi.

Definisi rekursi sekuensial untuk menambah sederetan angka :

(8)

Pengolahan Paralel/KK021239

Hasil akhir

Masalah Awal

Pembagian

masalah

Gambar 4.2 Konstruksi Pohon.

(9)

Pengolahan Paralel/KK021239

Implementasi Paralel

Gambar 4.3 Membagi deretan ke dalam beberapa bagian.

Deretan awal

(10)

Pengolahan Paralel/KK021239

Gambar 4.3 Penjumlahan Parsial.

Jumlah Akhir

(11)

Kode Paralel

Misal dibuat ada 8 prosesor untuk menambah

sederetan angka.

Proses P

0

(12)
(13)

Analisis

Diasumsikan n adalah pangkat dari 2. Waktu set up komunikasi,

t

startup

tidak diperhitungkan.

Komunikasi

Fase Pembagian

Fase Penggabungan

Total waktu komunikasi

Komputasi

Total waktu eksekusi paralel

Pengolahan Paralel/KK021239

(14)

Gambar 4.5 Bagian dari pohon pencarian

Pengolahan Paralel/KK021239

(15)

11.1.3 Divide & Conquer M-ary

Tugas (task) dibagi ke dalam lebih dari 2 bagian setiap tahapannya.

(16)

Gambar 4.6 Pohon kuarternair (quadtree)

Pengolahan Paralel/KK021239

(17)

Gambar 4.7 Membagi sebuah citra

Pengolahan Paralel/KK021239

Daerah citra

Pembagian pertama

ke dalam 4 bagian

Pembagian

kedua

(18)

Sortir dengan Bucket Sort

• Sederetan angka dibagi ke dalam m area yang sama,

0 .. a/m - 1, a/m .. 2a/m - 1, 2a/m .. 3a/m - 1, …

• Sebuah “bucket” ditugaskan untuk menampung angka

dalam setiap area

• Angka-angka tersebut dimasukkan ke bucket yang

sesuai

• Angka-angka

tersebut

akan

disortir

dengan

menggunakan algoritma sortir sekuensial setiap bucket.

Sortir ini akan baik jika angka-angka awalnya

didistribusikan ke interval yang sudah diketahui,

misalnya 0 ..

a - 1

.

Pengolahan Paralel/KK021239

11.2 Contoh Divide & Conquer

(19)

Pengolahan Paralel/KK021239

Angka yang disortir

Angka yang belum disortir

Bucket

Gambar 4.8 Bucket sort

Merge List

(20)

Waktu

Sekuensial

Pengolahan Paralel/KK021239

Algoritma Paralel

Bucket sort dapat diparalelkan dengan menugaskan

satu prosesor untuk setiap bucket - mengurangi suku ke

dua (second term) dari persamaan sebelumnya menjadi

(n/p)log(n/p)

untuk p prosesor (dimana

p = m

).

(21)

Pengolahan Paralel/KK021239

Angka yang disortir

Angka yang belum disortir

Bucket

Gambar 4.9 Satu versi Paralel dari Bucket sort

Merge List

p

prosesor

(22)

Paralelisasi Selanjutnya

• Membagi deretan ke dalam

m

area, satu area untuk

setiap prosesor

• Setiap prosesor mengatur

p

“bucket” yang kecil dan

memisahkan angka-angka dalam areanya ke dalam

bucket-bucket tersebut

• Bucket-bucket kecil ini kemudian dikosongkan ke

dalam

p

bucket akhir untuk sortir, yang membutuhkan

masing-masing prosesornya untuk mengirimkan satu

bucket kecil ke masing-masing prosesor yang lain

(bucket

i

ke prosesor

i

).

Pengolahan Paralel/KK021239

(23)

Pengolahan Paralel/KK021239

Angka yang disortir

Angka yang belum disortir

Bucket

besar

(24)

Analisis

Fase 1 - Komputasi dan komunikasi

(membagi angka)

t

comp1

=

n ; t

comm1

=

t

startup

+

t

data

n

Fase 2 - Komputasi

(sortir ke bucket kecil)

t

comp2

=

n

/

p

Fase 3 - Komunikasi

(kirim ke bucket besar)

Jika seluruh komunikasi tumpang tindih :

t

comm3

= (

p

- 1)(

t

startup

+ (

n

/

p

2

)

t

data

)

Fase 4 - Komputasi

(sortir bucket besar)

t

comp4

= (

n

/

p

)log(

n

/

p

)

Jadi

t

p

=

t

startup

+

t

data

n

+

n

/

p

+ (

p

- 1)(

t

startup

+ (

n

/

p

2

)

t

data

)

+

(

n

/

p

)log(

n

/

p

)

Diasumsikan angka-angka tersebut didistribusikan untuk mencapai

formula ini. Skenario kasus terburuk (worse-case) terjadi ketika semua

angka berada dalam satu bucket !

Pengolahan Paralel/KK021239

(25)

Rutin “all-to-all”

Dapat digunakan untuk fase 3 - mengirimkan data dari setiap

proses ke setiap proses yang lain

Gambar 4.11 Broadcast “all-to-all”

Pengolahan Paralel/KK021239

(26)

Rutin “all-to-all” sebenarnya mengubah baris

sebuah array menjadi kolom

Gambar 4.12 Efek “all-to-all” dari sebuah array

Pengolahan Paralel/KK021239

Figur

Gambar 4.1 Deretan dipartisi menjadi m bagian dan ditambahkan.
Gambar 4 1 Deretan dipartisi menjadi m bagian dan ditambahkan . View in document p.2
Gambar 4.2 Konstruksi Pohon.
Gambar 4 2 Konstruksi Pohon . View in document p.8
Gambar 4.3 Membagi deretan ke dalam beberapa bagian.
Gambar 4 3 Membagi deretan ke dalam beberapa bagian . View in document p.9
Gambar 4.3 Penjumlahan Parsial.
Gambar 4 3 Penjumlahan Parsial . View in document p.10
Gambar 4.5 Bagian dari pohon pencarian
Gambar 4 5 Bagian dari pohon pencarian. View in document p.14
Gambar 4.6 Pohon kuarternair (quadtree)
Gambar 4 6 Pohon kuarternair quadtree . View in document p.16
Gambar 4.7 Membagi sebuah citra
Gambar 4 7 Membagi sebuah citra. View in document p.17
Gambar 4.8 Bucket sort
Gambar 4 8 Bucket sort. View in document p.19
Gambar 4.9 Satu versi Paralel dari Bucket sort
Gambar 4 9 Satu versi Paralel dari Bucket sort. View in document p.21
Gambar 4.10 Versi Paralel dari Bucket sort
Gambar 4 10 Versi Paralel dari Bucket sort. View in document p.23
Gambar 4.11 Broadcast “all-to-all”
Gambar 4 11 Broadcast all to all . View in document p.25
Gambar 4.12 Efek “all-to-all” dari sebuah array
Gambar 4 12 Efek all to all dari sebuah array. View in document p.26

Referensi

Memperbarui...

Related subjects : startegi partisi divide conquer