Komputer Paralel vs. Superkomputer
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 scaling[1]).
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
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.
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.
Kesimpulan
Superkomputer
melakukan komputasi paralel, dengan kata lain superkomputer adalah sama dengan
komputer paralel, yaitu sama-sama melakukan komputasi paralel.
Referensi
[1] Frequency Scaling: usaha
untuk meningkatkan untuk kerja komputer, semakin tinggi frekuensi kerja
komputer, semakin tinggi kecepatan pemrosesan.



Tidak ada komentar:
Posting Komentar