I.
Pengertian Komputasi Paralel
Pemrosesan Paralel atau parallel
processing merupakan penggunaan lebih dari satu CPU untuk menjalankan sebuah
program secara simultan. Idealnya, parallel processing membuat program berjalan
lebih cepat karena semakin banyak CPU yang digunakan. Tetapi pada prakteknya,
seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang
berbeda-beda tanpa berkaitan diantaranya.
Komputasi paralel adalah salah
satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa
komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas
yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah
besar ataupun karena tuntutan proses komputasi yang banyak.
Komputasi
paralel membutuhkan :
Algoritma
Bahasa
pemrograman
Compiler
II. Arsitektur
Komputasi Paralel
A.
Berdasarkan simetrinya, multiprocessing dapat dibagi ke dalam:
1. Asymmetric Multiprocessing (ASMP)
2. Symmetric Multiprocessing (SMP)
3. Non-uniform memory access (NUMA)
multiprocessing
4. Clustering
B.
Berdasarkan jumlah instruksi dan datanya, dapat dibagi ke dalam (lihat
Taksonomi Flynn)
1.
Komputer SISD (Single Instruction stream-Single Data stream)
Komputer
ini memiliki hanya satu prosesor dan satu instruksi yang dieksekusi secara
serial. Komputer ini adalah tipe komputer konvensional.
Single Instruction stream-Single Data stream |
2.
Komputer SIMD (Single Instruction stream-Multiple Data stream)
Pada
komputer SIMD terdapat lebih dari satu elemen pemrosesan yang dikendalikan oleh
sebuah unit pengendali yang sama. Seluruh elemen pemrosesan menerima dan
menjalankan instruksi yang sama yang dikirimkan unit pengendali, namun
melakukan operasi terhadap himpunan data yang berbeda yang berasal dari aliran
data yang berbeda pula.
Single Instruction stream-Multiple Data stream |
3.
Komputer MISD (Multiple Instruction stream-Single Data stream)
Komputer
jenis ini memiliki n unit pemroses yang masing-masing menerima dan
mengoperasikan instruksi yang berbeda terhadap aliran data yang sama,
dikarenakan setiap unit pemroses memiliki unit pengendali yang berbeda.
Keluaran dari satu pemroses menjadi masukan bagi pemroses berikutnya. Belum ada
perwujudan nyata dari komputer jenis ini kecuali dalam bentuk prototipe untuk
penelitian.
Multiple Instruction stream-Single Data stream |
4.
Komputer MIMD (Multiple Instruction stream-Multiple Data stream)
Pada
sistem komputer MIMD murni terdapat interaksi di antara n pemroses. Hal ini
disebabkan seluruh aliran dari dan ke memori berasal dari space data yang sama
bagi semua pemroses. Komputer MIMD bersifat tightly coupled jika tingkat
interaksi antara pemroses tinggi dan disebut loosely coupled jika tingkat
interaksi antara pemroses rendah.
Multiple Instruction stream-Multiple Data stream |
III.
Bahasa Pemrograman pada Parallel
Computation
A.
MPI (Message Passing Interface)
Sebuah
standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi
yang dapat dijalankan secara paralel. Suatu standar protokol yang digunakan
untuk pemrograman paralel dan terdistribusi.
Kelebihan
MPI :
1.
Menyediakan
fungsi-fungsi untuk menukar pesan.
2. Menulis kode paralel secara portable.
3. Mendapatkan performa yang tinggi dalam
pemrograman paralel.
4. Menghadapi permasalahan yang
melibatkan hubungan data irregular atau dinamis yang tidak begitu cocok dengan
model data paralel.
Kekurangan
MPI :
1.
Tugas
programmer semakin kompleks terkait detail komunikasi data.
2. Mapping data struktur berbasis memori
globlal bisa susah.
B.
PVM (Private Virtual Machine)
Perangkat
lunak yang memungkinkan sekumpulan komputer yang heterogen terlihat seperti
satu sistem komputer paralel dan dapat digunakan sebagai sebuah sumber daya
komputasi yang koheren. Istilah virtual machine mengacu pada konfigurasi
komputer dengan memori tersebar, sedangkan istilah host ditujukan untuk
komputer yang merupakan anggota dari virtual machine. Host dapat terdiri dari
komputer yang berbeda-beda dan terpisah lokasinya secara fisik.
Komponen
PVM
Berikut
ini beberapa komponen PVM :
1.
PVM daemon
Daemon
dari PVM, atau disebut PVM daemon (pvmd). Daemon merupakan semacam program yang
berjalan di “belakang” dan biasanya menangani program dari klien. Komponen ini
berada pada setiap komputer yang terhubung dalam virtual machine. PVM Berguna
untuk membentuk konfigurasi host dalam PVM dan mengkoordinir komunikasi antar
host.
2.
PVM libraries
Komponen
ini berisi rutin-rutin antarmuka pemakai PVM untuk melakukan pengiriman
pesan, pembuatan proses, koordinasi proses dan modifikasi virtual machine.Pustaka
PVM ini memungkinkan adanya interaksi antar task, yang bisa dilakukan dengan
menggunakan fungsi packing dan unpacking pesan.
Implementasi
PVM
Secara
umum, langkah implementasi komputasi parallel sebagai berikut:
1.
Jalankan PVM daemon pada setiap mesin dalam cluster
2.
Jalankan program master pada master daemon
3.
Master daemon akan menjalankan proses slave.
IV.
Kelebihan Komputasi Paralel
Beberapa
alasan yang menjadikan suatu program menggunakan komputasi paralel antara lain:
1.
Mempersingkat
waktu eksekusi program yang menggunakan komputasi serial.
2.
Mendukung
penyelesaian terhadap permasalahan secara cepat.Untuk komputasi yang sangat
kompleks, terkadang sumber daya (resource) yang ada sekarang belum cukup mampu
untuk
3.
Mengatasi
adanya keterbatasan memori pada mesin untuk komputasi serial.
4.
Adanya
sumber daya non-lokal yang dapat digunakan melalui jaringan lokal atau
internet.
5.
Penghematan
biaya pengadaan perangkat keras, dengan menggunakan beberapa mesin yang murah
sebagai alternatif penggunaan satu mesin yang bagus tapi mahal, walaupun
menggunakan P-Processor (Multicore).
V.
Kekurangan Komputasi Paralel
Penggunaan
komputasi paralel sebagai solusi untuk mempersingkat waktu yang dibutuhkan,
namun untuk eksekusi program mempunyai beberapa kekurangan berupa hambatan.
Hambatan-hambatan
tersebut antara lain adalah:
1.
Hukum
Amdahl, yaitu percepatan waktu eksekusi program dengan menggunakan komputasi
paralel tidak akan pernah mencapai kesempurnaan karena selalu ada bagian
program yang harus dieksekusi secara serial.
2.
Hambatan
yang diakibatkan karena beban jaringan, dalam eksekusi program secara paralel,
prosesor yang berada di mesin yang berbeda memerlukan pertukaran data melalui
jaringan. Untuk program yang dibagi menjadi task-task membutuhkan sinkronisasi,
network latency (keterlambatan jaringan) menjadi masalah utama.
3.
Hambatan
yang terkait dengan beban waktu untuk inisialisasi task, terminasi task, dan
sinkronisasi.
VI.
Kesimpulan
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, seperti misalnya prakiraan
cuaca, simulasi pada reaksi kimia, perhitungan aerodinamika dan lain-lain.
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 memudahkan
user dalam berinteraksi darisatu sistem ke sistem yang lain, dengan tujuan
untuk membagi beban yang terdapat padasuatu sistem sehingga satu masalah
dipecahkan secara bersama-sama. Dan keberhasilan pemrosesan paralel itu dapat
dilihat dari kecepatan (speed up) yang diperoleh dari teknik paralel yang
digunakan.
Sumber
:
http://isjd.pdii.lipi.go.id/admin/jurnal/11083648.pdf
https://www.scribd.com/doc/40938360/Makalah-Arkom-Paralel-Processing
Tidak ada komentar:
Posting Komentar