Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

21
ALGORITMA PARALEL UNTUK MENJUMLAHKAN N BUAH BILANGAN DAN PENGURUTAN MENGGUNAKAN ALGORITMA BUBBLESORT OLEH : SUPRIYANTO (G651090191) Dosen : Dr. Yeni Herdiyeni, S.Kom, M.Kom MARET 2010 DEPARTEMEN ILMU KOMPUTER SEKOLAH PASCA SARJANA INSTITUT PERTANIAN BOGOR BOGOR

description

Postingan mudah-mudahan ada manfaatnya ....

Transcript of Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

Page 1: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

ALGORITMA PARALEL UNTUK MENJUMLAHKAN

N BUAH BILANGAN DAN PENGURUTAN

MENGGUNAKAN ALGORITMA BUBBLESORT

OLEH :

SUPRIYANTO (G651090191)

Dosen :

Dr. Yeni Herdiyeni, S.Kom, M.Kom

MARET 2010

DEPARTEMEN ILMU KOMPUTER

SEKOLAH PASCA SARJANA

INSTITUT PERTANIAN BOGOR

BOGOR

Page 2: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

Sesungguhnya agama (yang diridhai) disisi Allah hanyalah Islam. Tiada berselisih orang-

orang yang telah diberi Al Kitab kecuali sesudah datang pengetahuan kepada mereka,

karena kedengkian (yang ada) di antara mereka. Barangsiapa yang kafir terhadap ayat-

ayat Allah maka sesungguhnya Allah sangat cepat hisab-Nya. (QS. Ali Imran :19)

Allah lah yang menciptakan tujuh langit dan seperti itu pula bumi. Perintah Allah berlaku

padanya, agar kamu mengetahui bahwasanya Allah Maha Kuasa atas segala sesuatu, dan

sesungguhnya Allah, ILMU-Nya benar-benar meliputi segala sesuatu. (QS. 65:12)

Page 3: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

i

KATA PENGANTAR

Puji syukur keharidat Allah SWT yang senantiasa memberikan limpahan rahmat dan

hidayah-Nya kepada kita semua. Berkat rahmat Allah pulalah tugas perdana mata kuliah

Pemrosesan Paralel ini dapat diselesaikan.

Makalah ini akan membahas tentang cara kerja Algoritma Paralel penjumlahan n buah

bilangan dan pengurutan menggunakan algoritma Bubble Sort.

Penulis menyadari bahwa dalam penulisan makalah ini masih jauh dari kesempurnaan,

namun demikian penulis berusaha maksimal untuk menyuguhkan tulisan terbaik. Akhir kata,

kami mengucapkan terima kasih atas perhatian, saran, kritik dan masukan yang diberikan

demi kemajuan di kemudian hari.

Bogor, Maret 2010

Penulis,

Supriyanto

Page 4: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

ii

DAFTAR ISI

BAB I. PENDAHULUAN ..................................................................................................... 1

A. Latar Belakang .................................................................................................. 1

B. Tujuan ............................................................................................................... 1

BAB II. TINJAUAN PUSTAKA ........................................................................................... 2

A. Interconection Networks .................................................................................... 2

1. Shared Versus Swithed Media..................................................................... 2

2. Topologi Jaringan Switch ........................................................................... 2

B. Processor Array ................................................................................................. 6

C. Multiprocessor ................................................................................................... 6

D. Multicomputer ................................................................................................... 7

E. Klasifikasi Flyn ................................................................................................. 8

BAB III. PEMBAHASAN ..................................................................................................... 9

A. Algortima Penjumlahan n Buah Bilangan .......................................................... 9

1. Algoritma Penjumlahan Secara Sekuensial ................................................. 9

2. Algoritma Penjumlahan Secara Paralel ....................................................... 9

B. Pengurutan Dengan Menggunakan Algoritma Bublesort .................................. 10

1. Pengurutan secara sekuensial .................................................................... 10

2. Formulasi Paralel dengan Pola Transposisi Ganjil-Genap Pada Bublesort . 11

BAB IV. KESIMPULAN ..................................................................................................... 15

Page 5: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

iii

DAFTAR GAMBAR

Gambar 2.1. (a) shared medium dan (b) switched medium (Quinn, 2004) .............................. 2

Gambar 2.2. Fully Connected Network ................................................................................. 3

