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.
Prosesor dan memori ini
didalam mesin paralel dapat dihubungkan (interkoneksi) secara statis maupun
dinamis. Interkoneksi statis umumnya digunakan oleh distributed memory system
(sistem memori terdistribusi). Sambungan langsung peer to peer digunakan untuk
menghubungkan semua prosesor. Interkoneksi dinamis umumnya menggunakan switch
untuk menghubungkan antar prosesor dan memori.
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:
1. SISD (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.
2.
SIMD(Single
Instruction, Multiple Data) 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).
3. MISD(Multiple
Instruction, Single Data) 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.
4. MIMD( Multiple
Instruction, Multiple Data) 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.
Berikut ini adalah gambar perbedaa antara komputasi tunggal dengan parallel
komputasi :
a)
komputasi tunggal/serial
b)
komputasi parallel
Perbandingan antara
serial komputasi dan parallel komputasi
Pada sistem 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 komputer paralel dibedakan
menjadi shared memory parallel machine dan distributed memory parallel machine.
Prosesor dan memori ini didalam mesin paralel dapat
dihubungkan (interkoneksi) secara statis maupun dinamis. Interkoneksi statis
umumnya digunakan oleh distributed memory system (sistem memori terdistribusi).
Sambungan langsung peer to peer digunakan untuk menghubungkan semua prosesor.
Interkoneksi dinamis umumnya menggunakan switch untuk menghubungkan antar
prosesor dan memori.
Komunikasi data pada sistem paralel memori terdistribusi,
memerlukan alat bantu komunikasi. Alat bantu yang sering digunakan oleh sistem
seperti PC Jaringan pada saat ini adalah standar MPI (Message Passing
Interface) atau standar PVM (Parallel Virtual Machine)yang keduanya bekerja
diatas TCP/IP communication layer. Kedua standar ini memerlukan fungsi remote
access agar dapat menjalankan program pada masing-masing unit prosesor.
Salah satu protocol yang dipergunakan pada komputasi
parallel adalah Network File System (NFS), NFS adalah protokol yang dapat
membagi sumber daya melalui jaringan. NFS dibuat untuk dapat independent dari
jenis mesin, jenis sistem operasi, dan jenis protokol transport yang digunakan.
Hal ini dilakukan dengan menggunakan RPC. NFS memperbolehkan user yang telah
diijinkan untuk mengakses file-file yang berada di remote host seperti
mengakses file yang berada di lokal. Protokol yang digunakan protokol mount
menentukan host remote dan jenis file sistem yang akan diakses dan menempatkan
di suatu direktori, protokol NFS melakukan I/O pada remote file system.
Protokol mount dan protokol NFS bekerja dengan menggunakan RPC dan mengiri
dengan protokol TCP dan UDP. Kegunaan dari NFS pada komputasi parallel adalah
untuk melakukan sharing data sehingga setiap node slave dapat mengakses program
yang sama pada node master.
Software yang diperlukan untuk Parallel komputasi adalah
PGI CDK, dimana aplikasi ini telah dilengkapi dengan Cluster Development Kit
dimana software ini telah memiliki feature yang lengkap bila ingin melakukan
komputasi dengan parallel prosessing karena software ini telah mensupport MPI
untuk melakukan perhitungan komputasi.
A. Konsep komputasi Parallel Processing
Paralel Processing adalah kemampuan menjalankan tugas atau aplikasi lebih dari satu aplikasi dan dijalankan secara simultan atau bersamaan pada sebuah komputer. Secara umum, ini adalah sebuah teknik dimana sebuah masalah dibagi dalam beberapa masalah kecil untuk mempercepat proses penyelesaian masalah.Terdapat dua hukum yang berlaku dalam sebuah parallel processing. yaitu:
- Hukum Amdahl:Amdahl berpendapat, “Peningkatan kecepatan secara paralel akan menjadi linear, melipatgandakan kemampuan proses sebuah komputer dan mengurangi separuh dari waktu proses yang diperlukan untuk menyelesaikan sebuah masalah.”
- Hukum GustafsoN: Pendapat yang dikemukakan Gustafson hampir sama dengan Amdahl, tetapi dalam pemikiran Gustafson, sebuah komputasi paralel berjalan dengan menggunakan dua atau lebih mesin untuk mempercepat penyelesaian masalah dengan memperhatikan faktor eksternal, seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin yang digunakan.

Gambar diatas merupakan contoh dari sebuah komputasi paralel, dimana pada gambar diatas terdapat sebuah masalah, dari masalah tersebut dibagi lagi menjadi beberapa bagian agar sebuah masalah dapat dengan cepat diatasi.
B. Distributed Processing
Distributed Processing adalah
kemampuan mengerjakan semua proses pengolahan data secara bersama antara
komputer pusat dengan beberapa komputer yang lebih kecil dan saling
dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki
prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah,
kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian
total. Jika salah satu prosesor mengalami kegagalan atau masalah maka
prosesor yang lain akan mengambil alih tugasnya.
sumber:
Tidak ada komentar:
Posting Komentar