Parallel PROCESSING
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.
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 sendiri adalah teknik
pemrograman komputer yang memungkinkan eksekusi perintah/operasi
secara bersamaan. Bila komputer yang digunakan secara bersamaan
tersebut dilakukan oleh komputer-komputer terpisah yang terhubung
dalam satu jaringan komputer, biasanya disebut sistem terdistribusi.
Bahasa pemrograman yang populer digunakan dalam pemrograman paralel adalah MPI
(Message Passing Interface) dan PVM (Parallel Virtual Machine).
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.