Gambar 2.3. Linier dan Ring ................................................................................................. 3

Gambar 2.4. Topologi Jaringan (a) Mesh (b) Torus 2D, dan (c) Torus 3D (Quinn, 2004) ...... 3

Gambar 2.5. Jaringan Tree dan Hypertree (Quinn, 2004) ....................................................... 4

Gambar 2.6. Butterflay Network dengan 8 prosesor (Quinn, 2004) ........................................ 4

Gambar 2.7. Cube dan Hypercube ......................................................................................... 5

Gambar 2.8. Shuffle Exchange .............................................................................................. 5

Gambar 2.9. Contoh Arsitektur Prosesor Array ..................................................................... 6

Gambar 2.10. Centralized Processor(Quinn, 2004) ................................................................ 7

Gambar 2.11. Distributed Multiprocessor(Quinn, 2004) ........................................................ 7

Gambar 2.12. Symmetrical Multicomputer (Quinn, 2004) ..................................................... 7

Gambar 2.13. Asymmetrical Multicomputer (Quinn, 2004) ................................................... 8

Gambar 3.1. Gambaran Komputasi secara Paralel untuk Penjumalahan n buah bilangan ..... 10

Gambar 3.2. Ilustrasi Algoritma Bubblesort ........................................................................ 11

Gambar 3.3. Ilustrasi Algoritma Ganjil-Genap pada Bubblesort (Grama dkk, 2003) ............ 12

Page 6: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

1

BAB I. PENDAHULUAN

A. Latar Belakang

Perancangan algoritma adalah komponen penting dalam pemecahan masalah

menggunakan komputer. Suatu algoritma sekuensial pada dasarnya adalah sebuah teknik

atau urut-urutan langkah dasar untuk memecahkan masalah dengan menggunakan satu

prosesor. Demikian pula, algoritma parallel adalah teknik pemecahan masalah dengan

menggunakan beberapa prosesor. Pemecahan masalah dilakukan dengan menggunakan

teknologi paralel,dimana beberapa komputer bekerja secara paralle untuk menyelesaikan

masalah komputasi.

Algoritma paralel memungkinkan eksekusi terhadap berbagai operasi dilakukan secara

bersamaan. Namun demikian dalam melakukan desain algoritma paralel perlu dilakukan

pekerjaan-pekerjaan.Dalam prakteknya penyusunan algoritma parallel mencakup

langkah-langkah berikut :

• Mengidentifikasi bagian dari pekerjaan yang dapat dilakukan secara bersamaan.

• Memetakan pekerjaan-pekerjaan ke beberapa proses yang berjalan secara parallel

• Mendistribusikan input, output, dan data intermediate yang terkait dengan program.

• Mengelola teknik pengaksesan secara bersama oleh beberapa prosesor.

Sementara itu tujuan utama penggunaan algoritma paralel adalah untuk mempercepat

pemrosesan suatu algoritma. Pada makalah ini akan dibahas teknik menganalisis dan

mendesain algoritma paralel untuk kasus penjumlahan n buah bilangan dan pengurutan

dengan menggunakan algoritma bublesort. Makalah ini menitikberatkan pada teknik

mendekomposisi permasalahan agar dapat dikerjakan dengan menggunakan algoritma

paralel.

B. Tujuan

Tujuan dari penulisan makalah ini adalah :

1. Mempelajari cara kerja Algoritma Paralel penjumlahan n buah bilangan dan

pengurutan dengan menggunakan algoritma Bubblesort.

2. Membuat pseudocode Algoritma diatas.

Page 7: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

2

BAB II. TINJAUAN PUSTAKA

Sekitar tahun 1960 sampai 1990-an para peneliti dan para insinyur mencari berbagai variasi

dari arsitektur komputer paralel. Berbagai perusahaan mulai memproduksi komputer paralel

untuk digunakan dalam berbagai keperluan komputasi. Namun demikian, performansi dari

berbagai desain prosesor tidak hanya tergantung pada banyaknya prosesor. (Quinn, 2004).

Pada tulisan ini akan dibahas tentang berbagai variasi dari interconection network (koneksi

jaringan). Selain itu akan dibahas juga secara sekilas mengenai prosesor array, multiprosesor

dan multicomputers, yang merupakan tiga jenis komputer paralel yang sangat populer. Selain

