Komputasi Paralel
Komputasi
paralel adalah suatu bentuk komputasi dimana instruksi-instruksi dijalankan
secara berkesinambungan. Masalah yang besar dapat dibagi menjadi beberapa
masalah yang lebih kecil(submasalah), untuk kemudian diselesaikan secara
serempak. Komputasi paralel telah digunakan untuk melakukan komputasi yang
mensyaratkan unjuk kerja yang tinggi(high-performance computing). Teknik
komputasi ini semakin berkembang dewasa ini, hal ini disebabkan oleh batasan
fisik di dalam penskalaan frekuensi(frequency scaling1). Komputasi paralel
telah menjadi paradigma yang mendominan di dalam arsitektur komputer, yaitu
misalnya prosesor multicore.
Program
komputer paralel lebih susah untuk dibangun dibandingkan dengan program
komputer serial, hal ini disebabkan keserempakan menimbulkan masalah yang
potensial di dalam membagi pekerjaan menjadi subpekerjaan dan menggabungkan
kembali subpekerjaan tersebut menjadi hasil oleh perangkat lunak, diantaranya
kondisi berebut(race condition). Komunikasi dan sinkronisasi diantara unit pemroses(processing
unit) menjadi satu diantara tantangan terbesar untuk menghasilkan program
paralel dengan performa yang baik.
Sejarah Singkat
Pada
tahun 1958, Peneliti IBM, John Cocke dan Daniel Slotnick membahas tentang
pemanfaatan paralelisme di dalam komputasi numerik untuk pertama kalinya.
Burroughs Corporation memperkenalkan D825 pada tahun 1962, sebuah komputer
dengan empat buah prosesor yang mengakses 16 modul memori dengan bantuan saklar
bar-silang(crossbar switch).
Latar Belakang
Komputasi
paralel memanfaatkan beberapa elemen pemroses secara berkesinambungan untuk
menyelesaikan permasalahan, dengan cara memecah masalah menjadi bagian-bagian
independen, kemudian masing-masing bagian tersebut diselesaikan oleh
masing-masing elemen pemroses sesuai dengan algoritma secara serempak. Elemen
pemroses dapat terdiri dari unit pemroses yang heterogen, dan dapat pula
terdiri dari unit pemroses yang homogen. Elemen pemroses dapat berupa komputer
tunggal dengan banyak prosesor, beberapa komputer yang terhubung dalam suatu
jaringan, perangkat keras yang dikhususkan untuk melakukan komputasi paralel,
ataupun kombinasi dari perangkat-perangkat yang telah disebutkan.
Penskalaan
frekuensi menjadi alasan utama dalam peningkatan performa komputer sejak
pertengahan 1980an sampai dengan 2004. Waktu eksekusi(runtime) dari sebuah
program adalah banyaknya instruksi dikali dengan waktu rata-rata sebuah
instruksi. Dengan menganggap faktor lain adalah konstan, meningkatkan detak
frekuensi(clock frequency) akan menurunkan waktu rata-rata yang diperlukan
untuk menjalankan sebuah instruksi, yang kemudian akan mengurangi waktu
eksekusi.
Konsumsi
daya sebuah chip dirumuskan dengan persamaan:
P = C x V2 x F
Dimana
P adalah daya, C adalah kapasitansi, V adalah tegangan, dan F adalah frekuensi
prosesor. Apabila frekuensi ditingkatkan, maka akan terjadi peningkatan daya
yang dikonsumsi oleh sebuah prosesor.
Hukum Amdahl
secara
teoritis, peningkatan kecepatan akibat paralelisasi adalah linear, yaitu
apabila elemen pemroses digandakan, maka waktu ekseskusi akan menjadi
setengahnya. Tetapi, sangat sedikit algoritma paralel yang dapat mencapai peningkatan
kecepatan yang optimal.
Menurut
Hukum Amdahl, bagian kecil dari sebuah program yang tidak dapat lagi
diparalelkan, akan membatasi peningkatan kecepatan yang dapat dicapai dari
paralelisasi secara keseluruhan. Semua masalah mengandung bagian yang dapat
diparalelkan dan bagian yang tidak dapat diparalelkan juga. Hubungan antara
kedua bagian ini dinyatakan dalam:
S = 1 / (1-P)
Dimana S adalah
besarnya peningkatan kecepatan dari sebuah program, P adalah besarnya bagian
yang dapat diparalelkan.
Tidak semua hasil dari
paralelisasi dapat meningkatkan kecepatan. Secara umum, ketika sebuah pekerjaan
dibagi menjadi lebih banyak subpekerjaan, subpekerjaan tersebut menghabiskan
waktu lebih banyak, yaitu untuk berkomunikasi diantara subpekerjaan. Hal ini
tidak akan membuat waktu eksekusi menjadi lebih singkat, melainkan sebaliknya,
hal inilah yang disebut sebagai perlambatan paralel(parallel slowdown).
Taksonomi Flynn
Michael J. Flynn
menciptakan satu diantara sistem klasifikasi untuk komputer dan program
paralel, yang dikenal dengan sebutan Taksonomi Flynn. Flynn mengelompokkan
komputer dan program berdasarkan banyaknya set instruksi yang dieksekusi dan
banyaknya set data yang digunakan oleh instruksi tersebut.
Jenis-Jenis Komputer Paralel
Berdasarkan tingkatan
perangkat keras yang mendukung paralelisme, secara umum komputer-komputer
paralel dapat diklasifikasikan:
1.
Multicore processing
Merupakan prosesor yang memiliki beberapa unit
pengeksekusi. Sebuah prosesor multicore dapat melakukan beberapa instruksi per
siklus dari beberapa aliran instruksi.
2.
Symmetric
multiprocessing
Merupakan sebuah sistem komputer dengan
beberapa prosesor yang identik, dapat menggunakan struktur berbagi memori atau
memori tersendiri yang saling terhubung melalui bus.
3.
Distributed computing
Merupakan sebuah sistem komputer dengan memori
terdistribusi, dimana masing-masing elemen pemrosesan dihubungkan oleh jaringan.
4.
Cluster computing
Merupakan sekumpulan komputer yang bekerja
sama,dihubungkan oleh jaringan, sehingga dapat dipandang sebagai sebuah
kesatuan, cluster komputer ini dikoordinasi oleh sebuah komputer induk yang
bertugas untuk mendistribusikan pekerjaan kepada masing-masing komputer
lainnya.
5.
Massive parallel
processing
Merupakan sebuah komputer tunggal dengan
banyak prosesor yang terhubung dalam sebuah jaringan. Di dalam MPP, tiap CPU
mempunyai memory tersendiri, sistem operasi dan aplikasi yang sama. Tiap
subsistem berkomunikasi satu dengan yang lainnya melalui interkoneksi
berkecepatan tinggi.
6.
Grid computing
Merupakan bentuk pemrosesan paralel yang
paling terdistribusi. Grid computing memanfaatkan Internet sebagai saluran
komunikasi antar komputer untuk menyelesaikan suatu permasalahan.
7.
Specialized parallel
computer
Komputer paralel yang dikhususkan untuk menyelesaikan
tugas khusus.
Model komputasi Paralel
1.
Embarasingly Parallel adalah pemrograman
paralel yang digunakan pada masalah-masalah yang bisa diparalelkan tanpa
membutuhkan komunikasi satu sama lain. Sebenarnya pemrograman ini bisa dibilang
sebagai pemrograman paralel yang ideal, karena tanpa biaya komunikasi, lebih
banyak peningkatan kecepatan yang bisa dicapai.
2.
Taksonomi dari model
pemrosesan paralel dibuat berdasarkan alur instruksi dan alur data yang
digunakan:
·
SISD (Single
Instruction Single Datapath) merupakan prosesor tunggal, yang bukan paralel.
·
SIMD (Single
Instruction Multiple Datapath)alur instruksi yang sama dijalankan terhadap
banyak alur data yang berbeda. Alur instruksi di sini kalau tidak salah
maksudnya ya program komputer itu. trus datapath itu paling ya inputnya, jadi
inputnya lain-lain tapi program yang digunakan sama.
·
MIMD (Multiple
Instruction Multiple Datapath)alur instruksinya banyak, alur datanya juga
banyak, tapi masing-masing bisa berinteraksi.
·
MISD (Multiple
Instruction Single Datapath)alur instruksinya banyak tapi beroperasi pada data
yang sama.
Paralel Processing
adalah kemampuan menjalankan tugas atau aplikasi lebih dari satu aplikasi dan
dijalankan secara simultan atau bersamaan pada sebuah komputer. Secara umum,
ini adalah sebuah teknik dimana sebuah masalah dibagi dalam beberapa masalah
kecil untuk mempercepat proses penyelesaian masalah.
Terdapat dua hukum
yang berlaku dalam sebuah parallel processing. yaitu:
1.
Hukum Amdahl
Amdahl berpendapat, “Peningkatan kecepatan
secara parallel akan menjadi linear, melipat gandakan kemampuan proses sebuah computer
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.
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.
Tujuan Parallel Processing
Tujuan utama dari
pemrosesan 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
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
sendiri adalah teknik pemrograman komputer yang memungkinkan eksekusi
perintah/operasi secara bersamaan. Bila komputer yang digunakan secara
bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung
dalam satu jaringan komputer, biasanya disebut sistem terdistribusi. Bahasa
pemrograman yang populer digunakan dalam pemrograman paralel adalah MPI
(Message Passing Interface) dan PVM (Parallel Virtual Machine).
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.
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.
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.







No comments:
Post a Comment