Selasa, 30 April 2013

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). 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:

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.

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



Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Free Web Hosting | Top Hosting | Great HTML Templates from easytemplates.com.