itu akan diperkenalkan juga Flynn Taksonomi dari komputer parallel dan metode pipelining

yang sangat banyak digunakan dalam berbagai masalah yang diselesaikan dengan algoritma

paralel.

A. Interconection Networks

1. Shared Versus Swithed Media

Pengunaaan jaringan interkoneksi bertujuan untuk :

• Menghubungkan prosesor kepada share memori

• Menghubungkan satu prosesor dengan prosesor lainnya

Adapun media yang digunakan adalah

• Shared medium, dan

• Switch medium

Gambar 2.1. memperlihatkan bagaimana cara kerja shared memori dan switch media

Gambar 2.1. (a) shared medium dan (b) switched medium (Quinn, 2004)

2. Topologi Jaringan Switch

Pokok persoalan arsitektur parallel adalah terletak pada desain jaringan koneksi

prosesor. Idealnya di dalam jaringan, stiap prosesor didesain terhubung dengan semua

prosesor lainnya. Idealnya prosesor memiliki koneksi penuh (complete graph). Untup

p prosesor dalam suatu jaringan, jumlah edge penghubung adalah p x (p-1) edge.

Page 8: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

3

Gambar 2.2. Fully Connected Network

Pada kenyataanya sulit sekali mewujudkan koneksi seperti pada Gambar 2.1 ini,

dikarenakan biaya investasi yang dibutuhkan sangat mahal. Adapun Arsitektur yang

umum digunakan adalah :

Linier dan Ring

Gambar 2.3. Linier dan Ring

Mesh, Torus : 2D, 3D

Gambar 2.4. Topologi Jaringan (a) Mesh (b) Torus 2D, dan (c) Torus 3D (Quinn,

2004)

Page 9: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

4

Tree dan Hypertree

Gambar 2.5. Jaringan Tree dan Hypertree (Quinn, 2004)

Pada jaringan Tree hanya ada satu jalur untuk setiap dua simpul, semakin tinggi tree,

maka semaik beresiko akan terjadi komunikasi bottleneck pada level-level yang lebih

tinggi dari tree. Untuk menghindari hal tersebut maka pada jaringan model Tree dapat

dikembangkan menjadi hypertree, dimana node pada berbagai level dapat terhubung

satu sama lain, dengan kata lain ada pembagian jalur koneksi.

Butterflay Tipe butterflay adalah topologi tidak langsung, dimana n = 2

d prosesor terkoneksi

dengan n (log n + 1) node swith (Gambar 2.6). Node swith di bagi ke dalam log n + 1

baris, atau rangk yang berisi n node. Rank tersebut dilabelkan dengan 0 hinga log n,

dimana rank 0 dan d bisa terhubung bisa tidak, yang mengakibatkan node pada switch

terhubung ke 4 node yang lainnya.

Gambar 2.6. Butterflay Network dengan 8 prosesor (Quinn, 2004)

Page 10: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

5

Cube dan Hypercube

Gambar 2.7. Cube dan Hypercube

Shuffle Exchange

Gambar 2.8. Shuffle Exchange

Penjelasan-penjelasan di atas menggambarkan bahwa tidak satupun network optimal

pada berbagai kondisi. Perlu ada pertimbangan-pertimbangan khusus dalam pemilihan

tipe switch yang akan digunakan. Tabel 2.1. memperlihatkan network cost untuk masing-

masing topologi jaringan.

Tabel 2.1. Network Cost untuk berbagai topologi Jaringan

Page 11: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

6

B. Processor Array Prosesor array dapat digambarkan seperti komputer yang diimplementasikan layaknya

pada sekuensial komputer yang dihubungkan satu sama lain secara identik, yang

disinkronisasi untuk beroperasi mengolah berbagai macam data (multiple data).

Gambar 2.9. Contoh Arsitektur Prosesor Array

C. Multiprocessor Terdapat dua jenis arsitektur multiprosesor yang digunakan dalam pemrosesan paralel

yaitu centralized processor (Gambar 2.10) dan distributed multiprocessor (Gambar 2.11).

Berdasarkan ke dua gambar tersebut terdapat perbedaan mendasar antara kedua jenis

prosesor ini, yaitu pada arsitektur centralized memori yang digunakan untuk pemrosesan

adalah memori utama di server (primary memory). Sedangkan pada arsitektur distributed

pemrosesan dilakukan pada memori yang berada pada masing-masing prosesor yang

