Anda di halaman 1dari 8

ANALISA ALGORITMA SEKUENSIAL

DAN
PARAREL RUNNING COUNTING STEP

NAMA KELOMPOK

1. I Putu Aris Sugiartha ( 070010177 )


2. Septian Rivani Kendall ( 070010244 )
3. I Kadek Iwan Novryanto ( 070010245 )
Pendahuluan

Sekalipun didukung oleh teknologi prosesor yang berkembang sangat pesat,


komputer sekuensial tetap akan mengalami keterbatasan dalam hal kecepatan
pemrosesannya. Hal ini menyebabkan lahirnya konsep keparalelan (parallelism) untuk
menangani masalah dan aplikasi yang membutuhkan kecepatan pemrosesan yang
sangat tinggi
Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin paralel,
perkembangan bahasa pemrograman paralel atau dari aspek pembangunan dan
analisis algoritma paralel. Algoritma paralel itu sendiri lebih banyak difokuskan
kepada algoritma untuk menyelesaikan masalah numerik,karena masalah numerik
merupakan salah satu masalah yang memerlukan kecepatan komputasi yang sangat
tinggi.Untuk dapat mengadaptasi suatu algoritma sekuensial ke dalam algoritma
paralel, terlebih dahulu harus dipelajari mengenai konsep pemrosesan paralel dan
bagaimana proses-proses dapat berlangsung secara paralel. Pada saat sebuah
algoritma digunakan untuk memecahkan sebuah problem, maka performance dari
algoritma tersebut akan dinilai berdasarkan beberapa kriteria, seperti running time dan
banyaknya prosesor yang digunakan.. Hal ini berlaku untuk algoritma sekuensial
maupun algoritma paralel.

2
ANALISA ALGORITMA SEKUENSIAL DAN PARAREL RUNNING
COUNTING STEP

1. ANALISA ALGORITMA SEKUENSIAL

Pada algoritma Sekuensial instruksi dikerjakan secara berurutan baris perbaris


mulai dari baris pertama hingga baris terakhir, tanpa ada loncatan atau
perulangan.Adapun ciri dari algoritma Sekuensial yaitu :

1. Tiap instruksi dikerjakan satu per satu.


2. Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang
diulang.

Dalam Arsitektur Komputer,penerapan algoritma sekuensial termasuk dalam


kelompok komputer SISD (berdasarkan klasifikasi Flynn) yaitu hanya mempunyai
satu unit pengendali untuk menentukan instruksi yang akan dieksekusi. Pada setiap
satuan waktu hanya satu instruksi yang dapat dieksekusi, dimana kecepatan akses ke
memori dan kecepatan piranti masukan dan keluaran dapat memperlambat proses
komputasi. Beberapa metode dibangun untuk menghindari masalah tersebut, seperti
penggunaan cache memory. Namun komputer sekuensial ini tetap mengalami
keterbatasan jika menangani masalah yang memerlukan kecepatan tinggi. Hal-hal
tersebut di atas pada akhirnya melatarbelakangi lahirnya sistem komputer paralel
( algoritma pararel).

2. ANALISA ALGORITMA PARALEL

Pada Komputer Pararel (algoritma pararel) terdapat lebih dari satu elemen
pemrosesan yang dikendalikan oleh sebuah unit pengendali yang sama. Pada dasarnya
aktivitas sebuah prosesor pada komputer paralel adalah sama dengan aktivitas sebuah
prosesor pada komputer sekuensial. Tiap prosesor membaca (read) data dari memori,
memprosesnya dan menuliskannya (write) kembali ke memori namun jumlah
procesor dapat lebih dari satu (multi processor). Aktivitas komputasi ini dikerjakan
oleh seluruh prosesor secara paralel.

3
Pada saat sebuah algoritma digunakan untuk memecahkan sebuah masalah,
maka performance dari algoritma tersebut akan dinilai.Penampilan sebuah algoritma
pengolahan peralel dapat dinilai dari beberapa kriteria, seperti running time dan
banyaknya prosesor yang digunakan.

2.1 Running Time


Running time adalah waktu yang digunakan oleh sebuah algoritma untuk
menyelesaikan masalah pada sebuah komputer paralel dihitung mulai dari saat
algoritma mulai hingga saat algoritma berhenti. Jika prosesor-prosesornya tidak mulai
dan selesai pada saat yang bersamaan, maka running time dihitung mulai saat
komputasi pada prosesor pertama dimulai hingga pada saat komputasi pada prosesor
terakhir selesai.

2.1.1. Counting Steps


Untuk menentukan running time, secara teoritis dilakukan analisa untuk
menentukan waktu yang dibutuhkan sebuah algoritma dalam mencari solusi dari
sebuah masalah. Hal ini dilakukan dengan cara menghitung banyaknya operasi dasar
atau step (langkah), yang dilakukan oleh algoritma untuk keadaan terburuknya (worst
case).
Langkah-langkah yang diambil oleh sebuah algoritma dibedakan ke dalam dua
jenis yaitu :

