Be a smartuser

Andrean NR

Diberdayakan oleh Blogger.

Senin, 21 November 2016

KOMPUTASI PARALEL


A. Definisi
      Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.

Komputasi Paralel membutuhkan
• Algoritma
• Bahasa pemrograman
• Compiler

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.



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 danfenomena memory bottleneck. Perkembangan penerapan paralelisme pada prosesor dari masa ke masa ditunjukkan pada Gambar 1.1.

 Dari gambar tersebut kita dapatkan beberapa tingkat paralelisme dalam komputasi khususnya pada prosesor, di antaranya :

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 superscalarchipmultiprocessor, 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. Dari Tabel 1.1. diperoleh data bahwa cluster menjadi pilihan terbanyak para pengembang HPC.




B. Hukum Amdahl
     Amdahl berpendapat, “Peningkatan kecepatan secara paralel akan menjadi linear, melipatgandakan kemampuan proses sebuah komputer dan mengurangi separuh dari waktu proses yang diperlukan untuk menyelesaikan sebuah masalah.”

C. Hukum Gustafson
     Pendapat yang dikemukakan Gustafson hampir sama dengan Amdahl, tetapi dalam pemikiran Gustafson, sebuah komputasi paralel berjalan dengan menggunakan dua atau lebih mesin untuk mempercepat penyelesaian masalah dengan memperhatikan faktor eksternal, seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin yang digunakan.

D. Tujuan
       Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan. Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua.
        Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan tehnik paralel. Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.

E. Model Komputasi 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. Klasifikasi ini sekedar untuk melengkapi definisi komputer paralel. Skema SISD ditunjukkan pada Gambar 1.2. 


2)      SIMD (Single Instruction – Multiple Data). Komputer ini memiliki lebih dari satu prosesor, tetapi hanya mengeksekusi satu instruksi secara paralel pada data yang berbeda pada level lock-step. Komputer vektor adalah salah satu komputer paralel yang menggunakan arsitektur ini. Skema SIMD ditunjukkan pada Gambar 2.3. 

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. Skema MISD ditunjukkan pada Gambar 1.4. 

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. Skema MIMD ditunjukkan pada Gambar 1.5.

Sistem komputer paralel dibedakan dari cara kerja memorinya menjadishared 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. Menurut A.J. Van der Steen dan J. Donggara baik sistem shared memory maupun distributed memory merupakan SIMD atau MIMD.


Top500 Team membagi arsitektur komputer paralel dalam 6 kelompok berdasarkan daftarnya sejak tahun 1993 yaitu : SIMD, Single Processor, SMP, MPP, Constellation dan Cluster. Dari keenam arsitektur tersebut hanya 3 kelompok yang masih bertahan dalam daftar di Nopember 2009 seperti ditunjukkan dalam Gambar 1.6.


Pada penelitian ini arsitektur yang digunakan adalah cluster PCmulticore yang merupakan penerapan arsitektur MIMD dengan distributed shared memory. Skema arsitektur ini ditunjukkan pada Gambar 1.7. Adapun komponen-komponen utama dari arsitektur komputer paralel cluster PC antara lain  :
  1.  Prosesor (CPU). Bagian paling penting dalam sistem, untuk multicoreterdapat lebih dari satu core yang mengakses sebuah memori (shared memory).
  2. Memori. Bagian ini dapat diperinci lagi menjadi beberapa bagian penyusunnya seperti RAM, cache memory dan memori eksternal.
  3. Sistem Operasi. Software dasar untuk menjalankan sistem komputer.
  4. Cluster Middleware. Antarmuka antara hardware dan software.
  5. Programming Environment dan Software Tools. Software yang digunakan untuk pemrograman paralel termasuk softwarependukungnya.
  6. User Interface. Software yang menjadi perantara hardware dengan user.
  7. Aplikasi. Software berisi program permasalahan yang akan diselesaikan.
  8. Jaringan. Penghubung satu PC (prosesor) dengan PC yang lain sehingga memungkinkan pemanfaatan sumberdaya secara simultan. 


0 komentar:

Posting Komentar