digunakan.

Page 12: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

7

Centralized Processor

Gambar 2.10. Centralized Processor(Quinn, 2004)

Distributed Multiprocessor

Gambar 2.11. Distributed Multiprocessor(Quinn, 2004)

D. Multicomputer Terdapat setidaknya dua jenis arsitektur multicomputer, yaitu symmetrical

multicomputer (Gambar 2.12) dan assymetrical multicomputer (Gambar 2.13).

Gambar 2.12. Symmetrical Multicomputer (Quinn, 2004)

Page 13: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

8

Gambar 2.13. Asymmetrical Multicomputer (Quinn, 2004)

E. Klasifikasi Flyn Flyn (1966) mengklasifikasikan komputer berdarkan instruction stream dan data stream

yaitu :

• Single Intruction –Single Data Stream (SISD)

• Multi Intruction –Single Data Stream (MISD)

• Single Intstruction – Multiple Data Stream (MIMD)

• Multiple Instruction Multiple Data (MIMD)

Page 14: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

9

BAB III. PEMBAHASAN

A. Algortima Penjumlahan n Buah Bilangan

1. Algoritma Penjumlahan Secara Sekuensial

Agoritma Penjumlahan secara sekuensial (SISD) Begin

sum � a0

for i � 1 to n-1 do

sum � sum + ai endfor

end Waktu eksekusi algoritma di atas sebanding dengan banyaknya eksekusi loop for. Loop

tersebut pasti akan dieksekusi sebanyak n-1 kali. Jadi waktu eksekusinya adalah O(n).

Misalkan algoritma tersebut dijalankan dengan input : ai= {1,2,3,4,5,6,7,8}, maka

ilustrasi prosesnya dapat dilihat sebagai berikut.

Sum = a0 = 1

i = 1 sum = sum+ a1= 1 + 2 = 3

i = 2 sum = sum+ a2= 3 + 3 = 6

i = 1 sum = sum+ a3= 6 + 4 = 10

i = 1 sum = sum+ a4= 10 + 5 = 15

i = 1 sum = sum+ a5= 15 + 6 = 21

i = 1 sum = sum+ a6= 21 + 7 = 28

i = 1 sum = sum+ a7= 28 + 8 = 36

2. Algoritma Penjumlahan Secara Paralel Initial Condition :List n>= 1 elemen disimpan di A[ 0... (n-1)] Kondisi final : Hasil penjumlahan disimpan pada A[0] Variabel global : n, A[0 ... (n-1)], j

Begin untuk semua Pi dimana 0 <= i <=[n/2] -1 dp

for j � 0 to [ log n ] - 1 do if i module 2j = 0 dan 2i +sj < n maka

A[2i] � A [2i] + A [2i + 2j] endif endfor endfor end

Page 15: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

10

Gambar 3.1. Gambaran Komputasi secara Paralel untuk Penjumalahan n buah bilangan

Ilustrasi proses komputasi penjulahan yang dilakukan pada algoritma diatas dapat

dilihat pada Gambar 3.1. Pada gambar tersebut terlihat bahwa penjumlahan bilangan

dapat dilakukan secara paralel. Pada fase satu A[0] dijumlahkan dengan A[1], dan

A[1] dijumlahkan dengan A[2], A[3] dijumlahkan dengan A[4] dan seterusnya.

Sehingga pada fase dua, dijumlahkan dua angka yang berdekatan secara bersamaan,

yang merupakan hasil penjumlahan pada fase sebelumnya. Begitupun fase-fase

selanjutnya sehingga didapatkan jawaban akhir yang diinginkan.

B. Pengurutan Dengan Menggunakan Algoritma Bublesort

1. Pengurutan secara sekuensial

Pengurutan (sorting) data merupakan operasi yang sangat umum dilakukan oleh

komputer, karena data yang terurut lebih mudah di proses daripada data yang masih

acak. pengurutan didefinisikan sebagai sebuah pekerjaan mengatur sekumpulan data

yang tersusun secara acah sehingga dihasilkan susunan terurut sesuai dengan

elemennya (dari kecil ke besar atau sebaliknya).

Algoritma bubblesort menganalogikan setiap angka sebagai sebuah gelembung.

Angka (elemen) yang lebih kecil akan naik sama seperti gelembung yang selalu

