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 (di
industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak.
Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di
bidang fisika (fisika komputasi), kimia (kimia komputasi) dll. Komputasi paralel membutuhkan:
Algoritma
Bahasa Pemrograman
Compiler
TUJUAN
Tujuan utama dari Pemrograman Paralel adalah untuk meningkatkan performa komputasi.
Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin
banyak pekerjaan yang bisa diselesaikan. Analogi yang paling gampang adalah, bila anda dapat
merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda
butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan
(serial). Atau waktu yg anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan
berdua.
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.
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.
Potensi percepatan suatu algoritma pada platform komputasi paralel diberikan oleh hukum
Amdahl
Dimana :
Ketergantungan
Biarkan Pi dan Pj menjadi dua segmen program. Kondisi Bernstein menggambarkan kapan
keduanya independen dan dapat dieksekusi secara paralel. Untuk Pi, biarkan Ii menjadi semua
variabel input dan Oi variabel output, dan juga untuk Pj. Pi dan Pj bersifat independen jika
memuaskan
Pertimbangkan fungsi-fungsi berikut, yang menunjukkan beberapa jenis dependensi :
1: function Dep(a, b)
2: c := a * b
3: d := 3 * c
4: end function