“ PENGANTAR
KOMPUTASI MODERN (KOMPUTASI DAN PARALEL PROCESSING) “
a. Artikel
Tentang Komputasi Dan Paralel Processing
1. Komputasi
Komputasi
adalah setiap jenis perhitungan atau penggunaan teknologi komputer dalam
pengolahan informasi. Dalam dunia komputasi, perhitungan diartikan sebagai
sebuah proses setelah yang jelas model yang dipahami dan dinyatakan dalam suatu
algoritma , protokol , topologi jaringan dan lain sebagainya. Perhitungan juga
merupakan subyek utama dari ilmu komputer adalah menyelidiki apa yang dapat atau
tidak dapat dilakukan dengan cara komputasi.
Perhitungan
dapat diklasifikasikan oleh setidaknya tiga kriteria ortogonal:
·
Digital Vs Analog,
·
Sekuensial Vs Paralel Vs Bersamaan,
·
Best Vs Interaktif.
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 ).
2. Parallel Processing
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 multi programming Dalam sistem multi programming, 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 multi processing . 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.
b. Hubungan Antara Komputasi Modern Dengan
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.
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 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.
Terdapat dua hukum yang berlaku dalam
sebuah parallel processing. yaitu:
1) Hukum Amdahl
Amdahl
berpendapat, “Peningkatan kecepatan secara paralel akan menjadi linear,
melipatgandakan kemampuan proses sebuah komputer dan mengurangi separuh dari
waktu proses yang diperlukan untuk menyelesaikan sebuah masalah.”
2) Hukum Gustafson
Pendapat
yang dikemukakan Gustafson hampir sama dengan Amdahl, tetapi dalam pemikiran
Gustafson, sebuah komputasi paralel berjalan dengan menggunakan dua atau lebih
mesin untuk mempercepat penyelesaian masalah dengan memperhatikan faktor
eksternal, seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin yang
digunakan.
Gambar 1.1 Distribusi Parallel Processing
Gambar
diatas merupakan contoh dari sebuah komputasi paralel, dimana pada gambar
diatas terdapat sebuah masalah, dari masalah tersebut dibagi lagi menjadi
beberapa bagian agar sebuah masalah dapat dengan cepat diatasi.
Tujuan Komputasi Paralel
Tujuan
dari komputasi paralel adalah meningkatkan kinerja komputer dalam menyelesaikan
berbagai masalah. Dengan membagi sebuah masalah besar ke dalam beberapa masalah
kecil, membuat kinerja menjadi cepat. Formula komputasi paralel yang diajukan
pada hukum Amdahl
Dimana
a adalah banyaknya paralel yang terjadi. Secara teori, artinya proses
penyelesaian masalah menjadi lebih cepat dengan menggunakan komputasi
paralel.
Berikut ini adalah perbedaan antara
komputasi tunggal dengan parallel komputasi :
1. Message Passing Interface (MPI).
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.
2. PVM (Parallel Virtual Machine)
PVM 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.
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.
“
Komentar Pribadi Mengenai Artikel Diatas “
Komputasi
bisa diartikan sebagai 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. Sedangkan parallel processing bisa diartikan sebagai cara agar lebih
dari satu komputer dapat bekerja secara bersamaan. Komputasi saat ini sangat
berguna terutama dibidang IT, dengan adanya parallel processing, tentu dapat
mempermudah proses komputasi yang dilakukan oleh sekumpulan komputer. Sehingga,
proses dapat dilakukan dengan cepat (tidak memakan waktu yang lama) dan hasil
yang diinginkan dari proses komputasi dapat diterima oleh user.
Kelebihan
pada artikel daiatas adalah terdapat penjelasan mengenai komputasi, parallel processing
serta hubungan antara keduanya. Sehingga, dari segi pengertian dapat lebih
mudah dipahami dan terdapat penjelasan mengenai komputasi parallel processing
dengan cukup lengkap. Mulai dari hukum yang berlaku, tujuan, hingga model
komputasi.
Terdapat
kekurangan yaitu tidak dijelaskan secara lengkap mengenai parallel processing
sehingga perbedaan spesifik antara komputasi biasa dan komputasi parallel
processing tidak terlihat dengan jelas dan penjelasan hanya pada komputasi
parallel processing sedangkan komputasi sendiri tidak dibahas. Sehingga,
perbedaan antara keduanya agak sulit dimengerti. Selain itu, terdapat sedikit
kekurangan pada hukum yang berlaku. Dimana seharusnya ada beberapa rumus yang
berkaitan dengan masing-masing hukum, sehingga cara penggunaan hukum yang
berlaku seharusnya dapat lebih mudah dimengerti.
No comments:
Post a Comment