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.
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).
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.
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.
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.
Kesimpulan:
Artikel
diatas sudah menjelaskan secara singkat tentang pengertian dari parallel processing.
Pemrosesan paralel (parallel processing) adalah
penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara
simultan. Didalam artikel diatas juga diberikan gambaran sedikit tentang
perkembangan palalel processing di Indonesia. Tapi dalam artikel diatas, kurang
diberitahu kelebihan dan kelemahan dari hubungan antara parallel processing
dengan komputasi modern.
sumber: http://elokputri.blogspot.com/2012/03/hubungan-antara-komputasi-modern-dengan.html
http://rockawood.blogspot.com/2012/04/parallel-processing.html
sumber: http://elokputri.blogspot.com/2012/03/hubungan-antara-komputasi-modern-dengan.html
http://rockawood.blogspot.com/2012/04/parallel-processing.html
Tidak ada komentar:
Posting Komentar