Selasa, 18 April 2017

PARALEL COMPUTER ARCHITECTURE

PENGANTAR KOMPUTASI MODERN
TUGAS 2

Nama Kelompok:
Noviar Trivilla (56413549)
Mochammad Wildan Willy (55413551)
Rio Andhika Putra (57413753)
4IA12

ABSTRAK
Design struktur kerja sejumlah prosesor mengelompokkan jenis-jenis komputer terdiri atas dua jenis arsitektur: sekuensial dan paralel. Selanjutnya, kompleksitas dari arsitektur-arsitektur komputer tersebut ditentukan oleh perhitungan lama eksekusi, banyak prosesor dan komunikasi yang diperlukan selama eksekusi program. Pada tulisan ini, kita tunjukkan beberapa type arsitektur komputer paralel beserta perbandingan ukuran kompleksitasnya terhadap mesin sekuensial. Yang akan dibahas dengan sederhana.

PENDAHULUAN
Pada saat ini kebutuhan akan komputer yang dapat melakukan pemrosesan perhitungan secara cepat sangat dibutuhkan. Sebagai contoh dalam operasi kedokteran dengan bantuan scanner (penyinaran), penyajian grafik rekonstruksi ruang dengan komputer baik dari data langsung yang didapat dari pemotongan melintang suatu organ tubuh maupun dari data pemutaran koordinat pada berbagai sudut pandang, minimal memerlukan kecepatan proses operasi hitung sebesar 1015 kali per detik.

Dari contoh di atas mengungkapkan bahwa kita perlu merancang komputer cepat tipe paralel guna memproses data dalam ukuran besar dan dalam waktu singkat untuk berbagai bidang aplikasi, antara lain: kedokteran, klimatologi, penerbangan, eksplorasi, hankam, astronomi dan lain sebagainya. Hal ini disebabkan komputer sekuensial dipandang sangat terbatas kemampuannya untuk menyelesaikan kasus-kasus seperti contoh tersebut.

Dalam penyajian ini, kita membahas berbagai ragam arsitektur paralel dan ukuran kompleksitasnya antara komputer tipe sekuensial dan paralel. Tujuan membahas arsitektur adalah untuk mengetahui nilai efisiensi kerja prosesor pada berbagai model dari perancangan (arsitektur) komputer.

PEMBAHASAN
1. Komputer Paralel
Teknologi komputasi paralel sudah berkembang lebih dari dua dekade, penggunaannya semakin beragam mulai dari kebutuhan perhitungan di laboratorium fisika nuklir, simulasi pesawat luar angkasa, hingga prakiraan cuaca. Komputasi paralel didefinisikan sebagai penggunaan sekumpulan sumberdaya komputer secara simultan untuk menyelesaikan permasalahan komputasi. Secara prinsip komputer paralel membagi permasalahan sehingga menjadi lebih kecil untuk dikerjakan oleh setiap prosesor (CPU) dalam waktu yang bersamaan/simultan (concurrent). Prinsip ini disebut paralelisme. [3]

Paralelisme dalam komputasi paralel merupakan hal yang diciptakan dan dimanfaatkan. Sebenarnya prinsip paralelisme juga sudah diterapkan dalam komputer serial misal dengan pipelining dan superscalar-nya namun demikian tidak memberikan solusi terbaik dalam hal meningkatkan performansi dikarenakan terbatasnya kemampuan untuk menambah kecepatan prosesor dan fenomena memory bottleneck. Terdapat beberapa tingkat paralelisme dalam komputasi
khususnya pada prosesor, di antaranya :[1]
  1. Paralelisme bit-level. Contoh : prosesor 32 bit dan prosesor 64 bit.
  2. Paralelisme instruction set-level. Contoh : CISC dan RISC.
  3. Paralelisme thread-level. Contoh : Intel hyperthreading.

Paralelisme lain yang juga berkembang dalam komputasi paralel adalah paralelisme data dan paralelisme fungsi (task). Perkembangan teknologi prosesor memberikan pengaruh yang besar pada komputasi paralel. Mulai dari prosesor singlecore superscalar, chip multiprocessor, prosesor multicore, hingga prosesor cell memberikan kontribusi terhadap peningkatan performansi komputer paralel. Supercomputer seperti Roadrunner misalnya menggunakan teknologi multiprosesor, prosesor cell, atau gabungan dari keduanya (hybrid system). Jumlah prosesor yang dipakai HPC juga semakin tidak terbatas sehingga arsitekturnya disebut Massively Parallel Processing (MPP). Namun demikian penggunaan cluster PC menjadi tren dalam komputasi paralel karena faktor biaya dan skalabilitas.

