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.
Sejarah
Ilmu atau sains berdasarkan obyek kajiannya dibedakan
antara Fisika, Kimia, Biologi dan Geologi. Ilmu dapat pula digolongkan
berdasarkan metodologi dominan yang digunakannya, yaitu ilmu
pengamatan/percobaan (observational/experimental science), ilmu teori
(theoretical science) dan ilmu komputasi (computational science). Yang terakhir
ini bisa dianggap bentuk yang paling baru yang muncul bersamaan dengan
perkembangan kekuatan pemrosesan dalam komputer dan perkembangan teknik-teknik
metode numerik dan metode komputasi lainnya.
Dalam ilmu (sains) tradisional seperti Fisika, Kimia dan
Biologi, penggolongan ilmu berdasarkan metodologi dominannya juga mewujud, yang
ditunjukkan dengan munculnya bidang-bidang khusus berdasarkan penggolongan tsb.
lengkap dengan jurnal-jurnal yang relevan untuk melaporkan hasil-hasil
penelitiannya. Sebagai contoh dalam kimia, melengkapi kimia percobaan
(experimental chemistry) dan kimia teori (theoretical chemistry), berkembang
pula kimia komputasi (computational chemistry), seperti juga di bidang Biologi
dikenal Biologi Teori (theoretical biology) serta Biologi Komputasi
(computational biology), lengkap dengan jurnalnya seperti Journal of
Computational Chemistry dan Journal of Computational Biology. Cara penggolongan
yang digunakan berbeda dengan cara penggolongan lain berdasarkan obyek kajian,
seperti penggolongan kimia atas Kimia Organik, Kimia Anorganik, dan Biokimia.
Walaupun dengan titik pandang yang berbeda, ilmu
komputasi sebagai bentuk ketiga dari ilmu (sains) telah banyak disampaikan oleh
berbagai pihak, antara lain Stephen Wolfram dengan bukunya yang terkenal: A New
Kind of Science, dan Jürgen Schmidhuber.
Komputasi
Sains
Komputasi sains merupakan salah satu cabang ilmu
komputasi. Secara umum komputasi sains mengkaji aspek-aspek komputasi untuk
aplikasi / memecahkan masalah di bidang sains lain, seperti fisika, kimia,
biologi dan lain-lain.
Di Indonesia sudah banyak pertemuan atau kegiatan ilmiah
terkait dengan komputasi, tetapi umumnya lebih terkait dengan aspek teknologi
informasi. Sedangkan kajian di komputasi sains masih sangat kurang. Hal ini
tidak mengherankan karena komputasi sains lebih condong sebagai kajian teori murni,
sehingga komunitasnya masih sangat terbatas seperti halnya fisika teori. Hanya
ada satu kegiatan ilmiah yang terkait langsung dan fokus pada kajian komputasi
sains, yaitu Workshop on Computational Science yang diadakan rutin setiap tahun
oleh konsorsium yang tergabung dalam Masyarakat Komputasi Indonesia – MKI[1].
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
Sebagai 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
- 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.
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: