Anda di halaman 1dari 9

Nama Rinno Eka Setiawan

NBI 1461600005
Kelas S
Mata Kuliah Komputasi Paralel
Tugas 4

1. Kerjakan contoh program terlampir & Tarik kesimpulannya !

2. Buat program multiprocessing yang bisa menjalankan ke-4 fungsi berikut secara
bersama-sama;
a) Fungsi menampilkan dan mengirim jarak depan dalam satuan cm ke Master
Control
b) Fungsi menampilkan dan mengirim jarak belakang dalam satuan cm ke Master
Control
c) Fungsi menampilkan dan mengirim jarak sampaing kiri dalam satuan cm ke
Master Control
d) Fungsi menampilkan dan mengirim jarak samping kanan dalam satuan cm ke
Master Control
e) Fungsi menampilkan dan menerima jarak dari semua arah dan memberi komentar
tindakan

3. Membuat ringkasan sendiri Bab-3 dari eBook “Introduction to Parallel


Computing” bentuk word dan diupload ke siakad!
ALGORITMA PARALEL DASAR
Evaluasi Algoritma Paralel

Untuk menyelesaikan masalah komputasi dengan algoritma yang sesuai, kita perlu
melaksanakan analisis mereka. Algoritme sekuensial adalah urutan langkah yang didefinisikan
secara tepat untuk menyelesaikan masalah,yaitu menghitung data keluaran berdasarkan input
data. Jadi algoritma paralel terdiri dari sejumlah algoritma terpisah yang dapat dieksekusi
secara bersamaan. Kriteria dasar untuk mengevaluasi algoritma sekuensial termasuk waktu
berjalan dan kebutuhan memori.

Sistem Paralel yang Dapat Disklalakan

Yang dimaksud dengan sistem paralel adalah algoritma paralel yang dijalankan dalam paralel
tertentu komputer. Sistem paralel dapat ditingkatkan, jika efisiensinya dapat dipertahankan
pada tingkat yang ditentukan oleh secara bersamaan meningkatkan jumlah prosesor dan ukuran
masalah menjadi terpecahkan.

Fungsi Isoefficiency

Fungsi isoefficiency mendefinisikan tingkat pertumbuhan ukuran masalah, sehingga untuk


menjaga efisiensi yang konstan. Pada akhir bagian ini, perlu dicatat bahwa metrik yang
didefinisikan sebelumnya, itu adalah waktu berjalan paralel, percepatan, biaya dan efisiensi,
yang merupakan dasarnya untuk mengevaluasi kinerja algoritma paralel, adalah fungsi dari dua
variabel — a jumlah p prosesor dan ukuran n dari masalah.

Hukum Amdahl’s

Singkatnya, hukum Amdahl memungkinkan kita untuk menjawab pertanyaan sejauh mana a
algoritma sekuensial memecahkan masalah ukuran yang diberikan n dapat dipercepat.
Berdasarkan hukum Amdahl, keinginan untuk membangun komputer paralel dengan semakin
banyak jumlah prosesor dapat dipertanyakan. Namun, peningkatan yang dapat dicapai dalam
komputasi paralel juga dapat dilihat dari perspektif lain, yang dibahas pada bagian selanjutnya.

Hukum Gustafon Barsis’s

Pendekatannya oleh Gustafson dan Barsis menentukan percepatan yang bisa dicapai dengan
tetap mempertahankan konstan waktu komputasi paralel dengan meningkatkan ukuran masalah
yang sedang dipecahkan. Misalkan kita mensimulasikan fenomena kompleks, misalnya kondisi
cuaca, di beberapa ruang geografis menggunakan komputer paralel dengan jumlah tertentu
pengolah.
Hukum Gustafson – Barsis (3.16) mendefinisikan apa yang disebut peningkatan kecepatan,
karena sepanjang dengan perubahan sejumlah prosesor ukuran masalah diskalakan, sehinggaa
waktu komputasi paralel konstan dipertahankan (perhatikan bahwa kita mengasumsikan σ + ρ
= 1). Secara umum, speedup yang ditentukan oleh hukum Gustafson – Barsis jauh lebih besar
dari yang dihitung mengadopsi hukum Amdahl.

METAL KARP – FLATT

Baik pendekatan Amdahl dan Gustafson – Barsis mengabaikan waktu To (p, n) terkait dengan
overhead paralel, dan juga mengasumsikan bahwa fraksi paralel dari Tr (1, n) dapat dipercepat
hingga batas maksimum, yaitu p kali.

ALGORITMA UNTUK MODEL MEMORY BERBAGI

Pada bagian ini kita membahas algoritma paralel untuk memecahkan masalah yang dipilih
menggunakan Model PRAM dengan memori bersama.

