Pipelined Computations Dalam teknik pipeline, problem dibagi menjadi deretan yang harus dilaksanakan satu setelah lainnya. Setiap tugas nantinya akan dieksekusi.

Slides:



Advertisements
Presentasi serupa
TEORI ALGORITMA.
Advertisements

STRUKTUR DASAR ALGORITMA
Sorting (Pengurutan).
PERTEMUAN 6 Algoritma Presented by : Sity Aisyah, M.Kom
PENGURUTAN (SORTING).
Desain dan Analisis Algoritma
sebuah fungsi yang memanggil dirinya sendiri
Tim Matematika Diskrit
Algoritma Dasar Dalam membuat suatu program komputer, menyusun algoritma adalah langkah pertama yang harus dilakukan Dalam membuat algoritma dapat digunakan.
SORTING.
Oleh Nila Feby Puspitasari
ALGORITMA PSEUDOCODE Pertemuan Ke-2 Meilia Nur Indah Susanti, ST.,MKom
Memori dan Scope Variabel
Kompleksitas Algoritma
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M
III. STRUKTUR KONTROL.
2 JAM TEORI dan 1 jam praktek
Design and Analysis Algorithm
Algoritma dan Struktur Data
11. STRATEGI PARTISI DAN DIVIDE & CONQUER 11.1 Partisi Strategi Divide & Conquer Divide & Conquer M-ary 11.2 Contoh Divide & Conquer Sortir dengan Bucket.
Algoritma dan Pemrograman
Sorting 2007/2008 – Ganjil – Minggu 5.
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
12-CRS-0106 REVISED 8 FEB 2013 CSG523/ Desain dan Analisis Algoritma Divide and Conquer Intelligence, Computing, Multimedia (ICM)
Prodi S1-Sistem Komputer, F Teknik Elektro
Fondasi Pemrograman & Struktur Data
KUG1A3 Algoritma& Pemrograman
Nilai dan Tipe Data Nilai dan Tipe data
Algoritma & Pemrograman
Algoritma dan Struktur Data
KUG1A3 Algoritma& Pemrograman
STRUKTUR DATA DAN KOMPUTASI LUNAK
STRUKTUR DASAR ALGORITMA
STRUKTUR DASAR ALGORITMA
PENGURUTAN (SORTING).
Struktur Data Khoiriya Latifa, M.Kom.
SORTING (Lanjut).
Pengurutan (Sorting).
12. Teknologi Pipeline By Serdiwansyah N. A..
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
Sorting.
Array 1.
Struktur Algoritma Sequence Process: instruksi dikerjakan secara sekuensial, berurutan. Selection Process: instruksi dikerjakan jika memenuhi kriteria.
Metode pemecahan masalah
As’ad Djamalilleil Struktur Kontrol (2) As’ad Djamalilleil
STACK / TUMPUKAN Struktur Data.
KUG1E3/ Pemrograman Terstruktur 1
Review Array Sri Nurhayati, MT.
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
Algoritma & Pemrograman 1
ARRAY STATIS Sri Nurhayati, MT.
Sorting.
ALGORITMA BRUTE FORCE Pertemuan 3.
Sorting (Pengurutan).
UJIAN TERDIRI ATAS 50 SOAL
Kompleksitas Algoritma
Review Array Sri Nurhayati, MT.
ARRAY STATIS Sri Nurhayati, MT.
STUKTUR DATA “Sequential Search and Binary Search”
Algoritma Divide and Conquer
Struktur Data Oleh: Suhendro
Pipelined Computations
Desain dan Analisis Algoritma
Sorting.
Sorting (Pengurutan).
SORTING.
Memori dan Scope Variabel
Transcript presentasi:

Pipelined Computations Dalam teknik pipeline, problem dibagi menjadi deretan yang harus dilaksanakan satu setelah lainnya. Setiap tugas nantinya akan dieksekusi oleh proses atau prosesor yang berbeda Gambar 1 Proses pipeline Gambar.2 Pipeline untuk penjumlahan

Contoh Lain Filter frekuensi - Menghilangkan frekuensi tertentu ( katakan f 0, f 1, f 2, f 3, dst) signal, f ( t ). Signal dapat dilewati pipeline dari kiri Gambar 3. Pipeline untuk filter frekuensi Pipeline dapat meningkatkan kecepatan untuk problem yang sekuensial, dalam tiga tipe komputasi: 1. Jika lebih dari satu instance dari problem yang akan dieksekusi 2. Jika ada deretan item data yang harus diproses, masing-masing membutuhkan operasi ganda 3. Jika informasi untuk memulai proses berikutnya dpt diberikan sebelum proses selesai melaksanakan operasi internalnya

Diagram Ruang-Waktu Pipeline “Tipe 1” Gambar 4. Diagram ruang waktu pipeline

Gambar 5 Diagram Ruang-Waktu Alternatif

Diagram Ruang-Waktu Pipeline “Tipe 2” Gambar 6 Pemrosesan pipeline 10 elemen data

