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