Pemrosesan paralel (parallel
processing) adalah penggunakan 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 dalam praktek,
seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang
berbea-beda tanpa berkaitan di antaranya.
Komputasi paralel adalah salah satu
teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa
komputer secara bersamaan. Biasanyadiperlukan saat kapasitas yang diperlukan
sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena
tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi
paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak
komputer yang dihubungkan dengan jaringan dan mampu bekerja secara
paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat
lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk
mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya
pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
Pemrograman paralel adalah teknik
pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara
bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak
(prosesor ganda dengan mesin paralel) CPU. 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.
Komputasi paralel membutuhkan:
·
algoritma
·
bahasa
pemrograman
·
compiler
Sebagian besar komputer hanya
mempunyai satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada
komputer dengan ribuan CPU. Komputer dengan satu CPU dapat melakukan parallel
processing dengan menghubungkannya dengan komputer lain pada jaringan. Namun,
parallel processing ini memerlukan software canggih yang disebut distributed
processing software. Parallel processing berbeda dengan multitasking, yaitu
satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut
juga parallel computing.
Sesuai
taksonomi Flynn, seorang Designer Processor, Organisasi Prosesor
dibagi menjadi 4 :
A. SISD (Single Instruction Single Data Stream)
Arus Instruksi Tunggal dan Data Tunggal
B. SIMD (Single Instruction Multiple Data Stream)
Arus Instruksi Tunggal dan Multiple Data
C. MISD (Multiple Instruction Single Data Stream)
Arus Multiple Instruksi dan Data Tunggal
D. MIMD (Multiple Instruction Multiple Data Stream)
Arus Multiple Instruksi dan Multiple Data
A. SISD (Single Instruction Single Data Stream)
Arus Instruksi Tunggal dan Data Tunggal
B. SIMD (Single Instruction Multiple Data Stream)
Arus Instruksi Tunggal dan Multiple Data
C. MISD (Multiple Instruction Single Data Stream)
Arus Multiple Instruksi dan Data Tunggal
D. MIMD (Multiple Instruction Multiple Data Stream)
Arus Multiple Instruksi dan Multiple Data
1.
Organisasi Prosesor SISD
- Prosesor tunggal
- Aliran instruksi tunggal
- Data disimpan dalam memori tunggal
- Uni-processor
2.
Single Instruction, Multiple Data Stream – SIMD
- Single machine instruction
- Mengontrol eksekusi secara simultan
- sejumlah elemen-elemen pengolahan
- Berdasarkan Lock-step
- Setiap pengolahan elemen memiliki hubungan dengan memori data
- Setiap instruksi dieksekusi pada kumpulan data yang berbeda oleh prosesor yang berbeda
- Prosesor Vector and array
3.
Multiple Instruction, Single Data Stream – MISD
- Rangkaian dari data
- Dikirimkan ke kumpulan prosesor
- Setiap prosesor mengeksekusi urutan instruksi yang berbeda
- Belum pernah diimplementasikan (komesial)
4.
Multiple Instruction, Multiple Data Stream- MIMD
- Kumpulan/sejumlah prosesor
- Mengeksekusi secara simultan urutan instruksi yang berbeda
- Kumpulan data yang berbeda
- SMP, Cluster and sistem NUMA
Sumber: