Berkenaan dengan penggunaan komputer sebagai
penganalisis untuk memecahkan masalah-masalah diberbagai bidang ilmu membuat
kinerja suatu komputer untuk bisa lebih cepat dalam pemrosesan juga untuk
menemukan prinsip-prinsip baru yang mendasar dalam ilmu.Semakin banyak hal yang
bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak
pekerjaan yang bisa diselesaikan.Dengan pemrosesan pararel maka dapat
meningkatkan performa komputasi.
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.
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.
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. Tidak berarti
dengan mesin paralel semua program yang dijalankan diatasnya otomatis akan
diolah secara parallel.
Performa dalam pemrosesan paralel diukur dari berapa banyak
peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan teknik
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.
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.
Parallelism Concept
Banyak perkembangan-perkembangan baru dalam
arsitektur komputer yang didasarkan pada konsep pemrosesan paralel. Pemrosesan
paralel dalam sebuah komputer dapat didefinisikan sebagai pelaksanaan
instruksi-instruksi secara bersamaan waktunya. Hal ini dapat menyebabkan
pelaksanaan kejadian-kejadian (1) dalam interval waktu yang sama, (2) dalam
waktu yang bersamaan atau (3) dalam rentang waktu yang saling tumpang tindih.
Sekalipun didukung oleh teknologi prosesor
yang berkembang sangat pesat, komputer sekuensial tetap akan mengalami
keterbatasan dalam hal kecepatan pemrosesannya. Hal ini menyebabkan lahirnya
konsep keparalelan (parallelism) untuk menangani masalah dan aplikasi yang
membutuhkan kecepatan pemrosesan yang sangat tinggi, seperti misalnya prakiraan
cuaca, simulasi pada reaksi kimia, perhitungan aerodinamika dan lain-lain.
Konsep keparalelan itu sendiri dapat ditinjau
dari aspek design mesin paralel, perkembangan bahasa pemrograman paralel atau
dari aspek pembangunan dan analisis algoritma paralel. Algoritma paralel itu
sendiri lebih banyak difokuskan kepada algoritma untuk menyelesaikan masalah
numerik, karena masalah numerik merupakan salah satu masalah yang memerlukan
kecepatan komputasi yang sangat tinggi.
Adapun proses kerja , pemrosesan paralel
membagi beban kerja dan mendistribusikannya pada komputer-komputer lain yang
terdapat dalam sistem untuk menyelesaikan suatu masalah. Sistem yang akan
dibangun akan tidak akan menggunakan komputer yang didesikasikan secara khusus
untuk keperluan pemrosesan paralel melainkan menggunakan komputer yang telah
ada. Artinya, sistem ini nantinya akan terdiri dari sejumlah komputer dengan
spesifikasi berbeda yang akan bekerjasama untuk menyelesaikan suatu masalah.
Adapun tipe-tipe Paralelisme adalah sebagai
berikut :
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.
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.
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.
Pesan Terdistribusi dan Lingkungan Pemrograman (Distributed Messaging and
Programming Enviroment) hubungannya dengan pemrosesan paralel ialah pesan
sebagai sesuatu ( objek ) pada pemrosesan itu sendiri sehingga kita harus
mendeskripsikan pesan ( message ) itu .
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.
Contoh dari proses terdistribusi adalah
ketika terdapat macam masalah diberikan pada satu master, maka dengan
menggunakan komputer paralel masalah terseut akan terpecah menjadi beberapa
bagian secara terdistribusi.
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.
Kesimpulan
Parallel processing dapat mempermudah
pekerjaan kita dalam kehidupan sehari-hari. Dengan kelebihan dari komputasi
parallel processing yang mampu menjalankan tugas lebih dari satu aplikasi, mempercepat
proses penyelesaian masalah, melipatgandakan kemampuan proses sebuah komputer
dan mengurangi separuh dari waktu proses yang diperlukan untuk menyelesaikan
sebuah masalah.Namun, komputasi parallel processing memang tidak spesifik untuk
kekurangannya tetapi ada beberapa walaupun sedikit yaitu Perangkat keras
lainnya yang dibutuhkan ,kebutuhan daya juga lebih, tidak baik untuk daya
rendah dan perangkat mobile.
Sumber