Diagram Ruang-Waktu Pipeline “Tipe 3” Gambar 7 Pemrosesan pipeline, informasi di-pass sebelum proses selesai

Jika jumlah tahap lebih besar dari jumlah prosesor dalam pipeline, kelompok tahap dapat diassign untuk tiap prosesor Gambar 8 Partitioning processes onto processors.

Platform Komputisai untuk Aplikasi Pipeline gambar 9 Sistem multiprosesor dengan konfigurasi

Contoh Program Penjumlahan Angka Gambar 10 Penjumlahan Pipeline

Kode dasar untuk proses Pi : recv(&accumulation, P i-1 ); accumulation = accumulation + number; send(&accumulation, P i+1 ); Kecuali untuk proses pertama, P 0, yaitu send(&number, P 1 ); Dan proses terakhir, P n-1, yaitu recv(&number, P n-2 ); accumulation = accumulation + number;

Program SPMD if (process > 0) { recv(&accumulation, P i-1 ); accumulation = accumulation + number; } if (process < n-1) send(&accumulation, P i+1 ); Hasil akhir ada di proses terakhir. Selain penjumlahan, operasi aritmatika lainnya dapat dilakukan juga

Gambar 11 Penjumlahan angka pipeline dengan proses master dan konfigurasi cincin.

Gambar 12 Penjumlahan angka pipeline denganakses langsung ke proses slave.

Analisa Contoh pertama adalah Tipe 1. Dengan asumsi bahwa tiap proses melakukan aksi serupa dalam tiap siklus pipeline. Kemudian akan dilakukan komputasi dan komunikasi yang dibutuhkan dalam siklus pipeline Waktu total eksekusi t total = (waktu untuk satu siklus pipeline)(jumlah siklus) t total = (t comp + t comm )(m + p  1) Dimana ada m instances problem dan p tahap pipeline (proses) Waktu rata-rata untuk komputasi diberikan oleh: t a = t total /m

Instance Tunggal Problem t comp = 1 t comm = 2(t startup + t data ) t total = (2(t startup + t data ) + 1)n Kompleksitas waktu = O(n). Instances Ganda Problem t total = (2(t startup + t data ) + 1)(m + n  1) t a = t total /m  2(t startup + t data ) + 1 Yaitu, satu siklus pipeline.

Mem-partisi Data dengan Instances Gande Problem t comp = d t comm = 2(t startup + t data ) t total = (2(t startup + t data ) + d)(m + n/d  1) Dengan menaikkan d, partisi data, pengaruh komunikasi dihilangkan. Akan tetapi naiknya partisi data menurunkan paralelisme dan terkadang menaikkan waktu eksekusi

Mengurutkan Angka Versi paralel dari insertion sort. ( A parallel version of insertion sort. (versi sekuensialnya adalah menempatka kartu yang dimainkan berurut dgn memindahkan kartu untuk menyisipkannya dalam posisi-nya) Gambar 13 Langkah dalam insertion sort dengan lima angka

Algortima dasar untuk proses Pi adalah recv(&number, P i-1 ); if (number > x) { send(&x, P i+1 ); x = number; } else send(&number, P i+1 ); Dengan n angka, berapa banyak proses ke yang akan diterima diketahui, diberikan oleh n  i. Berapa banyak yang di pass kedepan juga diketahui; diberikan oleh n  i  1 karena satu dari jumlah yang diterima tidak di pass kedepan. Maka loop sederhana dapat digunakan.

Gambar 14 Pipeline untuk sorting menggunakan insertion sort.

Gambar 15 Insertion sort dengan hasil kembali ke proses master m,enggunakan konfigurasi baris dua arah

Dengan mengembalikan hasilnya, proses i dapat ditulis dalam bentuk right_procno = n - i - 1; /*no of processes to the right */ recv(&x, P i-1 ); for (j = 0; j < right_procno; j++) { recv(&number, P i-1 ); if (number > x) { send(&x, P i+1 ); x = number; } else send(&number, P i+1 ); } send(&number, P i-1 ); /* send number held */ for (j = 0; j < right_procno; j++) {/*pass on other nos */ recv(&x, P i+1 ); send(&x, P i-1 ); }

Analisa Sekuensial Jelas merupakan algoritma sorting yang buruk dan tidak cocok kecuali untuk jumlah n yang sangat kecil t s = (n - 1) + (n - 2) + … = n (n + 1) / 2 Paralel Setiap siklus pipeline membutuhkan paling tidak t comp = 1 t comm = 2(t startup + t data ) Waktu eksekusi total, t total, diberikan oleh t total = (t comp + t comm )(2n  1) = (1 + 2(t startup + t data ))(2n  1)

Gambar 16 Insertion sort dengan hasil dikembalikan

Pembangkit Bilangan Prima Deretan integer dibangkitkan dari 2. Bilangan pertama, 2, adalah prima dan disimpan. Seluruh kelipatan bilangan ini dihilangkan karena bukan merupakan bilangan prima. Proses dilakukan secara berulang untuk bilangan berikutnya. Algoritma membuang nonprima, dan menginggalkan hanya bilangan prima

Kode Sekuensial Umumnya menggunakan array dengan nilai awal 1 (TRUE) dan diset 0 (FALSE) jika indeks elemen bukan bilangan prima.Dengan menyatakan angka terakhir adalah n maka dapat ditulis: for (i = 2; i < n; i++) prime[i] = 1; /* Initialize array */ for (i = 2; i <= sqrt_n; i++)/* for each number */ if (prime[i] == 1) /* identified as prime */ for (j = i + i; j < n; j = j + i)/*strike multiples */ prime[j] = 0; /* includes already done */ Loop sederhana mengakses array untuk mencari bilangan prima

Kode Sekuensial Waktu Sekuensial Dengan asumsi komputasi pada tiap iterasi sam dengan satu langkah komputasional. Kompleksitas waktu sekuensial adalah O(n 2 ). Jumlah iterasi sangat tergantung dari bilangan prima tersebut. Ada [n/2-1] kelipatan dua, [n/3-1] kelipatan tiga, dan seterusnya. Sehingga total waktu sekuensial yang dibutuhkan:

Implementasi Pipeline Gambar 5.17 Pipeline untuk bilangan prima

Kode untuk proses, Pi, berdasarkan atas recv(&x, P i-1 ); /* repeat following for each number */ recv(&number, P i-1 ); if ((number % x) != 0) send(&number, P i+1 ); Setiap proses tidak akan menerima jumlah angka yang sama dan tidak diketahui sebelumnya. Menggunakan message “terminator, yang dikirim pada akhir urutan. recv(&x, P i-1 ); for (i = 0; i < n; i++) { recv(&number, P i-1 ); if (number == terminator) break; if (number % x) != 0) send(&number, P i+1 ); }

