HUBUNGAN ANTARA KOMPUTASI DENGAN PARALLEL PROCESSING
Nama : Sri Woro Rengganis
Kelas : 4IA22
Mata Kuliah : Pengantar Komputasi Modern
Dosen : Rina Noviana
PENGERTIAN KOMPUTASI
Komputasi sebetulnya bisa diartikan
sebagai cara untuk menemukan pemecahan masalah dari data input dengan
menggunakan suatu algoritma. Hal ini ialah apa yang disebut dengan teori
komputasi, suatu sub-bidang dari ilmu komputer dan matematika. Selama ribuan
tahun, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan
kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang
dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah
dilakukan dengan menggunakan komputer.
Secara umum iIlmu komputasi adalah
bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan
teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan
memecahkan masalah-masalah ilmu (sains). Dalam penggunaan praktis, biasanya
berupa penerapan simulasi komputer atau berbagai bentuk komputasi lainnya untuk
menyelesaikan masalah-masalah dalam berbagai bidang keilmuan, tetapi dalam
perkembangannya digunakan juga untuk menemukan prinsip-prinsip baru yang
mendasar dalam ilmu.
Bidang ini berbeda dengan ilmu komputer
(computer science), yang mengkaji komputasi, komputer dan pemrosesan informasi.
Bidang ini juga berbeda dengan teori dan percobaan sebagai bentuk tradisional
dari ilmu dan kerja keilmuan. Dalam ilmu alam, pendekatan ilmu komputasi dapat
memberikan berbagai pemahaman baru, melalui penerapan model-model matematika
dalam program komputer berdasarkan landasan teori yang telah berkembang, untuk
menyelesaikan masalah-masalah nyata dalam ilmu tersebut.
PENGERTIAN PARALLEL
PROCESSING
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. Biasanyadiperlukan 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.
Pemrograman paralel adalah teknik
pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara
bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak
(prosesor ganda dengan mesin paralel) CPU. 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.
Komputasi
paralel membutuhkan:
-
algoritma
-
bahasa pemrograman
-
compiler
Sebagian besar komputer hanya mempunyai
satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada komputer
dengan ribuan CPU. Komputer dengan satu CPU dapat melakukan parallel processing
dengan menghubungkannya dengan komputer lain pada jaringan. Namun, parallel
processing ini memerlukan software canggih yang disebut distributed processing
software.
Parallel processing berbeda dengan
multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel
processing disebut juga parallel computing.
Contoh Struktur Pengiriman Permintaan dan Jawaban dari
Parallel Processing
Aristektur
Komputer Parallel
Taksonomi Flynn dan model pemrosesan parallel
Keempat
kelompok komputer tersebut adalah :
1.
Komputer SISD (Single Instruction stream-Single Data stream)
Pada komputer jenis ini semua instruksi
dikerjakan terurut satu demi satu, tetapi juga dimungkinkan adanya overlapping
dalam eksekusi setiap bagian instruksi (pipelining). Pada umumnya komputer SISD
berupa komputer yang terdiri atas satu buah pemroses (single processor). Namun
komputer SISD juga mungkin memiliki lebih dari satu unit fungsional (modul
memori, unit pemroses, dan lain-lain), selama seluruh unit fungsional tersebut
berada dalam kendali sebuah unit pengendali. Skema arsitektur global komputer
SISD dapat dilihat pada gambar .1 (a).
2.
Komputer SIMD (Single Instruction stream-Multiple Data stream)
Pada komputer SIMD terdapat lebih dari
satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang sama.
Seluruh elemen pemrosesan menerima dan menjalankan instruksi yang sama yang
dikirimkan unit pengendali, namun melakukan operasi terhadap himpunan data yang
berbeda yang berasal dari aliran data yang berbeda pula. Skema arsitektur
global komputer SIMD dapat dilihat pada gambar .1 (b).
3.
Komputer MISD (Multiple Instruction stream-Single Data stream)
Komputer jenis ini memiliki n unit
pemroses yang masing-masing menerima dan mengoperasikan instruksi yang berbeda
terhadap aliran data yang sama, dikarenakan setiap unit pemroses memiliki unit
pengendali yang berbeda. Keluaran dari satu pemroses menjadi masukan bagi
pemroses berikutnya. Belum ada perwujudan nyata dari komputer jenis ini kecuali
dalam bentuk prototipe untuk penelitian. Skema arsitektur global komputer MISD
dapat dilihat pada gambar .1 (c).
4.
Komputer MIMD (Multiple Instruction stream-Multiple Data stream)
Pada sistem komputer MIMD murni
terdapat interaksi di antara n pemroses. Hal ini disebabkan seluruh aliran dari
dan ke memori berasal dari space data yang sama bagi semua pemroses. Komputer
MIMD bersifat tightly coupled jika tingkat interaksi antara pemroses tinggi dan
disebut loosely coupled jika tingkat interaksi antara pemroses rendah.
Paralel prosessing komputasi adalah
proses atau pekerjaan komputasi di komputer dengan memakai suatu bahasa
pemrograman yang dijalankan secara paralel pada saat bersamaan. Secara umum
komputasi paralel diperlukan untuk meningkatkan kecepatan komputasi bila
dibandingkan dengan pemakaian komputasi pada komputer tunggal.
MPI
(Message Passing Interface).
MPI adalah sebuah standard pemrograman
yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan
secara paralel. Proses yang dijalankan oleh sebuah aplikasi dapat dibagi untuk
dikirimkan ke masing – masing compute node yang kemudian masing – masing
compute node tersebut mengolah dan mengembalikan hasilnya ke komputer head
node. Untuk merancang aplikasi paralel tentu membutuhkan banyak pertimbangan –
pertimbangan diantaranya adalah latensi dari jaringan dan lama sebuah tugas
dieksekusi oleh prosesor.
MPI ini merupakan standard yang
dikembangkan untuk membuat aplikasi pengirim pesan secara portable. Sebuah
komputasi paralel terdiri dari sejumlah proses, dimana masing-masing bekerja
pada beberapa data lokal. Setiap proses mempunyai variabel lokal, dan tidak ada
mekanisme suatu proses yang bisa mengakses secara langsung memori yang lain.
Pembagian data antar proses dilakukan dengan message passing, yaitu dengan
mengirim dan menerima pesan antar proses.
MPI menyediakan fungsi-fungsi untuk
menukarkan antar pesan. Kegunaan MPI yang lain adalah
1.
menulis kode paralel secara portable,
2.
mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3.
menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis
yang tidak begitu cocok dengan model data paralel.
PVM
(Parallel Virtual Machine)
Adalah paket software yang mendukung
pengiriman pesan untuk komputasi parallel antar komputer. PVM dapat berjalan
diberbagai macam variasi UNIX atau pun windows dan telah portable untuk banyak
arsitektur seperti PC, workstation, multiprocessor dan superkomputer.
Sistem PVM terbagi menjadi dua. Pertama
adalah daemon, pvmd, yang berjalan pada mesin virtual masing-masing komputer.
Mesin virtual akan dibuat, ketika User mengeksekusi aplikasi PVM. PVM dapat
dieksekusi melalui prompt UNIX disemua host. Bagian kedua adalah library
interface rutin yang mempunyai banyak fungsi untuk komunikasi antar task .
Library ini berisikan rutin yang dapat dipanggil untuk pengiriman pesan,
membuat proses baru, koordinasi task dan konfigurasi mesin virtual.
Salah aturan main yang penting dalam
PVM adalah adanya mekanisme program master dan slave/worker. Programmer harus
membuat Kode master yang menjadi koordinator proses dan Kode slave yang
menerima, menjalankan, dan mengembalikan hasil proses ke komputer master. Kode
master dieksekusi paling awal dan kemudian melahirkan proses lain dari kode
master. Masing-masing program ditulis menggunakan C atau Fortran dan
dikompilasi dimasing-masing komputer. Jika arsitektur komputer untuk komputasi
paralel semua sama, (misalnya pentium 4 semua), maka program cukup dikompilasi
pada satu komputer saja. Selanjutnya hasil kompilasi didistribusikan kekomputer
lain yang akan menjadi node komputasi parallel. Program master hanya berada
pada satu node sedangkan program slave berada pada semua node.
Komunikasi dapat berlangsung bila
masing-masing komputer mempunyai hak akses ke filesystem semua komputer. Akses
kefile system dilakukan melalui protokol rsh yang berjalan di unix atau
windows. Berikut adalah langkah pengaturan pada masing-masing komputer :
1.
Buat file hostfile yang berisi daftar node komputer dan nama user yang akan
dipakai untuk komputasi parallel. Bila nama user pada semua komputer sama
misalnya nama user riset pada komputer C1, C2,C3 dan C4, maka hostfile ini
boleh tidak ada. Hostfile ini dapat digunakan bila nama user di masing-masing
komputer berbeda.
2.
Daftarkan IP masing-masing komputer pada file /etc/hosts/hosts.allow dan
/etc/hosts/hosts.equiv.
3.
Penambahan dan penghapusan host secara dinamis dapat dilakukan melalui konsole
PVM. Bila IP tidak didefinisikan pada hostfile¸ cara ini dapat digunakan.
Program PVM terdiri dari master dan
slave, dimana program master dieksekusi paling awal dan kemudian melahirkan
proses lain. PVM memanggil rutin pvm_spawn() untuk melahirkan satu atau dua
proses lebih yang sama. Fungsi-fungsi untuk PVM versi bahasa C mempunyai rutin
awalan pvm. Pengiriman dan penerimaan task diidentifikasi dengan TID (Task
Identifier). TID ini bersifat unik dan digenerate oleh pvmd lokal. PVM berisi
beberapa rutine yang mengembalikan nilai TID sehingga aplikasi user dapat
mengidentifikasi task lain disistem.
Secara umum, langkah implementasi
komputasi parallel sebagai berikut :
1.
Jalankan PVM daemon pada setiap mesin dalam cluster
2.
Jalankan program master pada master daemon
3.
Master daemon akan menjalankan proses slave.
HUBUNGAN ANTARA KOMPUTASI DENGAN PARALLEL 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:
-
SISD (Single Instruction, Single Data)
-
SIMD (Single Instruction, Multiple Data)
-
MISD (Multiple Instruction, Single Data)
-
MIMD (Multiple Instruction, Multiple Data)
Sumber:
0 komentar:
Posting Komentar