Komputasi
Komputasi sebetulnya bisa
diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu
algoritma. Hal ini adalah apa yang disebut dengan teori komputasi, suatu subbidang
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 ilmu 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. 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
pecobaan sebagai bentuk tradisional dari ilmu dan kerja keilmuan. Dalam ilmu
alam, pendekatan ilmu komputasi dapar 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.
Kelahiran Komputasi
Ilmu atau sanins berdasarkan
objek 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 tersebut, 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 objek kajian, seperti penggolongan kimia
atas Kimia Organik, Kimia Anorganik, dan Biokimia.
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).
Selain itu, telah tersedia juga portal ilmiah untuk publik
terkait dengan komputasi sains, yaitu www.komputasi.lipi.go.id. Jurnal di Indonesia yang fokus pada topik komputasi
adalah Journal of Theoretical and Computational Studies (JTCS). Jurnal ini merupakan
kolaborasi dari MKI dan GFTI.
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. Biasanya diperlukan 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 darisatu. 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.
Arsitektur
Komputer Parallel
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.
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.
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.
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.
Hubungan 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 (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 (kimia komputasi), dan lain-lain. Untuk melakukan berbagai
jenis komputasi parallel 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
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 adalah komputer dengan processor tunggal yang dapat mengeksekusi beberapa tugas secara
bersamaan. Sedangkan komputasi paralel menggunakan beberapa processor atau komputer.
Jadi, hubungan dari komputasi dan
parallel processing adalah penggunaan
komputer dengan pemrosesan paralel untuk mempercepat kinerja jika dibandingkan
dengan pemrosesan tunggal. Oleh sebab itu, peningkatan kinerja atau proses
komputasi semakin diterapkan, salah satunya adalah dengan cara meningkatkan
kecepatan perangkat keras. Dimana komponen utama dalam perangkat keras komputer
adalah processor. Sedangkan parallel processing adalah penggunaan
beberapa processor agar kinerja
komputer semakin cepat. Komputasi dengan parallel
processing akan menggabungkan beberapa CPU dan membagi-bagi tugas untuk
masing-masing CPU tersebut.
Pada saat mencari sebuah artikel mengenai komputasi
dan parallel processing, saya
menemukan dua artikel yang bagus kemudian menggabungkannya. Artikel pertama
berjudul “Pengertian Komputasi dan Parallel
Processing Beserta Hubungan antar Keduanya” yang ditulis oleh Rudy
Ariyanto, dan artikel kedua berjudul “Hubungan Komputasi Modern dan Pemrosesan
Paralel” yang ditulis oleh Nia Ita Mora.
Kedua artikel ini sebenarnya hampir mirip tetapi ada
beberapa bagian yang saling berkaitan diantara kedua artikel yang penulis kira
sangat penting diintegrasikan.
Kedua artikel ini juga bisa dikatakan sangat bagus
dalam hal menyampaikan teori. Karena pada kedua artikel ini memenuhi kaidah
5W1H. Selain itu kedua artikel ini memberi penjelasan tentang definisi
komputasi dan parallel processing
yang akan dibahas di artikel. Penjelasan definisinya juga sangat baik karena
sebagai orang awam pasti langsung dapat mengeri apa itu komputasi dan parallel processing.
Mengenai isi dari kedua artikel sudah tentu ada
beberapa bagian yang hampir mirip tetapi ada bagian yang saling berkaitan dan
harus diintegrasikan sehingga pembaca artikel ini lebih mudah mengerti.
Contohnya saja pada artikel kedua tidak dijelaskan arsitektur komputer parallel
tetapi di artikel pertama dijelaskan. Contoh kedua adalah pada artikel pertama
penjelasan tentang hubungan antara komputasi dan parallel processing kurang lugas tetapi pada artikel kedua
penjelsannya lebih lugas.
Walaupun kedua artikel dapat dikatakan bagus, tetapi
tidak bisa dikatakan sempurna. Contoh ketidaksempurnaan artikel pertama adalah
struktur artikel yang sangat berbelit-belit. Sedangkan untuk artikel kedua
adalah tidak adanya gambar sebagai penunjang penjelasan teori, dewasa ini bagi
banyak orang menilai dengan adanya gambar sebagai penunjang penjelasan teori
sangat perlu karena manusia lebih mudah mengerti dengan gambar daripada dengan
tulisan.