Menyelesaikan Sistem Persamaan Linier — Kasus Khusus Dimana a dan b adalah konstanta dan x adalah yang akan dicari Contoh tipe 3 – proses dapat melanjutkan pekerjaan lain setelah mem-passing informasi Untuk menyelesaikan persamaan linier dalam bentuk upper triangular:

Subtitusi Balik Pertama, x 0 dapat dilihat dari persamaan terakhir Nilai untuk x 0 disubtitusi ke persamaan berikutnya untuk mendapatkan x 1 Nilai x 0 dan x 1 disubtitusi ke persamaan berikutnya untuk mendapatkan x 2 : Begitu seterusnya sampai seluruhnya diketahui

Solusi Pipeline Gambar 5.18 Menyelesaikan set persamaan linier upper triangular menggunakan pipeline. Pipeline tahap pertama menghitung x 0 dan di pass ke tahap kedua, yang menghitung x 1 dari x 0 dan mem-pass kedua x 0 dan x 1 ke tahap berikutnya, untuk menghitung x 2 from x 0 and x 1, dan seterusnya

Proses ke i (0  i < n) menerima nilai x 0, x 1, x 2, …, x I-1 dan menghitung x i dari persamaan :

Kode Sekuensial Konstanta a i,j dan b k disimpan dalam array a[] dan b[], dan nilai untuk yang dicari disimpan dalam array, x[ ], kode sekuensialnya: x[0] = b[0]/a[0][0]; /* x[0] computed separately */ for (i = 1; i < n; i++) { /* for remaining unknowns */ sum = 0; for (j = 0; j < i; j++ sum = sum + a[i][j]*x[j]; x[i] = (b[i] - sum)/a[i][i]; }

Kode Paralel Pseudocode proses P i (1 < i  n) dari satu versi pipeline adalah: for (j = 0; j < i; j++) { recv(&x[j], P i-1 ); send(&x[j], P i+1 ); } sum = 0; for (j = 0; j < i; j++) sum = sum + a[i][j]*x[j]; x[i] = (b[i] - sum)/a[i][i]; send(&x[i], P i+1 ); Ada komputasi tambahan yang dilakukan setelah menerima dan mengirim ulang nilai.

Gambar 5.19 Pe,mrosesan Pipeline menggunakan Subtitusi Balik.

Analisa Tidak dapat diasumsikan usaha komputasional tiap tahap sama Proses pertama, P 0, melakukan satu pembagian dan satu send(). Proses ke i (0  i < n  1) melakukan i recv() s, i send() s, i perkalian/penjumlahan, satu pembagian/pengurangan,dan akhirnya send( ), total 2i + 1 waktu komunikasi dan 2i + 2 langkah komputasional diasumsikan bahwa, perkalian, penjumlahan, pembagian dan pengurangan tiap satu langkah. Proses terakhir, P n-1, melakukan n  1 recv() s, n  1 perkalian/penjumlahan dan satu pembagian/pengurangan, total n  1 waktu komunikasi dan 2n  1 langkah komputasional