2. Arsitektur Komputer Paralel
Berdasarkan jumlah dan prinsip kerja prosesor pada komputer paralel, A.J. Van der Steen dan J. Donggara menyebutkan terdapat empat arsitektur utama komputer paralel menurut Flynn (1972) yaitu :[3] 
Keempat kelompok komputer tersebut adalah :
1) Komputer SISD (Single Instruction stream-Single Data stream)
Pada komputer jenis ini semua instruksi dikerjakan terurut satu demi satu, tetapi juga dimungkinkan adanya overlapping dalam eksekusi setiap bagian instruksi (pipelining). Pada umumnya komputer SISD berupa komputer yang terdiri atas satu buah pemroses (single processor). Namun komputer SISD juga mungkin memiliki lebih dari satu unit fungsional (modul memori, unit pemroses, dan lain-lain), selama seluruh unit fungsional tersebut berada dalam kendali sebuah unit pengendali. Skema arsitektur global komputer SISD.
Skema SISD [1]

2) Komputer SIMD (Single Instruction stream-Multiple Data stream)
Pada komputer SIMD terdapat lebih dari satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang sama. Seluruh elemen pemrosesan menerima dan menjalankan instruksi yang sama yang dikirimkan unit pengendali, namun melakukan operasi terhadap himpunan data yang berbeda yang berasal dari aliran data yang berbeda pula.
Skema SIMD [1]

3) Komputer MISD (Multiple Instruction stream-Single Data stream)
Komputer jenis ini memiliki n unit pemroses yang masingmasing menerima dan mengoperasikan instruksi yang berbeda terhadap aliran data yang sama, dikarenakan setiap unit pemroses memiliki unit pengendali yang berbeda. Keluaran dari satu pemroses menjadi masukan bagi pemroses berikutnya. Belum ada perwujudan nyata dari komputer jenis ini kecuali dalam bentuk prototipe untuk penelitian.
Skema MISD [1]

4) Komputer MIMD (Multiple Instruction stream-Multiple Data stream)
Pada sistem komputer MIMD murni terdapat interaksi di antara pemroses. Hal ini disebabkan seluruh aliran dari dan ke memori berasal dari space data yang sama bagi semua pemroses. Komputer MIMD bersifat tightly coupled jika tingkat interaksi antara pemroses tinggi dan disebut loosely coupled jika tingkat interaksi antara pemroses rendah.
Skema MIMD [1]

3. Multiprosesor dan Multikomputer
Multiprosesor yaitu suatu sistem dengan lebih dari satu CPU yang memiliki sebuah memori bersama, seperti sekelompok orang dalam suatu ruangan yang memiliki papan tulis bersama. Prosesor berkomunikasi dengan prosesor lain dengan menulis pesan ke memori global dimana prosesor kedua dapat membaca pesan tersebut pada lokasi memori yang sama.[2]

Semua prosesor dapat melakukan komputasi secara paralel dan masing-masing dapat mengakses memori melalui bus. Bus bertanggung jawab mengatur permintaan pemakaian memori yang berlangsung secara simultan oleh beberapa prosesor. Bus juga bertanggung jawab untuk meyakinkan bahwa semua prosesor dilayani secara adil dengan waktu tunda (delay) akses yang minimum.

Sedangkan Multikomputer adalah sistem-sistem yang terdiri dari banyak komputer yang saling terhubung, yang masing-masing memiliki memorinya sendiri-sendiri. Masing-masing prosesor mempunyai satu atau lebih hubungan langsung ke prosesor lain untuk transmisi data.

Jika prosesor tidak mempunyai koneksi langsung ke prosesor lain, komunikasi dapat dilangsungkan melalui prosesor antara(intermediate processor) untuk mengirim data. Transmisi data antar prosesor membutuhkan sejumlah waktu yang selanjutnya disebut waktu tunda komunikasi. Jika selama eksekusi program sering terjadi komunikasi antar prosesor, maka jumlah waktu tunda komunikasi akan menambah waktu eksekusi program.

Pada dasarnya waktu komunikasi sebuah message pada multicomputer, terdiri dari tiga komponen, yaitu waktu transmisi(transmision time), waktu proses (processing time) dan waktu tunggu (waiting time). Waktu transmisi adalah waktu yang dibutuhkan untuk transmisi secara fisik sejumlah bit message melalui saluran komunikasi. Waktu proses adalah waktu yang diperlukan untuk memproses suatu komputasi.

Sedangkan waktu tunggu adalah waktu yang diperlukan untuk menunda pengiriman pesan. Peristiwa penundaan ini disebabkan karena prosesor tersebut sedang menerima message dari prosesor lainnya, atau karena prosesor tersebut sedang sibuk. Peristiwa penundaan ini disebut kongesti (congestion).

Penundaan message dalam perjalanannya melalui prosesor-prosesor akan tergantung pada ratarata waktu tunda komunikasi yang dibutuhkan untuk transmisi setiap saluran komunikasi dan juga jumlah total saluran yang dilalui antara prosesor sumber dan prosesor tujuan. Jumlah saluran yang dilalui akan tergantung pada struktur keseluruhan jaringan komunikasi, yang disebut topologi dari multikomputer.

Salah satu parameter yang penting dari topologi multikomputer ini adalah jumlah saluran yang terhubung pada setiap antar muka prosesor, yang disebut keterhubungan (connectivity) topologi. Keterhubungan ini menjadi faktor yang penting untuk menentukan beban jaringan. Parameter penting lainnya adalah diameter dari topologi, yaitu jumlah maksimum saluran yang dibutuhkan untuk mengirim suatu message pada jarak terjauh prosesor. Diameter menjadi faktor penting kinerja jaringan.

