Komputasi dan Parallel Processing
Komputasi
Komputasi
adalah proses menghitung, membandingkan dan berbagai operasi perhitungan
matematika dan logika yang bertujuan untuk menyelesaikan suatu masalah yang
dikerjakan dengan program komputer yang sudah disusun sesuai dengan Algoritma
yang benar.
Setiap jenis perhitungan atau
penggunaan teknologi komputer dalam pengolahan informasi. Perhitungan adalah
proses setelah yang jelas model yang dipahami dan dinyatakan dalam suatu
algoritma , protokol , topologi jaringan , dll Perhitungan juga merupakan
subyek utama dari ilmu komputer: menyelidiki apa yang dapat atau tidak dapat
dilakukan dengan cara komputasi.
Dalam prakteknya, perhitungan
digital sering digunakan untuk mensimulasikan proses alam (misalnya,
perhitungan Evolusi ), termasuk yang lebih alami dijelaskan oleh model analog
perhitungan (misalnya, jaringan syaraf tiruan ).
Komputasi Parallel
Komputasi
parallel 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. Untuk melakukan aneka jenis
komputasi parallel ini diperlukan infrastruktur mesin parallel yang terdiri
dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara
parallel 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 parallel. Selanjutnya
pemakai harus membuat pemrograman parallel untuk merealisasikan komputasi.
Tidak berarti dengan mesin parallel semua program yang dijalankan diatasnya
otomatis akan diolah secara parallel.
Di dalam
komputasi parallel ada yang dinamakan dengan pemrograman parallel. Pemrograman
parallel 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 merah 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 merah akan lebih sedikit
jika anda kerjakan berdua.
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.
Parallel Processing
Parallel
Processing adalah menggunakan 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
berbeda-beda tanpa berkaitan di antaranya. Dalam komputer, pemrosesan paralel
merupakan pengolahan dari Program instruksi dengan membagi mereka di antara
beberapa prosesor dengan tujuan untuk menjalankan program dalam waktu kurang.
Dalam komputer paling awal, hanya satu program berlari pada suatu waktu. Sebuah
program komputasi-intensif yang memakan waktu satu jam untuk menjalankan dan
menyalin Program tape yang mengambil satu jam untuk menjalankan akan mengambil
total dua jam untuk menjalankan. Bentuk awal dari pemrosesan paralel
memungkinkan eksekusi interleaved kedua program bersama-sama. Komputer akan
memulai operasi I / O, dan sementara itu sedang menunggu operasi untuk
menyelesaikan, itu akan mengeksekusi program prosesor-intensif. Waktu eksekusi
total untuk dua pekerjaan akan menjadi sedikit lebih dari satu jam.
Peningkatan
berikutnya multiprogramming. Dalam sistem multiprogramming, beberapa program
telah dikirim pengguna yang masing-masing diperbolehkan untuk menggunakan
prosesor untuk waktu yang singkat. Untuk pengguna tampak bahwa semua program
yang melaksanakan pada saat yang sama. Masalah pertama muncul pertentangan
sumber daya di sistem ini. Permintaan eksplisit untuk sumber daya menyebabkan
masalah dari kebuntuan.Kompetisi untuk sumber daya pada mesin tanpa
dasi-melanggar instruksi mengarah pada rutin critical section.
Langkah
berikutnya dalam pengolahan paralel adalah pengenalan multiprocessing. Dalam sistem
ini, dua atau lebih prosesor berbagi pekerjaan yang akan dilakukan. Versi awal
memiliki master / slave konfigurasi. Salah satu prosesor (master) diprogram
untuk bertanggung jawab atas semua pekerjaan dalam sistem, yang lain (budak)
dilakukan hanya tugas-tugas itu diberikan oleh master. Pengaturan ini
diperlukan karena tidak kemudian mengerti bagaimana program mesin sehingga
mereka bisa bekerja sama dalam pengelolaan sumber daya sistem.
Hubungan antara komputasi modern dengan paralel processing
Hubungan
antara komputasi modern dan parallel processing sangat berkaitan, karena
penggunaan komputer saat ini atau komputasi dianggap lebih cepat dibandingkan
dengan penyelesaian masalah secara manual. Dengan begitu peningkatan kinerja
atau proses komputasi semakin diterapkan, dan salah satu caranya adalah dengan
meningkatkan kecepatan perangkat keras. Dimana komponen utama dalam perangkat
keras komputer adalah processor. Sedangkan parallel processing adalah
penggunaan beberapa processor (multiprocessor atau arsitektur komputer dengan
banyak processor) agar kinerja computer semakin cepat.
Pengolahan paralel istilah
digunakan untuk mewakili kelas besar teknik yang digunakan untuk memberikan
tugas pengolahan simultan data untuk tujuan meningkatkan kecepatan komputasi
dari sistem komputer. Keuntungan: waktu eksekusi lebih cepat, throughput jadi
lebih tinggi.
Kekurangan: perangkat keras
lainnya yang dibutuhkan, kebutuhan daya juga lebih. Tidak baik untuk daya
rendah dan perangkat mobile. Sehingga dikarenakan adanya keuntungan dan
kemampuan dari parallel processing, maka dianggap parallel processing adalah
salah satu teknik komputasi modern.
Kinerja Komputasi Modern dengan menggunakan Paralel Processing
Kinerja
komputasi dengan menggunakan paralel processing itu menggunakan dan
memanfaatkan beberapa komputer atau CPU untuk menemukan suatu pemecahan masalah
dari masalah yang ada. Sehingga dapat diselesaikan dengan cepat daripada
menggunakan satu komputer saja. Komputasi dengan paralel processing akan
menggabungkan beberapa CPU, dan membagi-bagi tugas untuk masing-masing CPU
tersebut. Jadi, satu masalah terbagi-bagi penyelesaiannya. Tetapi ini untuk
masalah yang besar saja, komputasi yang masalah kecil, lebih murah menggunakan
satu CPU saja.
Komentar :
Menurut saya Komputasi dan Parallel
Processing, Komputasi ialah mengitung operasi hitungan matematika dan logika
yang bertujuan untuk menyelesaikan suatu masalah, komputasi parallel itu melakukan
komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen
secara bersamaan dan parallel processing itu adalah menggunakan lebih dari satu CPU untuk
menjalankan sebuah program , dan membuat program berjalan lebih cepat karena semakin
banyak CPU yang digunakan, dengan membagi- bagi tugas di masing cpu hingga
lebih cepat berjalannya sebuah program.
Komentar
Posting Komentar