Rabu, 12 Juni 2013

Komputasi Paralel



Paralism Concept

Didasari oleh kebutuhan akan komputasi yang lebih cepat maka lahirlah konsep paralel dimana sebuah bentuk komputasi yang banyak perhitungannya atau pemrosesan informasinya dikerjakan secara serempak. Bekerja berdasarkan prinsip bahwa pekerjaan yang besar bisa dibagi-bagi menjadi bagian yang lebih kecil dan akan lebih mudah di selesaikan.

Parallelism sendiri sudah dipakai sejak lama tetapi terbatas pada penggunaan komputasi tingkat tinggi dan sekarang terdorong oleh kebutuhan jaman yang semakin berkembang maka komputasi paralel menjadi dominan. di karenakan kebutuhan akan komputer di batasi oleh form factor atau skala dan kebutuhan daya maka tak ayal komputasi paralel menjadi solusi yang paling efektif dan sekarang ini ada dalam bentuk multicore prosessor.

Distributed Processing

Distributed processing adalah istilah yang biasa digunakan untuk jenis-jenis sistem komputer yang menggunakan lebih dari 1 computer (atau processor) untuk menjalankan sebuah aplikasi termasuk di dalamnya paralel processing yang dimana sebuah komputer menggunakan banyak CPU untuk menjalankan program atau biasa disebut multicore. 

 Architectural Parallel Computer

Taksonomi Flynn dan Model Pemrosesan Parallel. 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.


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.


3. Komputer MISD (Multiple Instruction stream-Single Data stream)

Komputer jenis ini memiliki n unit pemroses yang masing-masing 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.


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.
Pengantar Thread Programming
 
Pertanyaannya apa itu Thread? Thread adalah bentuk kecil dari program yang akan di eksekusi oleh processor. pada sebuah single processor multi-threading biasanya terjadi dengan pengaturan waktu pemrosesan thread jadi processor berganti-ganti dan membagi waktu untuk menyelesaikan thread tetapi tidak pada paralel komputing dengan milti processor atau multi core, multi-threading bisa berlangsung secara bersamaan, maka di situ lah tantangan untuk para programmer agar dapat membuat program yang dapat di proses secara paralel.



Pengantar Massage Passing, OpenMP

MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram untuk membuatsebuah aplikasi yang dapat dijalankan secara paralel. Proses yang dijalankan oleh sebuah aplikasi dapat dibagi untuk dikirimkan ke masing – masing compute node yang kemudian masing – masing compute node tersebut mengolah dan mengembalikan hasilnya ke komputer head node.Untuk merancang aplikasi paralel tentu membutuhkan banyak pertimbangan - pertimbangandiantaranya adalah latensi dari jaringan dan lama sebuah tugas dieksekusi oleh prosesor


MPI ini merupakan standard yang dikembangkan untuk membuat aplikasi pengirim pesan secara portable. Sebuah komputasi paralel terdiri dari sejumlah proses, dimana masing-masing bekerja pada beberapa data lokal. Setiap proses mempunyai variabel lokal, dan tidak ada mekanismesuatu proses yang bisa mengakses secara langsung memori yang lain. Pembagian data antar proses dilakukan dengan message passing, yaitu dengan mengirim dan menerima pesan antar proses.MPI menyediakan fungsi-fungsi untuk menukarkan antar pesan.


 OpenMP (Open Multi-Processing) adalah sebuah interface pemrograman (API) yang mendukung multi processing shared memory pemograman di C, C++ dll


PengantarPemrograman CUDA GPU












CUDA adalah singkatan dari Compute Unified Device Architecture. Sebuah arsitektur komputer paralel dan model pemrograman yang di ciptakan oleh Nvidia. Dengan CUDA kita dapat menggunakan kemampuan pemrosesan GPU yang sangat cepat untuk menjalankan program-program yang membutuhkan komputasi tinggi dengan cepat seperti rendering 3D, video, perhitungan medis dll. teknologi CUDA sudah di implementasikan dari GPU nVidia seri 8xxx dan hingga yang baru.

Lebih jelasnya CUDA dapat memudahkan para programmer dan pengembang software untuk melakukan perhitungan yang kompleks dan lebih cepat.













Sumber:
http://en.wikipedia.org/wiki/Parallel_computing
http://www.nvidia.com/object/cuda_home_new.html
https://en.wikipedia.org/wiki/Thread_%28computing%29
http://www.python.org/doc/essays/threads.html

gunadarma