Menemukan Minimum dan Jumlah Elemen dalam O (log n) Waktu

Pertama, kami berkonsentrasi pada algoritme untuk memecahkan masalah menemukan


minimum elemen dalam satu set angka. Misalkan angka disimpan dalam array a [1..n] di mana
n = 2r untuk bilangan bulat tertentu r> 0. Kita harus menemukan nilai m = min {a [i]} untuk i
= 1, 2, ..., n. Algoritma berurutan untuk masalah ini waktu berjalan T (n) = n - 1 = O (n) adalah
sebagai berikut:
Teorema Brent
Algoritma untuk menemukan jumlah elemen pada Gambar 3.7, yang merupakan modifikasi
dari algoritma, mengasumsikan bahwa sejumlah p prosesor kurang dari n. Masalah menemukan
elemen minimum atau jumlah elemen yang diberikan set adalah kasus khusus dari masalah
reduksi.
Perhitungan Awalan
Perlu dicatat bahwa menghitung awalan itu penting tidak hanya sebagai masalah itu sendiri,
tetapi juga karena penggunaannya sebagai langkah menengah dalam banyak algoritma paralel.

Menemukan Minimum dalam O (1) Waktu


Sekarang kami akan menyajikan algoritma untuk menemukan elemen minimum dalam satu set
elemen n dalam waktu O (1).
Mengurutkan dalam O (log n) Waktu
Algoritma pengurutan paralel waktu berjalan O (log n). Berbasis pada gagasan algoritma
semacam penghitungan berurutan. Seperti sebelumnya, kita akan menggunakan n2 prosesor
disusun dalam jaring virtual ukuran n × n.
Penggandaan Matriks – Matriks

Mengingat matriks a dan b ukuran n × n kami mencari matriks c menjadi produk matriks a dan
b, yaitu c = ab. Algoritma sekuensial untuk menghitung matriks c di O (n3) waktu adalah
sebagai berikut:
Perhitungan pada Daftar
Struktur data dasar yang telah kami gunakan sejauh ini sambil mendiskusikan algoritma untuk
a Model PRAM adalah array satu dimensi. Waktu berjalan paralel dari algoritma adalah O (log
n), karena satu iterasi dalam baris 9–16 mengurangi panjang setiap sublist hingga setengahnya.
Jadi, untuk menghitung nilai akhir dari d [i] cukup untuk membuat log dan iterasi. Biaya O (n
log n) dari algoritma tidak optimal. Setelah algoritma dijalankan, daftar L asli dihancurkan
(lihat Gambar 3.16d). Jika kita ingin mempertahankan daftar ini, maka sebelum menjalankan
algoritma petunjuk selanjutnya harus disalin dan operasi harus dilakukan pada ini salinan.
Contoh lebih lanjut penerapan metode pointer jump adalah subjek Latihan 7 dan 8.
Metode Siklus Euler

Metode siklus Euler berguna dalam melakukan komputasi paralel yang optimal pohon. Biarkan
T = (V, E) menjadi pohon tanpa akar yang tidak diarahkan, dan biarkan T = (V, E
) menjadi grafik diarahkan berasal dari T dengan mengganti setiap tepi (v, u) ∈ T dengan dua
busur (v, u) dan (u, v). Tingkat input dan output dari simpul dalam grafik T adalah sama, oleh
karena itu grafiknya adalah Eulerian. Dalam grafik seperti itu siklus Euler (atau sirkuit, tur)
ada, yang merupakan jalur tertutup yang melewati setiap busur grafik sekali.22 Siklus Euler
dalam grafik T dapat disediakan oleh fungsi penerus s, yang menetapkan setiap busur e ∈ E
an busur s (e) ∈ E menjadi penerus busur e dalam siklus. Pertimbangkan simpul v ∈ T dan a
daftar simpul yang berdekatan L [v] = (u0, u1, ..., uk, ..., ur − 1), di mana r adalah derajat v.
Asumsikan bahwa penerus busur e = (uk, v) dalam siklus Euler sedang dibangun adalah busur
s ((uk, v)) = (v, u (k + 1) mod r) untuk 0 ≤ k ≤ r - 1.
ALGORITMA UNTUK MODEL JARINGAN

Pada bagian ini kami menyajikan algoritma paralel yang dipilih untuk jenis jaringan tertentu
model.

Multiplikasi Matriks – Vektor dalam Jaringan Torus Satu Dimensi

