PARALEL
PROSESING
Pengertian
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. Tetapi dalam praktek,seringkali sulit membagi program sehingga dapat
dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya.
Komputasi Parallel
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 parallel
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
parallel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang
bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak
pekerjaan yang bisa diselesaikan.
Komputasi paralel membutuhkan:
· algoritma
· bahasa pemrograman
· compiler
Sebagai besar komputer hanya mempunyai satu CPU,
namun ada yang mempunyai lebih dari satu. Bahkan juga ada komputer dengan
ribuan CPU. Komputer dengan satu CPU dapat melakukan parallel processing dengan
menghubungkannya dengan komputer lain pada jaringan. Namun, parallel processing
ini memerlukan software canggih yang disebut distributed processing software.
Parallel processing berbeda dengan multitasking,
yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing
disebut juga parallel computing

.Contoh struktur pengiriman permintaan dan jawaban
dari parallel processing
Aristektur Komputer Parallel
Taksonomi Flynn dan model pemrosesan parallel.

Keempat kelompok komputer tersebut adalah :
1. Komputer SISD (Single Instruction stream-Single
Data stream)
Pada computer jenis ini semua instruksi dikerjakan terurut
satu demi satu, tetapi juga dimungkinkan adanya Overlapping dalam eksekusi
setiap bagian instruksi (pipelining). Pada umumnya komputer SISD berupa
komputer yang terdiri atas satu buah pemroses (single processor). Namun
komputer SISD juga mungkin memiliki lebih dari satu unit fungsional(modul
memori, unit pemroses, dan lain-lain), selama seluruh unit fungsional tersebut
berada dalam kendali sebuah unit pengendali.
2. Komputer SIMD (Single Instruction stream-Multiple
Data stream)
Pada komputer SIMD terdapat lebih dari satu elemen
pemrosesan yang dikendalikan oleh sebuahunit pengendali yang sama. Seluruh
elemen pemrosesan menerima dan menjalankan instruksi yang sama yang dikirimkan
unit pengendali, namun melakukan operasi terhadap himpunan data yang berbeda
yang berasal dari aliran data yang berbeda pula.
3. Komputer MISD (Multiple Instruction stream-Single
Data stream)
Komputer jenis ini memiliki unit pemroses yang
masing-masing menerima danmengoperasikan instruksi yang berbeda terhadap aliran
data yang sama, dikarenakan setiap unit pemroses memiliki unit pengendali yang
berbeda. Keluaran dari satu pemroses menjadi masukan bagi pemroses berikutnya.
Belum ada perwujudan nyata dari komputer jenis ini kecuali dalam bentuk
prototipe untuk penelitian.
4. Komputer MIMD (Multiple Instruction
stream-Multiple Data stream)
Pada sistem computer MIMD murni terdapat interaksi di antara
pemroses. Hal ini disebabkan seluruh aliran dari dan ke memori berasal dari
spacedata yang sama bagi semua pemroses. Komputer MIMD bersifat tightly coupled
jika tingkat interaksi antara pemroses tinggi dan disebut loosely coupled jika
tingkat interaksi antara pemroses rendah.

Paralel prosessing komputasi adalah proses atau
pekerjaan komputasi di komputer denganmemakai suatu bahasa pemrograman yang
dijalankan secara paralel pada saat bersamaan. Secara umum komputasi paralel
diperlukan untuk meningkatkan kecepatan komputasi biladibandingkan dengan pemakaian
komputasi pada komputer tunggal.
Berikut ini adalah gambar perbedaan antara komputasi
tunggal dengan parallel komputasi :

a)Komputasi Tunggal / serial