a. Computational step
Sebuah computational step adalah sebuah operasi aritmetika atau operasi
logika yang dilakukan terhadap sebuah data dalam sebuah prosesor.

b. Routing step.
Pada routing step, sebuah data akan melakukan perjalanan dari satu prosesor
ke prosesor lain melalui shared memory atau melalui jaringan komunikasi.

4
Contoh 2.1. :
Terdapat sebuah file komputer dengan n entri berbeda. Pada file tersebut akan
diperiksa apakah x terdapat di dalamnya.

Dengan algoritma sekuensial,keadaan terburuknya (worst case) untuk


menemukan x membutuhkan n langkah, dimana tiap langkah adalah
membandingkan x dengan sebuah entri pada file. Keadaan terburuk terjadi
jika x ternyata sama dengan entri terakhir pada file atau x tidak terdapat
pada file tersebut.

Dengan EREW SM SIMD (Exclusive Read Exclusive Write Shared Memory


SIMD) komputer dengan N prosesor, dimana N ≤ n, pada worst casenya
( keadaan terburuk ) dibutuhkan log N + n/N langkah.

Dimana :
N : Jumlah N processor ( banyaknya processor )
n : Jumlah n langkah (banyaknya langkah)

Misalkan P1 , P2 , … , PN prosesor-prosesor pada EREW SM SIMD


komputer tersebut.Proses pencarian entri yang sama dengan x adalah :

- Broadcasting, x dikomunikasikan pada semua prosesor dengan cara :


1. P1 membaca x dan mengkomunikasikan dengan P2.
2. P1 dan P2 secara simultan mengkomunikasikan x dengan P3 dan P4
3. P1, P2, P3 dan P4 secara simultan meng-komunikasikan x dengan P5 , P6 ,
P7 dan P8 .
Dan seterusnya hingga semua prosesor mengenal x. Proses ini dilakukan
dalam log N langkah.
x

P1 P2 P3 P4 P5 P6 P7 P8

5
- Searching, File dimana x akan dicari dibagi ke dalam sub file dan secara
simultan dilakukan pencarian oleh prosesor-prosesor :
P1 mencari pada n/N entri pertama,
P2 mencari pada n/N entri kedua,
P3 mencari pada n/N entri ketiga,
PN mencari pada n/N entri ke-N.
n
Proses ini membutuhkan /N langkah.

Jadi total langkah yang dibutuhkan oleh algoritma tersebut adalah : log N +
n
/N langkah.

1.3 Speedup
Pengukuran speedup sebuah algoritma paralel adalah salah satu cara untuk
mengevaluasi kinerja algoritma tersebut.
Speedup adalah perbandingan antara waktu yang diperlukan algoritma
sekuensial yang paling efisien untuk melakukan komputasi dengan waktu yang
dibutuhkan untuk melakukan komputasi yang sama pada sebuah mesin pipeline atau
paralel.

Worst case running time dari algoritma sekuensial terefisien


Speedup =
Worst case running time dari algoritma paralel

Contoh 1.2. :
Running time proses searching dengan mesin sekuensial adalah O(n).
Running time dari proses searching pada komputer EREW SM SIMD adalah O(n/N).
Jadi speedup = O(N).

6
2.1 Banyaknya Prosesor (Number of Processor)
Semakin banyak prosesor yang digunakan semakin tinggi biaya untuk
memperoleh solusi sebuah problem. Hal ini terjadi karena perlu dipertimbangkan
biaya pengadaan prosesor dan perawatannya.
Jumlah prosesor yang tergantung dari n , n=ukuran problem, dinyatakan
sebagai p(n). Kadang-kadang jumlah prosesor tidak tergantung pada ukuran problem.

Contoh 1.3. :
Perhatikan n bilangan x1,x2,…,xn yang akan dijumlahkan.
n
Dengan menggunakan komputer tree-connected SIMD dengan log n level dan /2
daun, dibutuhkan pohon dengan ukuran (n-1) atau p(n) = n -1 .
Ilustrasi untuk n = 8.

P1

P2 P3

P4 P5 P6 P7

INPU x1 x2 x 3 x4 x 5 x6 x 7 x8
T

Sedangkan pada contoh 1.1. , banyaknya prosesor, N , tidak tergantung pada


ukuran problem, n .

7
DAFTAR PUSTAKA

http://ictsleman.net/pustaka/informatika/file_program/algoritma/6_teknis_algoritma.p
df diakses pada tanggal 15 nopember 2010 pukul 11.00 WITA
http://ilmukomputer.com/2006/08/20/teknik-algoritma-paralel/index.html diakses
pada tanggal 15 nopember 2010 pukul 11.00 WITA