mengambang ke permukaan. Gambar 3.1. merupakan ilustrasi dari algoritma

bublesort. Berikut adalah Algoritma Buble Sort secara sekuansial :

1. procedure BUBBLE_SORT(n) 2. begin 3. for i := n - 1 downto 1 do 4. for j := 1 to i do 5. bandingkan-tukarkan(aj, aj + 1); 6. end BUBBLE_SORT

Dalam setiap loop i algoritma akan "menggelembungkan" bilangan terkecil ke-i

hingga posisi ke-i di dalam array. Penggelembungan dimulai dari elemen terakhir

array. Setiap pasang elemen yang berdekatan akan dibandingkan. Jika elemen

Page 16: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

11

tibelakangnya lebih kecil, maka dilakukan penukaran. Dengan cara ini, bilangan

terkecil pasti akan "naik" hingga posisi yang diinginkan. Iterasi pada setiap loop

terjadi dengan waktu Θ(n) kali, sehingga total waktu yang diperlukan adalah Θ(n2).

Gambar 3.2. Ilustrasi Algoritma Bubblesort

2. Formulasi Paralel dengan Pola Transposisi Ganjil-Genap Pada Bublesort

Pola Transposisi Ganjil-Genap Pada Bublesort Pada transposisi ganjil-genap pada algoritma penguruan n elemen pada n fase (n

genap), membutuhkan n/2 operasi pembandingan. Algoritma dibagi ke dalam dua

fase, yang disebut dengan fase ganjil dan fase genap. Susun <a1, a2, ..., an> menjadi

urutan yang akan diurutkan. Selama fase ganjil, elemen-elemen dengan indeks ganjil

dibandingkan dengan tetangga kanan mereka, dan jika tidak urut maka kedua nilai

dipertukarkan, dengan demikian, pasangan-pasangan (a1, a2), (a3, a4), ..., (an - 1, an)

dibandingkan kemudian jika tidak sesuai dengan urutan maka dipertukarkan (dengan

asumsi n genap).

Page 17: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

12

Gambar 3.3. Ilustrasi Algoritma Ganjil-Genap pada Bubblesort (Grama dkk, 2003)

Selama fase genap, semua elemen dengan indeks genap dibandingkan dengan

tetangga kanan mereka, dan jika tidak urut maka kedua nilai dipertukarkan. Pasangan-

pasangan (a2, a3), (a4, a5), ..., (an-2, an-1) dibandingkan, kemudian jika tidak sesuai

urutan maka dipertukarkan. Setelah fase n ganjil maka urutannya akan terurut. Setiap

fase dari algoritma (baik ganjil atau genap) memerlukan Θ(n) pembandinan, dan

unduk semua fase kompleksitasnya adalah Θ(n2). Algoritma dari pengurutan dengan

ide fase ganjil genap dapat dilihat dibawah ini :

1. prosedur GANJIL-GENAP(n) 2. mulai 3. for i := 1 to n do 4. begin 5. if i is GANJIL then 6. for j := 0 to n/2 - 1 do 7. bandingkan-tukarkan(a2j + 1, a2j + 2); 8. if i is GENAP then 9. for j := 1 to n/2 - 1 do 10. bandingkan-tukarkan (a2j, a2j + 1); 11. end for 12. end ODD-EVEN

Pengurutan Secara Paralel Ide untuk membuat urutan pertukaran ganjil-genap memudahkan dalam menerapkan

algoritma ke dalam pemrosesan secara paralel. Pasa setiap fase dari algoritma, operasi

Page 18: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

13

pembandingan dan pertukaran dari masing-masing bagian dilakukan secara bersamaan

(paralel). Pada kasus ini dapat dilihat bahwa n sebagai jumlah proses (sekaligus

sebagai jumlah elemen yang akan diurutkan). Asumsikan bahwa proses-proses

tersebut diatur dalam sebuah array satu dimensi.

Elemen ai dinisiasi pada proses Pi untuk i = 1, 2, ..., n. Selama fase ganjil, setiap

proses yang memiliki label genap dibandingkan dan jika memenuhi syarat maka

dipertukarkan dengan tetangga yang ada sebelah kannnya. Demikian juga untuk fase

genap, masing-masing proses dengan label ganjil dibandingkan dan jika memenuhi

syarat dipertukarkan dengan tetangga sebelah kanannya. Maka perumusan aloritma

