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.
Instruksi Tunggal
(single instruction)
|
Instruksi Majemuk
(multiple instruction)
|
|
Data Tunggal
(single data)
|
SISD
(Single Instruction Single Data)
|
MISD
(Multiple Instruction Single
Data)
|
Data Majemuk
(multiple data)
|
SIMD
(Single Instruction Multiple
Data)
|
MIMD
(Multiple Instruction Multiple
Data)
|
Jenis-Jenis
Komputer Paralel
Berdasarkan
tingkatan perangkat keras yang mendukung paralelisme, secara umum
komputer-komputer paralel dapat diklasifikasikan:
Multicore processing
Merupakan
prosesor yang memiliki beberapa unit pengeksekusi. Sebuah prosesor multicore
dapat melakukan beberapa instruksi per siklus dari beberapa aliran instruksi.
Symmetric multiprocessing
Merupakan
sebuah sistem komputer dengan beberapa prosesor yang identik, dapat menggunakan
struktur berbagi memori atau memori tersendiri yang saling terhubung melalui
bus.
Distributed computing
Merupakan
sebuah sistem komputer dengan memori terdistribusi, dimana masing-masing elemen
pemrosesan dihubungkan oleh jaringan.
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.
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.
Grid computing
Merupakan
bentuk pemrosesan paralel yang paling terdistribusi. Grid computing
memanfaatkan Internet sebagai saluran komunikasi antar komputer untuk
menyelesaikan suatu permasalahan.
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:
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.”
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.
Pengertian Komputasi dengan
Parallel Processing Lengkap
|
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.
Salah
satu jenis penggunaan komputasi paralel adalah:
PVM(Parallel
Virtual Machine)
Merupakan
sebuah perangkat lunak yang mampu mensimulasikan pemrosesan paralel pada
jaringan.
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.
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.
Tidak ada komentar:
Posting Komentar