Senin, 29 Mei 2017

Komputasi Paralel (Parallel Computation)


Pengertian
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 perkiraan 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.
Paralelisme dalam komputasi paralel merupakan hal yang diciptakan dan dimanfaatkan. Sebernarnya 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.

Paralelisme lainnya yang juga berkembang dalam komputasi paralel adalah paralelisme data dan paralelisme fungsi (task). Perkembangan teknologi 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.

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          :
  1. SISD (Single Instruction – Single Data). Komputer ini memiliki hanya satu prosesor dan satu instruksi yang dieksekusi secara serial. Komputer ini adalah tipe komputer konvensional. Menurut mereka tipe komputer ini tidak ada dalam praktik komputer paralel karena bahkan mainframe pun tidak lagi menggunakan satu prosesor.
  2. SIMD ( Single Instruction – Multiple Data). Komputer ini memiliki lebih dari atu prosesor, tetapi hanya mengeksekusi satu intruksi satu instruksi secara paralel pada data yang berbeda pada level lock-step. Komputer vektor adalah salah satu komputer paralel yang menggunakan arsitektur ini.
  3. MISD (Multiple Instructions – Single Data). Teorinya komputer ini memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel tetapi praktiknya tidak ada komputer yang dibangun dengan arsitektur ini karena sistemnya tidak mudah dipahami.
  4. MIMD (Multiple Instructions – Multiple Data). Komputer ini memiliki lebih dari satu prosesor dan mengeksekusi lebih dari satu instruksi secara paralel. Tipe komputer ini yang paling banyak digunakan untuk membangun komputer paralel, bahkan banyak supercomputer yang menerapkan arsitektur ini.

Sistem komputer paralel dibedakan dari cara kerja memorinya menjadi shared memory dan distributed memory. Shared memory berarti memori tunggal diakses oleh satu atau lebih prosesor untuk menjalankan instruksi sedangkan distributed memory berarti setiap prosesor memiliki memori sendiri untuk menjalankan instruksi.

Algoritma Paralel
Komputasi paralel digunakan untuk menyelesaikan permasalahan komputasi yang besar atau komplek. Program paralel dibuat khusus atau dimodifikasi dari program serial. Algoritma paralel digunakan untuk menggantikan algoritma serial menyesuaikan arsitektur komputer yang digunakan. Berdasarkan klasifikasi arsitektur komputer paralel di atas komputer paralel shared memory dan distributed memory tentu saja menggunakan algoritma paralel yang berbeda.

Algoritma paralel menjelaskan langkah-langkah yang ditempuh oleh komputer paralel dalam menyelesaikan permasalahan. Hal-hal yang ada dalam algoritma paralel meliputi :
  1. Identifikasi terhadap beban permasalahan yang akan dikerjakan secara paralel.
  2. Pemetaan porsi pekerjaan yang dibebankan kepada tiap-tiap proses.
  3. Distribusi data input, output dan perantara yang terkait dengan program.
  4. Pengaturan data yang diakses bersamaan oleh beberapa prosesor.
  5. Menyelaraskan fungsi prosesor pada setiap langkah pekerjaan.

Tidak ada komentar

Posting Komentar

© Horas! For You.
Maira Gall