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.
TUJUAN PARALLEL
PROCESSING
Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa
komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu
yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
PARALLEL PROCESSING
Komputasi paralel
Komputasi paralel
adalah salah satu teknik melakukan komputasi secara bersamaan dengan
memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat
kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam
jumlah besar ataupun karena tuntutan proses komputasi yang banyak.
Yang perlu diingat adalah komputasi paralel berbeda dengan multitasking. Pengertian
multitasking adalah komputer dengan processor tunggal mengeksekusi beberapa
tugas secara bersamaan. Walaupun beberapa orang yang bergelut di bidang sistem
operasi beranggapan bahwa komputer tunggal tidak bisa melakukan beberapa
pekerjaan sekaligus, melainkan proses penjadwalan yang berlakukan pada sistem
operasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan
komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel
menggunakan beberapa processor atau komputer. Selain itu komputasi paralel
tidak menggunakan arsitektur Von Neumann.
Untuk lebih
memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1
processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita
harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada
4 model komputasi yang digunakan, yaitu:
·
SIMD
·
SIMD
·
MISD
·
MIMD
SISD
Yang merupakan
singkatan dari Single Instruction, Single Data adalah satu-satunya yang
menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya
digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai
model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan
komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer
yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP
1.
SIMD
Yang merupakan
singkatan dari Single Instruction, Multiple Data. SIMD menggunakan banyak
processor dengan instruksi yang sama, namun setiap processor mengolah data yang
berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang
terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor
kita menggunakan algoritma atau perintah yang sama, namun data yang diproses
berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama
hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40,
begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang
menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP,
Thingking Machine CM-2 dan Cell Processor (GPU).
MISD
Yang merupakan
singkatan dari Multiple Instruction, Single Data. MISD menggunakan banyak
processor dengan setiap processor menggunakan instruksi yang berbeda namun
mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk
contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara
penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga,
keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma
yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai
saat ini belum ada komputer yang menggunakan model MISD.
MIMD
Yang merupakan
singkatan dari Multiple Instruction, Multiple Data. MIMD menggunakan banyak
processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah
data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga
memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model
MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray
XT3 dan IBM BG/L.
Singkatnya untuk
perbedaan antara komputasi tunggal dengan komputasi paralel, bisa digambarkan
pada gambar di bawah ini:
Penyelesaian Sebuah
Masalah pada Komputasi Tunggal
Penyelesaian Sebuah
Masalah pada Komputasi Paralel
Dari perbedaan kedua
gambar di atas, kita dapat menyimpulkan bahwa kinerja komputasi paralel lebih
efektif dan dapat menghemat waktu untuk pemrosesan data yang banyak daripada
komputasi tunggal. Dari penjelasan-penjelasan di atas, kita bisa mendapatkan
jawaban mengapa dan kapan kita perlu menggunakan komputasi paralel. Jawabannya
adalah karena komputasi paralel jauh lebih menghemat waktu dan sangat efektif ketika
kita harus mengolah data dalam jumlah yang besar. Namun keefektifan akan hilang
ketika kita hanya mengolah data dalam jumlah yang kecil, karena data dengan
jumlah kecil atau sedikit lebih efektif jika kita menggunakan komputasi
tunggal.
Komputasi paralel membutuhkan :
· algoritma
· bahasa pemrograman
· compiler
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.
* Message Passing
Interface (MPI)
MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. Kegunaan MPI yang lain adalah
1. menulis kode paralel secara portable
2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3. menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis
yang tidak
begitu cocok dengan model data paralel.
* Message Passing
Interface (MPI)
MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. Kegunaan MPI yang lain adalah
1. menulis kode paralel secara portable
2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3. menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis
yang tidak
begitu cocok dengan model data paralel.
Hubungan antara Komputasi Modern dengan
Paralel Processing
Hubungan antara
komputasi modern dan parallel processing sangat berkaitan, karena penggunaan
komputer saat ini atau komputasi dianggap lebih cepat dibandingkan dengan
penyelesaian masalah secara manual. Dengan begitu peningkatan kinerja atau
proses komputasi semakin diterapkan, dan salah satu caranya adalah dengan
meningkatkan kecepatan perangkat keras. Dimana komponen utama dalam perangkat
keras komputer adalah processor. Sedangkan parallel processing adalah
penggunaan beberapa processor (multiprocessor atau arsitektur komputer dengan
banyak processor) agar kinerja computer semakin cepat.
Kinerja komputasi
dengan menggunakan paralel processing itu menggunakan dan memanfaatkan beberapa
komputer atau CPU untuk menemukan suatu pemecahan masalah dari masalah yang
ada. Sehingga dapat diselesaikan dengan cepat daripada menggunakan satu
komputer saja. Komputasi dengan paralel processing akan menggabungkan beberapa
CPU, dan membagi-bagi tugas untuk masing-masing CPU tersebut. Jadi, satu
masalah terbagi-bagi penyelesaiannya. Tetapi ini untuk masalah yang besar saja,
komputasi yang masalah kecil, lebih murah menggunakan satu CPU saja.