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.
Konsep Pararel
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). 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.
Distribusi
Processing
Yang dimaksud
Distribusi Processing adalah 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 yang lain akan
mengambil alih tugasnya.
Contoh
dari Distributed Data Processing System adalah: ATM, komputer yang
dirancang untuk tugas-tugas melaksanakan proyek, analisis finansial,
penjadwalan waktu dan akuntansi. Contoh lainnya, pengolahan data pada server
yahoo yang tersebar hampir di seluruh dunia secara distribusi, setiap wilayah
mempunyai server masing-masing. Seperti di indonesia mempunyai server
tersendiri sehingga pengolahan data tidak di pusat melainkan di wilayah
masing-masing, dll.
Arsitektur
Komputer Paralel
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.
Arsitektur
paralel komputer menurut Klasifikasi Flynn’s:
·
SISD
Single
Instruction – Single Data. Komputer ini memiliki hanya satu prosesor dan satu
instruksi yang dieksekusi secara serial. Komputer ini adalah tipe komputer
konvensional. Menurut mereka tipe komputer ini tidak ada dalam praktik komputer
paralel karena bahkan mainframe pun tidak lagi menggunakan satu prosesor.
Klasifikasi ini sekedar untuk melengkapi definisi komputer paralel. Beberapa
contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600,
Cray 1 dan PDP 1.
·
SIMD
Single
Instruction – Multiple Data. Komputer ini memiliki lebih dari satu prosesor,
tetapi hanya mengeksekusi satu instruksi 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. 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. Sampai saat ini belum ada komputer yang menggunakan model MISD.
·
MIMD
Multiple
Instructions – Multiple Data. Komputer ini memiliki lebih dari satu prosesor
dan mengeksekusi lebih dari satu instruksi secara paralel. 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.
Sistem
komputer paralel dibedakan dari cara kerja memorinya menjadi shared memory dan
distributed memory. Shared memory berarti memori tunggal diakses oleh satu atau
lebih prosesor untuk menjalankan instruksi sedangkan distributed memory berarti
setiap prosesor memiliki memori sendiri untuk menjalankan instruksi. Adapun
komponen-komponen utama dari arsitektur komputer paralel cluster PC antara
lain:
1.
Prosesor (CPU). Bagian paling penting dalam sistem,
untuk multicore terdapat lebih dari satu core yang mengakses sebuah memori
(shared memory).
2.
Memori. Bagian ini dapat diperinci lagi menjadi
beberapa bagian penyusunnya seperti RAM, cache memory dan memori eksternal.
3.
Sistem Operasi. Software dasar untuk menjalankan
sistem komputer.
4.
Cluster Middleware. Antarmuka antara hardware dan
software.
5.
Programming Environment dan Software Tools. Software
yang digunakan untuk pemrograman paralel termasuk software pendukungnya.
6.
User Interface. Software yang menjadi perantara
hardware dengan user.
7.
Aplikasi. Software berisi program permasalahan yang
akan diselesaikan.
8.
Jaringan. Penghubung satu PC (prosesor) dengan PC yang
lain sehingga memungkinkan pemanfaatan sumberdaya secara simultan.
Sumber
::
Komentar
Posting Komentar