b) Komputasi Paralel
Message
Passing Interface (MPI).
MPI adalah sebuah standard
pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang
dapat dijalankan secara paralel. Proses yang dijalankan oleh sebuah aplikasi dapat
dibagi untuk dikirimkan ke masing - masing compute node yang kemudian masing
-masing compute node tersebut mengolah dan mengembalikan hasilnya ke komputer
head node.Untuk merancang aplikasi paralel tentu membutuhkan banyak
pertimbangan – pertimbangan diantaranya adalah latensi dari jaringan dan lama sebuah tugas dieksekusi oleh
prosesor.
MPI ini merupakan standard yang dikembangkan untuk
membuat aplikasi pengirim pesan secara portable. Sebuah komputasi paralel
terdiri dari sejumlah proses, dimana masing-masing bekerja pada beberapa data
lokal. Setiap proses mempunyai variabel lokal, dan tidak ada mekanisme suatu
proses yang bisa mengakses secara langsung memori yang lain. Pembagian data
antar proses dilakukan dengan message
passing, yaitu dengan mengirim dan menerima pesan antar proses.MPI menyediakan fungsi-fungsi untuk
menukarkan antar pesan. Kegunaan MPI yang lain adalah1. menulis kode paralel
secara portable,2. mendapatkan performa yang tinggi dalam pemrograman paralel,
dan3. menghadapi permasalahan yang melibatkan hubungan data irregular atau
dinamis yang tidak begitu cocok dengan
model data paralel.
PVM (Parallel
Virtual Machine)
PVM adalah paket software yang
mendukung pengiriman pesan untuk komputasi parallel antar komputer. PVM dapat berjalan diberbagai macam variasi
UNIX atau pun windows dan telah portable untuk banyak arsitektur seperti PC,
workstation, multiprocessor dan superkomputer. Sistem PVM terbagi menjadi dua.
Pertama adalah daemon, pvmd, yang berjalan pada mesinvirtual masing-masing
komputer. Mesin virtual akan dibuat, ketika User mengeksekusi aplikasi PVM. PVM
dapat dieksekusi melalui prompt UNIX disemua host. Bagian kedua adalah
libraryinterface rutin yang mempunyai banyak fungsi untuk komunikasi antar task
. Library ini berisikan rutin yang dapat dipanggil untuk pengiriman pesan,
membuat proses baru, koordinasitask dan konfigurasi mesin virtual. Salah aturan
main yang penting dalam PVM adalah adanya mekanisme program master danslave/worker.
Programmer harus membuat Kode master yang menjadi koordinator proses danKode
slave yang menerima, menjalankan, dan mengembalikan hasil proses ke komputer
master. Kode master dieksekusi paling awal dan kemudian melahirkan proses lain
dari kode master.Masing-masing program ditulis menggunakan C atau Fortran dan
dikompilasi dimasing-masingkomputer. Jika arsitektur komputer untuk komputasi
paralel semua sama, (misalnya pentium 4 semua), maka program cukup dikompilasi
pada satu komputer saja. Selanjutnya hasil kompilasididistribusikan kekomputer
lain yang akan menjadi node komputasi parallel. Program master hanya berada
pada satu node sedangkan program slave berada pada semua node.Komunikasi dapat
berlangsung bila masing-masing komputer mempunyai hak akses kefilesystem semua
komputer. Akses kefile system dilakukan melalui protokol rsh yang berjalan
diunix atau windows.
Berikut adalah langkah pengaturan pada masing-masing komputer
:
1. Buat file hostfile yang berisi daftar node
komputer dan nama user yang akan dipakai untuk komputasi parallel. Bila nama
user pada semua komputer sama misalnya nama user riset padakomputer C1, C2,C3
dan C4, maka hostfile ini boleh tidak ada. Hostfile ini dapat digunakan
bilanama user di masing-masing komputer berbeda.2. Daftarkan IP masing-masing
komputer pada file /etc/hosts/hosts.allow dan/etc/hosts/hosts.equiv.3.
Penambahan dan penghapusan host secara dinamis dapat dilakukan melalui konsole
PVM.Bila IP tidak didefinisikan pada hostfile¸ cara ini dapat digunakan.Program
PVM terdiri dari master dan slave, dimana program master dieksekusi paling awal
dan kemudian melahirkan proses lain. PVM memanggil rutin pvm_spawn() untuk
melahirkan satuatau dua proses lebih yang sama. Fungsi-fungsi untuk PVM versi
bahasa C mempunyai rutinawalan pvm. Pengiriman dan penerimaan task
diidentifikasi dengan TID (Task Identifier). TID ini bersifat unik dan
digenerate oleh pvmd lokal. PVM berisi beberapa rutine yang mengembalikan nilai
TID sehingga aplikasi user dapat mengidentifikasi task lain disistem.

Secara umum, langkah implementasi komputasi parallel
sebagai berikut :
1. Jalankan PVM daemon pada setiap mesin dalam
cluster
2. Jalankan program master pada master daemon
3. Master daemon akan menjalankan proses slave.
Tidak ada komentar:
Posting Komentar