A. Parallelism Concept
Komputasi paralel merupakan salah satu teknik komputasi,
dimana proses komputasinya dilakukan oleh beberapa resources (
komputer ) yang independen, secara bersamaan. Komputasi paralel biasanya
diperlukan pada saat terjadinya pengolahan data dalam jumlah besar ( di
industri keuangan, bioinformatika, dll ) atau dalam memenuhi proses komputasi
yang sangat banyak. Selanjutnya, komputasi paralel ini juga dapat ditemui dalam
kasus kalkulasi numerik dalam penyelesaian persamaan matematis di bidang fisika
( fisika komputasi ), kimia ( kimia komputasi ), dll. Dalam menyelesaikan suatu
masalah, komputasi paralel memerlukan infrastruktur mesin paralel yang terdiri
dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara
paralel.
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. Tidak berarti dengan mesin
paralel semua program yang dijalankan diatasnya otomatis akan diolah secara
paralel. Pemrograman paralel adalah teknik pemrograman komputer yang
memungkinkan eksekusi perintah / operasi secara bersamaan ( komputasi paralel
), baik dalam komputer dengan satu ( prosesor tunggal ) ataupun banyak (
prosesor ganda dengan mesin paralel ) CPU. Bila komputer yang digunakan secara
bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung
dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem
terdistribusi ( distributed computing ). 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 yang anda butuhkan memotong bawang akan
lebih sedikit jika anda kerjakan berdua. Performa dalam pemrograman paralel
diukur dari berapa banyak peningkatan kecepatan ( speed up ) yang diperoleh
dalam menggunakan tehnik paralel. Secara informal, bila anda memotong bawang
sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa
melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak
2 kali.
B. Distributed Processing
Distributed Processing adalah aktivitas memproses informasi
dalam suatu organisasi yang dijalankan oleh jaringan komputer yang tersambung
oleh saluran telekomunikasi yang terpusat pada fasilitas induk komputer.
Proses ini menggunakan pemrosesan paralel pada beberapa
mesin. Misalnya proses transaksi yang terjadi pada beberapa mesin ATM sebuah
bank. Ketika ribuan nasabah menggunakan mesin ATM pada saat yang bersamaan,
bayangkan berapa banyak proses yang harus dikerjakan jika hanya terdapat 1
komputer server. Oleh karena itu dengan menggunakan Distributed Processing,
beban pemrosesan yang besar dapat di kerjakan oleh beberapa komputer yang
terhubung oleh jaringan dalam waktu yang bersamaan secara simultan. Beban
pemrosesan yang besar itu dipecah menjadi beberapa beban kecil guna mempercepat
proses.
C. Architectural Parallel Computer
Arsitektur paralel komputer menurut Klasifikasi Flynn’s :
- SISD
Single Instruction – Single Data. Komputer jenis ini hanya
memiliki satu prosesor ( single processor ). Dimana semua instruksi di eksekusi
secara serial ( terurut satu demi satu ) dan memungkinkan adanya overlapping di
setiap bagian instruksi dalam pelaksanaan eksekusi. Komputer ini adalah tipe
komputer konvensional. Beberapa contoh komputer yang menggunakan model SISD adalah
UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
- SIMD
Single Instruction – Multiple Data. Komputer jenis ini hanya
dapat mengeksekusi satu instruksi dan memiliki lebih dari satu prosesor. Satu
eksekusi dilakukan secara paralel pada data yang berbeda pada level lock-step.
Komputer vektor adalah salah satu komputer paralel yang menggunakan arsitektur
ini. 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
Multiple Instructions – Single Data. Belum ada perwujudan
nyata dari komputer jenis ini kecuali dalam bentuk prototipe untuk
penelitian. Teorinya komputer ini memiliki satu prosesor dan
mengeksekusi beberapa instruksi secara paralel tetapi praktiknya tidak ada
komputer yang dibangun dengan arsitektur ini karena sistemnya tidak mudah
dipahami.
- MIMD
Multiple Instructions – Multiple Data. Komputer jenis ini
dapat mengeksekusi lebih dari satu instruksi secara paralel dengan lebih dari
satu prosesor. Tipe komputer ini yang paling banyak digunakan untuk membangun komputer
paralel, bahkan banyak supercomputer yang menerapkan arsitektur ini. Beberapa
komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer,
Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.