Paralel Processing
Saat ini penggunaan komputer untuk menyelesaikan masalah
sudah merasuk ke segala bidang. Hal ini karena komputasi dianggap lebih cepat
dibandingkan dengan penyelesaian masalah secara manual. Seiring dengan hal
tersebut, semakin dituntut proses komputasi yang semakin cepat. Untuk
meningkatkan kecepatan proses komputasi, dapat ditempuh dua cara :
1. peningkatan
kecepatan perangkat keras,
2. peningkatan kecepatan perangkat lunak.
Komponen utama perangkat keras komputer adalah processor.
Saat ini, peningkatan kecepatan processor benar-benar luar biasa.
Sebenarnya ada banyak cara komputasi
yang bisa kita gunakan dalam parallel processing, salah satunya komputasi
parallel.
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 paralel adalah salah satu teknik melakukan
komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara
bersamaan.
Intinya Adalah :
“Komputasi paralel merupakan 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)
dl”
Adapun yang membantu pemrosesan komputasi parallel untuk
bekerja lebih cepat adalah sebagai berikut :
Parallel Virtual Machine (PVM)
PVM adalah
suatu perangkat lunak yang mampu mensimulasikan pemrosesan paralel pada
jaringan komputer. Saat ini ada dua bahasa pemrograman yang didukung oleh PVM,
yaitu FORTRAN dan C. Versi PVM yang paling umum digunakan berbasis UNIX,
meskipun ada juga PVM berbasis Windows. Cara kerja PVM adalah dengan membuat
(spawning) proses-proses anak yang akan dikirim ke processor-processor yang
tersebar di jaringan komputer. Dengan PVM bisa ditentukan berapa jumlah
processor yang akan dilibatkan dalam proses komputasi.
Network File System (NFS)
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 berdiri sendiri baik dari segi mesin, jenis sistem operasi
maupun jenis protokol transport yang digunakan. NFS memperbolehkan user yang
telah diijinkan untuk mengakses file-file yang berada di remote host seperti
mengakses file yang berada di lokal. Kegunaan dari NFS pada komputasi parallel
adalah untuk melakukan sharing data sehingga setiap node slave dapat mengakses
program yang sama pada node master
Pemrograman Paralel
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 computer 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.
Peningkatan Kecepatan
Peningkatan kecepatan dapat diformulasikan dalam persamaan
berikut ini
Dimana T1 adalah waktu yang dibutuhkan untuk
menyelesaikan pekerjaan (program komputer) bila dijalankan dalam satu komputer.
Dan Tj adalah waktu yang dibutuhkan jika pekerjaan dikerjakan bersamaan oleh
beberapa komputer.
Ada limitasi
dalam usaha membuat suatu program komputer berjalan lebih efisien melalui
peningkatan kecepatan, hukum yang menetapkan batasan ini dikenal sebagai Hukum
Amdahl. Ide dari hukum amdahl ini adalah bahwa anda hanya akan bisa
meningkatkan efisiensi program komputer anda, sebatas pada bagian tertentu dari
program tersebut yang dapat di paralelkan. Sementara bagian yang memang harus
dilaksanakan secara berurutan, akan menjadi penentu performa akhir.
Kembali ke analogi memasak tadi, bila anda
harus menggunakan sarung tangan sebelum menyalakan kompor ataupun memotong
bawang, maka waktu yang anda butuhkan untuk memakai sarung tangan ini adalah
waktu serial, yang tidak dapat dihindari. Sementara waktu untuk memasak dan
memotong bawang tadi adalah bagian yang bisa diparalelkan.
Perkembangan di Indonesia
Di Indonesia,
usaha untuk membangun infrastruktur mesin paralel sudah dimulai sejak era
90-an, meski belum pada tahap serius dan permanen. Namun untuk pemrograman
paralel sudah sejak awal menjadi satu mata-kuliah wajib di banyak perguruan
tinggi terkait. Baru pada tahun 2005 dimulai pembuatan infrastruktur mesin
paralel permanen, misalnya yang dikembangkan oleh Grup Fisika Teoritik dan
Komputasi di P2 Fisika LIPI. Didorong oleh perkembangan pemrograman paralel
yang lambat, terutama terkait dengan sumber daya manusia (SDM) yang
menguasainya, mesin paralel LIPI ini kemudian dibuka untuk publik secara
cuma-cuma dalam bentuk LIPI Public Cluster (LPC)[3]. Saat ini LPC telah
dikembangkan lebih jauh menjadi gerbang komputasi GRID di Indonesia dengan
kerjasama global menjadi IndoGRID.
Pada tahun
berikutnya, dengan dukungan dana dari proyek Inherent Dikti, Fasilkom UI juga
membangun mesin paralel[4]. Sementara itu pada tahun 2009, ITB membuat kluster
hibrid CPU dan GPU yang pertama di Indonesia dengan kemampuan hingga 60 inti
CPU dan 1920 inti GPU.
Hubungan antara komputasi modern dengan paralel processing
Komputasi Paralel merupakan teknik untuk melakukan komputasi
secara bersamaan dengan memanfaatkan beberapa komputer yang independen secara
bersamaan. Biasanya digunakan untuk kapasitas yang pengolahan data yang sangat
besar (lingkungan industri, bioinformatika dll) atau karena tuntutan komputasi yang
banyak. Pada kasus yang kedua biasanya ditemukannya kalkulasi numerik untuk
menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia
(kimai komputasi) dll. Untuk melakukan berbagai jenis komputasi paralel
diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang
nantinya dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk
menyelesaikan suatu masalah. Untuk itu maka digunakannya perangkat lunak
pendukung yang biasa disebut middleware yang berperan untuk mengatur distribusi
antar titik dalam satu mesin paralel. Selanjutnya pemakai harus membuat
pemrograman paralel untuk merealisasikan komputasi. Salah satu middleware yang
asli dikembangkan di Indonesia adalah OpenPC yang dipelopori oleh GFTK LIPI dan
diimplementasikan di LIPI Public Center.
Komputasi paralel berbeda dengan multitasking. Multitasking
itu sendiri adalah komputer dengan processor tunggal yang dapat mengeksekusi
beberapa tugas secara bersamaan. Sedangkan 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 4 model komputasi
yang digunakan, yaitu:
SIMD
SIMD
MISD
MIMD
SISD
Merupakan singkatan dari Single Instruction, Single Data
yaitu satu-satunya yang menggunakan arsitektur Von Neumann, karena pada model
ini hanya menggunakan 1 processor saja. Oleh karena itu model ini 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
Merupakan singkatan dari Single Instruction, Multiple Data.
Model ini menggunakan banyak processor dengan instruksi yang sama, namun dengan
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
Merupakan singkatan dari Multiple Instruction, Single Data.
MISD menggunakan banyak processor dengan instruksi yang berbeda namun mengolah
data yang sama. Hal ini merupakan kebalikan dari model SIMD. Sebagai contoh,
dengan menggunakan kasus yang sama pada contoh model SIMD namun cara untuk
menyelesaikannya 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
Pada Multiple Instruction, Multiple Data biasanya
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.
0 komentar:
Posting Komentar