Algoritme pertama kami akan mengalikan matriks a ukuran n × n dengan vektor n-elemen x,
yaitu z = kapak (Gambar 3.20). Misalkan penggandaan dilakukan oleh prosesor p, p ≤ n,
bekerja secara tidak sinkron dan terhubung dalam torus satu dimensi. Asumsikan untuk
kesederhanaan bahwa r = n / p adalah bilangan bulat. Buffer menentukan di mana data
disimpan, dan arah ∈ {kiri, kanan} menunjukkan prosesor tempat (atau dari mana) data dikirim
(atau diterima). Kami berasumsi bahwa pernyataan komunikasi diimplementasikan secara
sinkron, berbeda dengan perhitungan yang dilakukan oleh semua prosesor secara serempak.

Perkalian Matriks – Matriks dalam Jaringan Torus Dua Dimensi


Sekarang, lihatlah masalah perkalian matriks-matriks dalam dua dimensi torus dengan
prosesor n2 bekerja secara serempak. Prosesor Pi, j diidentifikasi oleh a sepasang indeks i, j,
di mana 1 ≤ i, j ≤ n (
Pengurangan Operasi di Jaringan Cube
Sekarang kami menyajikan algoritma untuk melakukan operasi pengurangan menggunakan a
model jaringan kubus, tempat prosesor beroperasi secara serempak (Gambar 3.23). Seharusnya
kita diberi sebuah array [1..n] dan sebuah kubus dengan prosesor p, di mana n jauh lebih besar
dari p, yaitu n p. Operasi asosiatif biner ⊗ harus dilakukan pada semua elemen array a (lihat
hal. 79). Biarkan operasi ini menjadi tambahan, dan anggaplah bahwa reduksi akan dilakukan
dalam dua fase, seperti pada algoritma pada Gambar 3.7. Ini berarti bahwa menambahkan
elemen array a dilakukan pertama kali dalam segmen p, dan kemudian p parsial jumlah akan
ditambahkan satu sama lain. Prosesor dengan angka memuaskan kondisi tersebut i <(n mod p),
tambahkan n / p elemen array a, dan prosesor lainnya menambahkan n / p elemen.
Siaran dalam Jaringan Cube

Seperti yang telah kita lihat, hasil reduksi (Gambar 3.23) disimpan dalam jumlah variabel
prosesor P0. Cukup sering hasil ini tersedia di semua prosesor kubus

KELAS MASALAH YANG DILAKUKAN DI PARALLEL


Memecahkan masalah dengan algoritma paralel, kita harus memeriksa berapa banyak prosesor
yang dapat kita gunakan. Kelas NC (diciptakan dari: kelas Nick Pippenger) mencakup masalah
yang bisa terjadi dipecahkan oleh algoritma paralel cepat, yaitu kompleksitas waktu paralel
polylogarithmic23, 24 (log n) O, dan kompleksitas prosesor polinomial. Dapat dibuktikan
bahwa NC ⊆ P, yaitu masalah kelas-NC termasuk dalam kelas masalah yang diselesaikan
dalam waktu polinomial menggunakan nomor polinomial prosesor.25 Seperti yang telah
disebutkan, banyak masalah P-complete saat ini diketahui. Satu dari mereka adalah masalah
nilai rangkaian, CVP. Ini memainkan peran yang sama dengan kepuasan masalah ekspresi
Boolean dalam analisis kompleksitas masalah NP-complete.

CATATAN UNTUK BAB INI


Algoritma Penyortiran Paralel Cole
Algoritma sorting paralel sudah disajikan dalam bab ini (lihat Gambar 3.13) dirancang untuk
model CREW PRAM dan didasarkan pada gagasan semacam penghitungan berurutan.
Sekarang kita akan membahas algoritma pengurutan paralel biaya-optimal untuk CREW
Model PRAM diusulkan oleh Cole. Misalkan elemen yang diurutkan berbeda secara
berpasangan.

Sortir Bitonik
Jaringan Batcher Algoritma Cole dan algoritma pada Gambar 3.13 dirancang untuk model
bersama Berbagi memori. Dalam literatur masalah penyortiran juga diselesaikan dengan
mengadopsi model jaringan pembanding. Jaringan seperti ini terdiri dari pembanding yang
saling berhubungan beroperasi secara paralel. Komparator adalah perangkat dengan dua input
dan dua output. Di antara jaringan pembanding a kelompok khusus jaringan penyortiran
dibedakan. Tesis Komputasi Paralel Tesis perhitungan paralel terkait dengan kelas
kompleksitas NC. Biarkan f (n) menjadi fungsi sewenang-wenang ukuran n masalah. Secara
informal, tesis ini mengatakan bahwa kapasitas memori dari komputasi sekuensial dan waktu
komputasi paralel terkait secara polinomi

Anda mungkin juga menyukai