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.
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. Tidak berarti dengan mesin
paralel semua program yang dijalankan diatasnya otomatis akan diolah secara
parallel.
Di dalam komputasi
parallel ada yang dinamakan dengan pemrograman parallel. 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 yg 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.
Parallel processing
berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program
sekaligus. Parallel processing disebut juga parallel computing. Pada system
komputasi parallel terdiri dari beberapa unit prosesor dan beberapa unit
memori. Ada dua teknik yang berbeda untuk mengakses data di unit memori, yaitu
shared memory address dan message passing. Berdasarkan cara mengorganisasikan
memori ini computer parallel dibedakan menjadi shared memory parallel machine
dan distributed memory parallel machine.
Adapun proses kerja, pemrosesan paralel
membagi beban kerja dan mendistribusikannya pada komputer-komputer lain yang
terdapat dalam sistem untuk menyelesaikan suatu masalah. Adapun tipe-tipe
Paralelisme adalah sebagai berikut :
1. Result
Paralelisme
Result Paralelisme yang sering disebut sebagai
Embarrassingly Parallel atau Perfect Paralel adalah tipe paralelisme dimana
komputasinya dapat dibagi menjadi beberapa tugas independen yang mempunyai
struktur sama. Data struktur suatu tugas dibagi menjadi beberapa bagian yang
berstruktur sama. Contoh tugas yang bisa diselesaikan dengan Result Parallelism
adalah Simulasi Montecarlo.
2. Specialist
Paralelisme
Cara kerja Specialist Parallelisme adalah
dengan mengerjakan beberapa tugas secara bersamaan pada prosesor yang berbeda .
Setiap komputer mengerjakan tugas tertentu. Contohnya penggunaanya adalah pada
simulasi pabrik kimia, satu prosesor mensimulasikan proses sebelum reaksi
kimia, satu prosesor mensimulasikan reaksi pada tahap awal, dan prosesor
lainnya mensimulasikan proses penyulingan hasil, dan seterusnya.
3. Agenda
Paralelisme
Tipe paralelisme ini mempunyai daftar yang
harus dikerjakan oleh sistem komputer . Semua komputer yang terdapat pada
sistem dapat mengakses daftar tersebut. Pada Model MW (Manager Worker) terdapat
pengelompokan komputer menjadi dua yaitu :
a. Manager :
bertugas memulai perhitungan, memonitor kemajuan tugas, melayani permintaan
worker. User berkomunikasi dengan sistem komputer melalui komputer yang
berfungsi sebagai manager ini.
b. Worker :
mengerjakan tugas-tugas yang diberikan oleh manager. Kerja komputer ini dimulai
setelah ada perintah dari manager dan diakhiri oleh manager.
Distributed
Processing : Di dalam komputasi parallel ada yang dinamakan dengan pemrograman
parallel. 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).
Pemrosesan terdistribusi merupakan proses pendistribusian
pengolahan paralel dalam pemrosesan paralel menggunakan beberapa mesin. Jadi,
bisa di bilang kemampuan dari suatu komputer-komputer yang dijalankan secara
bersamaan untuk memecahkan suatu masalah dengan proses yang cepat.
Didistribusikan pengolahan paralel menggunakan pemrosesan paralel
pada beberapa mesin. Salah satu contoh dari hal ini adalah bagaimana beberapa
komunitas memungkinkan pengguna untuk mendaftar dan mendedikasikan komputer
mereka sendiri untuk memproses beberapa data set yang diberikan kepada mereka
oleh server. Ketika ribuan pengguna mendaftar untuk ini, banyak data dapat
diproses dalam jumlah yang sangat singkat.
Parallel distributed computing dapat dibentuk dari :
PVM (Parallel Virtual Machine)
Untuk mendukung workstation clusters yang merupakan sebuah
perangkat lunak yang mampu mensimulasikan pemrosesan paralel pada jaringan.
MPI (Message-Passing Interface)
programming GUI
Untuk parallel computers yang merupakan sebuah mekanisme
mengiriman instruksi dan data antara dua proses komputasi yang berbeda yang
berada pada komputer berbeda pada sistem sistem paralel. Paket-paket yang
mempunyai spesifikasi kebutuhan MPI telah banyak beredar di Internet dan telah
dilengkapi dengan LAM/MPI [5] dan MPICH [6]. Paket-paket ini telah dilengkapi
dengan fungsi-fungsi yang menggunakan library C dan Fortran. Kemampuan MPI
digunakan untuk menginterpretasikan bahasa pemrograman matrik kemampuan dynamic
linking dari bahasa tersebut. Fungsi library dari paket MPI dapat digabungkan
dengan dynamic extension dengan cara menghubungkan bahasa pemrograman tersebut
dengan bahasa C, C++, atau FORTRAN. Hal ini telah dilakukan untuk menciptakan
toolbox MPI (MPITB) untuk kebutuhan MATLAB, dan bahasa pemrograman GNU Octave
oleh Fernandez Baldomero .
Architectural
Parallel: Menurut seorang Designer Processor, taksonomi Flynn, Arsitektur
Komputer dibagi menjadi 4 bagian, yaitu :
SISD (Single Instruction, Single
Data)
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 (Single Instruction, Multiple Data)
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 (Multiple Instruction, Single Data)
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 (Multiple Instruction, Multiple
Data)
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.
Sumber :
Tidak ada komentar:
Posting Komentar