4. Komputer Multicore
Pada saat ini PC secara umum telah menggunakan paralelisme threadlevel dengan berkembangnya teknologi multicore. Teknologi ini menempatkan lebih dari satu general purpose processor pada satu keping mikroprosesor sehingga memungkinkan lebih dari satu thread bekerja secara simultan. Prosesor multicore umumnya menggunakan prinsip shared-memory, dimana masing-masing core processor terhubung dengan sebuah memori internal (cache memory) yang menjadi perantara baginya dengan memori eksternal seperti RAM. Namun demikian adapula prosesor multicore yang menggunakan prinsip message passing untuk berkomunikasi antar core.[3]
Skema Prosesor Multicore [1]

Paralelisme fisik pada prosesor multicore sebenarnya tidak serta merta mendorong peningkatan performansi komputer. Jumlah core yang banyak tidak akan berpengaruh bila tidak didukung dengan algoritma dan aplikasinya. Program paralel dengan berbagai level paralelisme dapat diterapkan untuk mengoptimalkan kinerja prosesor, mulai dari instructionlevel parallelism (ILP) hingga thread-level parallelism (TLP).
Keuntungan teknologi multicore di antaranya adalah :[4]
1) Percepatan proses dengan adanya cache coherency circuitry.
2) Penghematan ruang yang berarti semakin kecil ukuran fisik mikroprosesor.
3) Penghematan energi karena daya yang digunakan oleh dua singlecore lebih besar dibandingkan dengan sebuah dualcore.

Selain keuntungan, prosesor multicore juga tidak lepas dari kekurangan yaitu :
1) Perlu pembaruan software sehingga mendukung kinerja core yang tersedia.
2) Kesulitan mengelola panas yang dihasilkan oleh kerja prosesor.
3) Kesulitan meningkatkan performansi prosesor karena keterbatasan bandwidth memori dan bus sharing.

5. Komputasi Serial dan Komputasi Paralel
Tentu ada kekurangan pada sistem komputasi serial dan komputasi paralel. Pada komputasi serial, kekurangannya adalah ketika ingin membangun komputer dengan kecepatan tinggi:[3]
1) Kecepatan transmisi – kecepatan komputer berbasis serial sangattergantung seberapa cepat data dapat berpindah dari hardware tersebut. Batas kecepatan yang pasti adalah kecepatan cahaya (30
cm/nanosecond) untuk transmisi yang bermedia cahaya atau 9 cm/nanosecond untuk transmisi yang terbuat dari tembaga.
2) Keterbatasan pada ukuran fisik – teknologi prosesor terkini selalu bertumpukan pada seberapa banyak jumlah transistor dalam satu chip. Meskipun ukuran atomic atau molecular dapat tercapai, tetapi batas minimum dari ukuran chip tersebut akan terlampaui juga.
3) Ekonomi – menggunakan satu buah chip prosesor dengan kecepatan lebih tinggi membuat harga prosesor itu sendiri naik dengan drastis. Sedangkan menggunakan prosesor yang tersedia dipasaran tetapi relatif cepat dan jumlah yang lebih banyak bisa menyamai kecepatan
super komputer, dengan harga yang relatif lebih murah.

Meskipun demikian, komputasi paralel juga memiliki kekurangan:
1) Komputasi parallel masih kurang populer dibandingkan dengan komputasi sekuensial atau serial, seperti halnya Personal Computer. Sehingga harga setiap komponen untuk perangkat paralel tersebut
masih mahal
2) Pemrograman paralel yang masih kurang populer. Sehingga pembuatan perangkat lunak untuk perangkat paralel masih sangat mahal, begitu juga dengan perawatan dan modifikasinya.
3) Begitu juga dengan tenaga ahli dibidang ini sangat kecil porsinya dibandingkan dengan tenaga ahli dibidang komputasi serial.
4) Namun, pada perkembangannya kedua komputasi tersebut akan terus mengalami perbaikan demi perbaikan yang membuat komputer semakin canggih.

PENUTUP
Dengan demikian penjelasan mengenai Pararel Computer Architecture dalam penulisan ini diharapkan dapat memberikan dan menambah pengetahuan serta informasi tentang Pararel Computer Architecture.

Kritik dan saran yang membangun sangat diharapkan agar dapat menutupi kekurangan dan kesalahan pada penulisan materi ini, agar kedepannya dapat menjadi acuan penulisan untuk membuat dan mengembangkan materi menjadi lebih bermanfaat secara global.
Terimakasih.

REFERENSI
1. Artha Yudhi. (2013). Parallel Computing. Jurnal Teknologi &
Informasi. 6(2).
2. http://www.scribd.com
3. http://www.komputasi.lipi.go.id/data/1014224400/data/1123986635.
pdf
4. Syahrilnas (2000). Analisa Kerja Parallel Computing. Skripsi Sarjana
pada ILKOM IPB: tidak diterbitkan

0 komentar:

Posting Komentar