parlalel untuk kasus bubbelsort adalah sebagai berikut : 1. procedure ODD-EVEN_PAR (n) 2. begin 3. id := process's label 4. for i := 1 to n do 5. begin 6. if i is odd then 7. if id is odd then 8. bandingkan-tukarkan_min(id + 1); 9. else 10. bandingkan-tukarkan _max(id - 1); 11. if i is even then 12. if id is even then 13. bandingkan-tukarkan _min(id + 1); 14. else 15. bandingkan-tukarkan _max(id - 1); 16. end for 17. end ODD-EVEN_PAR

Setiap fase pekerjaan dalam algoritma tersebut, proses genap atau ganjil melakukan

langkah-langkah perbandingan dan pertukaran dengan tetangganya. Seperti kita

ketahui bahwa algoritma bubblesort membutuhkan waktu sebesar Θ(1). Untuk total n

fase pekerjaan, maka waktu pekerjaan diformulasikan dengan Θ(n). Kompleksitas

pengurutan yang dilakukan secara sekuensial untuk n elemen memiliki kompleksitas

Θ(n log n), sememtara pengurutan dengan transposisi ganjil-genap menjadikan waktu

pekerjaan menjadi meningkat yaitu Θ(n2).

Untuk mengoptimalkan kompleksitas algoritma, maka algoritma dibuat untuk

melakukan beberapa proses.

Untuk mendapatkan suatu algoritma paralel yang optimal, maka harus digunakan

proses yang lebih sedikit. Misalkan p merupakan jumlah proses, di mana p < n. Mula-

mula setiap proses dikelompokkan ke dalam blok n / p bagian, yang melakukan

pengurutan secara internal (dengan menggunakan merge sort atau quick sort) dengan

kompleksitas Θ((n/p) log(n/p)). Setelah itu dilakukan eksekusi terhadap fase p (p/2

ganjil and p/2 genap), melakukan operasi pembandingan. Diakhir fase maka list akan

terurut (Gambar 3.2). Masing-masing fase, melakukan pembandingan untuk

mengabungkan kedua blok sebanyak Θ(n/p) pembandingan. Maka dapat disimpulkan

bahwa waktu kerja yang diguankan pada algoritma paralel adalah sebagai berikut :

Page 19: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

14

Kompleksitas pada kasus pengurutan n buah bilangan secara sekuensial adalah Θ(n

log n), dapat ditingkatkan efisiensinya dengan formulasi ini, seperti terlihat pada

persamaan berikut :

Page 20: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

15

BAB IV. KESIMPULAN

Dari penulisan ini dapat disimpulkan bahwa untuk melakukan penjumlahan n buah bilangan

secara sekuensial diperlulkan waktu eksekusi untuk n buah data sebanyak O(n). Hal itu dapat dipepercepat dengan mendokomposisi proses menjadi proses-proses parallel. Hasil dekomposisi ini

diupayakan agar dapat dikerjakan di beberapa prosesor secara parallel.

Sementara itu pada pengurutan dengan menggunakan buble sort secara sekuensial membutuhkan

waktu eksekusi Θ(n log n). Dengan menggunakan ide indeks ganjil dan genap maka

pengurutan n buah bilangan dengan bubble sort dapat dilakukan.

Secara umum dapat disimpulkan bahwa pemrosesan secara paralel dilakukan dengan cara

mendekomposisi pekerjaan-pekerjaan pada suatu algoritma sekuensial yang dapat di proses

secara paralalel. Setelah itu, dilakukan optimalisasi terhadap algoritma paralel yang dibuat

dan menentukan banyaknya prosesor yang optimal agar waktu pengerjaannya menjadi

semakin baik dibandingkan dengan algoritma sekuensial.

Page 21: Pemrograman Paralel - Kasus Buble sort dan penjumlahan n buah bilangan

16

DAFTAR PUSTAKA

Grama, A; Gupta, A; Karypis, George; dan Kumar, V. 2003. Introduction to Parallel

Computing, Second Edition - Chapter 9. Sorting. Addison Wesley. USA.

Petersan, W.P. dan Arbenz, P. 2004. Introduction to Parallel Computing, A Practical Guide

With Examples in C. Oxford University.

Quinn, Michael J. 2004. Parallel Programming in C with MPI and OpenMP. Mc Graw Hill.