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 scaling). 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).
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:
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:
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.
Superkomputer
Superkomputer
merupakan komputer terdepan dalam hal kapasitas pemrosesan, yaitu kecepatan
penghitungan.
Superkomputer
yang memanfaatkan beberapa CPU, secara umum akan memperoleh kecepatan melebihi
komputer konvensional dengan cara memanfaatkan rancangan inovatif yang
memungkinkan CPU tersebut untuk melakukan tugas-tugas secara paralel,
dikhususkan untuk melakukan komputasi tertentu(biasanya kalkulasi numerik) dan
melakukan tugas komputasi umum dengan kurang baik. Hirarki memori superkomputer
dirancang dengan sangat berhati-hati untuk menjamin bahwa prosesor tetap
memperoleh data dan instruksi setiap waktu.
Hukum Amdahl
juga berlaku pada superkomputer, perancangan superkomputer yang paling menyita
adalah usaha untuk menghilangkan serialisasi dari perangkat lunak dan
pemanfaatan perangkat keras.
Tantangan Superkomputer
·
Superkomputer menghasilkan panas yang berlebihan
dan harus didinginkan dengan segera.
·
Superkomputer harus mempunyai waktu
latensi(waktu yang diperlukan untuk perambatan sinyal) antar komponen yang
sangat singkat.
·
Superkomputer memerlukan dan menghasilkan data
dalam jumlah yang sangat besar dalam rentang waktu yang sangat singkat,
sehingga diperlukan bandwidth media penyimpanan luar(external storage) yang cukup untuk menjamin bahwa informasi dapat
ditransfer dengan cepat dan dapat disimpan ataupun diperoleh kembali dengan
akurat.
Arsitektur
paralel superkomputer mengharuskan pemanfaatan teknik pemrograman yang spesial
untuk mencapai kecepatan yang optimal.
Arsitektur
Superkomputer Modern
Superkomputer
yang dikembangkan oleh CDC merupakan prosesor skalar yang lebih cepat sepuluh
kali dibandingkan mesin tercepat yang ditawarkan oleh perusahaan lainnya. Pada
tahun 1970an, superkomputer dikhususkan untuk bekerja pada prosesor vektor.
Pada permulaan dan pertengahan tahun 1980an, mesin yang terdiri dari beberapa
prosesor vektor yang bekerja secara paralel menjadi sesuatu yang standard. Pada
umumnya prosesor yang dilibatkan berjumlah antara empat sampai enam belas. Pada
akhir tahun 1980an dan tahun 1990an, peralihan dari prosesor vektor ke MPP(massive parallel processing) yang
terdiri dari ribuan CPU. Superkomputer dewasa ini merupakan komputer cluster
yang telah disesuaikan sekaligus memanfaatkan kelebihan prosesor dan
mengkombinasikan dengan interkoneksi.
Superkomputer
digunakan untuk melakukan tugas penghitungan yang sangat intensif, misalnya
masalah yang melibatkan fisika mekanika kuantum, peramalan cuaca, penelitian
terhadap iklim, pemodelan molekuler(melakukan komputasi terhadap struktur dan
sifat dari campuran kimia, makromolekul biologikal, polymer, kristal), simulasi
fisik(misalnya simulasi pesawat terbang, simulasi menjinakkan senjata nuklir,
penelitian terhadap fusi nuklir), kriptanalisis, dan lain sebagainya.
Rancangan Perangkat
Keras dan Perangkat Lunak
Tertanggal
31 November 2006, sepuluh superkomputer teratas tercatat mempunyai arsitektur
level atas yang sama, yaitu merupakan cluster multiprosesor MIMD, dimana
tiap-tiap prosesor merupakan SIMD. Kemampuan superkomputer berbeda-beda
tergantung pada banyaknya multiprosesor per cluster, banyaknya prosesor per
multiprosesor, dan banyaknya instruksi yang berkelanjutan per prosesor SIMD,
diperoleh:
·
Sebuah komputer cluster adalah sekumpulan
komputer yang terhubung kuat melalui sebuah jaringan berkecepatan tinggi.
Cluster terdiri dari komputer-komputer yang heterogen.
·
Komputer multiprosesor merupakan sebuah
komputer, beroperasi di bawah sebuah sistem operasi dan memanfaatkan lebih dari
satu CPU.
·
Prosesor SIMD mengekseskusi instruksi yang sama
terhadap lebih dari satu set data pada waktu yang bersamaan.
Sumber :
http://journal.uii.ac.id/index.php/Snati/article/viewFile/1607/1382
https://computing.llnl.gov/tutorials/parallel_comp/
http://arnol-cyber.blogspot.com/2011/03/kinerja-komputasi-dengan-paralel.html