Kamis, 16 Mei 2013

4. Parallel Computation

 
a. Parallelism Concept
  Konsep dari komputasi paralel sebenarnya sederhana yaitu penggunaan lebih dari satu CPU untuk menjalankan sebuah program.  Hal ini dilakukan oleh parallel processing yang membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkandengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung seperti middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
­­­­­­­­   Seorang tokoh bernama Michael J Quinn membagi paralelism ke dalam 2 jenis yaitu yang pertama data parallelism yang penerapan operasinya sama secara simultam terhadap lemen-elemen dari kumpulan data, yang kedua ialah control parallelism yaitu penerapan operasi-operasi berbeda terhadap elemen-elemen data yang berbeda secara bersamaan. Pada control parallelism dapat terjadi aliran data antar proses-proses dan kemungkinan terhadi aliran data yag kompleks/rumit

 b. Distributed Processing 
   Dalam Parallel Computation ada yang dinamakan distributed processing konsepnya ialah mengerjakan semua proses pengolahan data secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil setelah itu akan saling terhubung melalui jalur komunikasi. Setiap komputer memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian total. Jika salah satu prosesor mengalami kegagalan atau masalah yang lain akan mengambil alih tugasnya.

 c. Architectural Parallel Computer
     Komputer paralel diklasifikasikan ke dalam empat kelompok komputer oleh M. J. Flynn yang disebut dengan Taksonomi Flynn. Flynn membaginya berdasarkan konsep aliran data (data stream) dan aliran instruksi (instruction stream).
  •  SISD (Single Instruction stream, Single Data stream) : komputer tunggal yang mempunyai satu unit kontrol, satu unit prosesor dan satu unit memori. 
  • SIMD (Single Instruction stream, Multiple Data stream) : komputer yang mempunyai beberapa unit prosesor di bawah satu supervisi satu unit common control. Setiap prosesor menerima instruksi yang sama dari unit kontrol, tetapi beroperasi pada data yang berbeda. 
  • MISD (Multiple Instruction stream,Single Data stream) : sampai saat ini struktur ini masih merupakan struktur teoritis dan belum ada komputer dengan model ini. 
  • MIMD (Multiple Instruction stream, Multiple Data stream) : organisasi komputer yang memiliki kemampuan untuk memproses beberapa program dalam waktu yang sama. Pada umumnya multiprosesor dan multikomputer termasuk dalam kategori ini.
d.  Pengantar Massage Passing, OpenMP
  •  Message Passing adalah suatu standar dan message passing interface portabel system. Grup penelitian dari akademi dan industry mendesain da mengembangkan fungsi dan macam-macam dari komputer paralel. Hal ini berguna untuk memperbesar jangkauan kepada user menulis portable program message passing pada Fortran 77 dan bahasa C dari core library routine. 
  • OpenMP merupakan API yang mendukung multiplatform untuk pemrograman multiprocessing shared memory pada C, C++, dan Fortran. OpenMP Ini terdiri dari kumpulan compiler directive, library routines, dan environment variable yang akan membuat run time pada semua keadaan.
 e. Pengantar Pemrograman CUDA GPU 
CUDA (Compute Unified Device Architecture)  dan GPU (Graphic Processing Unit) memang saling berbuhungan CUDA sendiri merupakan suatu skema yang dibuat oleh NVIDIA. NVIDIA disini merupakan GPU yang mampu melakukan komputasi tidak hanya untuk pengolahan grafis namun juga untuk tujuan umum. Jadi, dengan CUDA, kita dapat memanfaatkan cukup banyak processor yang dimiliki oleh NVIDIA untuk berbagai perhitungan. Hal ini berkiblat pada konsep paralel komputer.
Sebagai tahap awal dalam belajar pemrograman paralel dengan mengunakan sebaiknya para programmer menggunakan bahasa pemrograman C atau C++. GPU telah mengembangkan untuk memfasilitasi general-purpose computin. Beberapa hal yang perlu dipersiapkan dalam penggunaan CUDA C untuk membuat suatu aplikasi adalah sebagai berikut.
  • CUDA-enabled graphics processor 
  • NVIDIA device driver
  • CUDA development toolkit
  • Standard C compiler

sumber
http://www.lukibsubekti.com/2012/06/pemrograman-paralel-dengan-cuda.html
http://behelzleenha.blogspot.com/2012/04/tugas-softskill-pengantar-komputasi_04.html
http://xditx32.blogspot.com/2012/09/pengertian-multiprocessingmultitasking.html
http://toosa.staff.gunadarma.ac.id/Downloads/files/29712/kuliah_1_pendahuluan.pdf
http://bellemusiquechii.blogspot.com/2013/04/openmp-mpi-dan-cuda-algoritma-paralel.html



Tidak ada komentar:

Posting Komentar